/** {@inheritDoc}} */
 @Override
 public List<SoaActivationDocument> getSoaActivationDocumentsForDeactivation(
     SoaActivationDocument newSoaActivationDocument) {
   // TODO #13 do not use FamCouchDBDao#getAll
   List<SoaActivationDocument> result = new ArrayList<SoaActivationDocument>();
   List<SoaActivationDocument> all_sads = this.getAllSoaActivation();
   for (SoaActivationDocument sad : all_sads) {
     if (sad.getRoleId().equals(newSoaActivationDocument.getRoleId())) {
       if (sad.isActive() && !sad.getId().equals(newSoaActivationDocument.getId())) {
         result.add(sad);
       }
     }
   }
   return result;
 }
  @SuppressWarnings("deprecation") // TODO #11 kill uses of deprecations
  @Test
  public void insertNewForExtern() {
    SoaActivationDocument externOld = this.insertAndGet("extern");
    SoaActivationDocument internOld = this.insertAndGet("intern");
    SoaActivationDocument externNew = this.insertAndGet("extern");

    assertNull(externOld.getDeactivatedOn());
    assertNull(internOld.getDeactivatedOn());
    assertNull(externNew.getDeactivatedOn());

    assertTrue(externOld.isActive());
    assertTrue(internOld.isActive());
    assertTrue(externNew.isActive());

    assertNotNull(externOld.getId());
    assertNotNull(internOld.getId());
    assertNotNull(externNew.getId());

    new TermsOfUseResolver(TeztBeanSimpleFactory.getAdmin()).deactivateAgreementsFor(externNew);

    List<SoaActivationDocument> all_sads = FamDaoProxy.soaDao().getAllSoaActivation();
    assertTrue(all_sads.size() >= 3);
    boolean[] foundAll = {false, false, false};
    for (SoaActivationDocument sad : all_sads) {
      if (sad.getId().equals(internOld.getId())) {
        // intern is still active
        foundAll[0] = true;
        assertTrue(sad.isActive());
      }
      if (sad.getId().equals(externOld.getId())) {
        // extern is not active anymore
        foundAll[1] = true;
        assertFalse(sad.isActive());
        assertTrue(sad.getDeactivatedOn() > sad.getActivatedOn());
      }
      if (sad.getId().equals(externNew.getId())) {
        // new one is active
        foundAll[2] = true;
        assertTrue(sad.isActive());
      }
    }
    // found everything
    assertTrue(foundAll[0]);
    assertTrue(foundAll[1]);
    assertTrue(foundAll[2]);
  }