CatalogServiceImpl extends BasicManager implements UserDataDeletable, Initializable, CatalogService { @Override public void deleteCatalogEntry(final CatalogEntry ce) { log.debug("deleteCatalogEntry start... ce=" + ce); if (ce.getType() == CatalogEntry.TYPE_LEAF) { final SecurityGroup owner = ce.getOwnerGroup(); catalogDao.deleteCatalogEntry(ce); if (owner != null) { log.debug("deleteCatalogEntry case_1: delete owner-group=" + owner); securityManager.deleteSecurityGroup(owner); } } else { final List secGroupsToBeDeleted = new ArrayList(); deleteCatalogSubtree(ce, secGroupsToBeDeleted); for (final Iterator iter = secGroupsToBeDeleted.iterator(); iter.hasNext();) { final SecurityGroup grp = (SecurityGroup) iter.next(); log.debug("deleteCatalogEntry case_2: delete groups of deleteCatalogSubtree grp=" + grp); securityManager.deleteSecurityGroup(grp); } } log.debug("deleteCatalogEntry END"); } @SuppressWarnings("unused") private  CatalogServiceImpl();   CatalogServiceImpl(CatalogDao catalogDao, BaseSecurity securityManager, BookmarkService bookmarkService, DeletionModule deletionModule); @Override CatalogEntry createCatalogEntry(); @Override List<CatalogEntry> getChildrenOf(final CatalogEntry ce); @Override List<CatalogEntry> getAllCatalogNodes(); @Override boolean hasChildEntries(final CatalogEntry ce, final int type); @Override List filterOwnedLeafs(final Identity identity, final List catalogEntries); @Override CatalogEntry loadCatalogEntry(final CatalogEntry catalogEntry); @Override CatalogEntry loadCatalogEntry(final Long catEntryId); @Override void saveCatalogEntry(final CatalogEntry ce); @Override void updateCatalogEntry(final CatalogEntry ce); @Override void deleteCatalogEntry(final CatalogEntry ce); @Override List getCatalogCategoriesFor(final RepositoryEntry repoEntry); @Override List getCatalogEntriesOwnedBy(final Identity identity); @Override void addCatalogEntry(final CatalogEntry parent, final CatalogEntry newEntry); @Override List getRootCatalogEntries(); @Override void init(); @Override boolean moveCatalogEntry(CatalogEntry toBeMovedEntry, CatalogEntry newParentEntry); @Override void resourceableDeleted(final RepositoryEntry repositoryEntry); @Override void deleteUserData(final Identity identity, final String newDeletedUserName); @Override boolean isEntryWithinCategory(final CatalogEntry toBeCheckedEntry, final List<CatalogEntry> entriesList); @Override OLATResourceable createOLATResouceableFor(final CatalogEntry currentCatalogEntry); @Override CatalogEntry createCatalogEntryLeaf(RepositoryEntry repositoryEntry, String parentNodeIdent); @Override CatalogEntry createCatalogEntryLeafAndAddParent(RepositoryEntry repositoryEntry, CatalogEntry parentCatalogEntry); @Override boolean hasParentAllreadyCatalogEntryAsChild(String nodeIdent, RepositoryEntry toBeAddedEntry); CatalogEntry importStructure(); @Override boolean isOwner(CatalogEntry ce, Identity identity); @Override void addOwners(CatalogEntry catalogEntry, List<Identity> addIdentities); @Override void removeOwners(CatalogEntry catalogEntry, List<Identity> removeIdentities); @Override CatalogEntry createCatalogEntryWithoutRepositoryEntry(CatalogEntry parentCatalogEntry); @Override CatalogEntry setEmptyOwnerGroup(CatalogEntry currentCatalogEntry); List<Identity> getCaretakerFormCatalogEntryList(List<CatalogEntry> historyStack);  }
@Test public void testDeleteCatalogEntry_WithoutOwnerGroup() { when(commonTestCatalogEntryMock.getOwnerGroup()).thenReturn(null); catalogService.deleteCatalogEntry(commonTestCatalogEntryMock); verify(catalogDaoMock).deleteCatalogEntry(commonTestCatalogEntryMock); SecurityGroup ownerGroup = commonTestCatalogEntryMock.getOwnerGroup(); verify(securityManagerMock, never()).deleteSecurityGroup(ownerGroup); }
@Test public void testDeleteCatalogEntry_WithOwnerGroup() { SecurityGroup ownerGroup = commonTestCatalogEntryMock.getOwnerGroup(); catalogService.deleteCatalogEntry(commonTestCatalogEntryMock); verify(catalogDaoMock).deleteCatalogEntry(commonTestCatalogEntryMock); verify(securityManagerMock).deleteSecurityGroup(ownerGroup); }