@Override public String getPath() { Stack<Group> parents = new Stack<>(); Group parent = this; parents.push(this); while ((parent=parent.getParent()) != null) { parents.push(parent); } String result = "/"; while (parents.size() > 0) { result = result + parents.pop().getName() + "/"; } return result; }
/** * local helper to determine the level of a group while building group structure * * @return -3 if detached branch, -2 if no parent, -1 if root, 0 if top level etc. */ int computedLevel() { if (isRootGroup()) { return -1; } int level = 0; Group currentParent = parent; if (currentParent == null) { return -2; } while (!currentParent.isRootGroup()) { currentParent = currentParent.getParent(); if (currentParent == null) { return -3; } level++; } return level; }
@Override public boolean deleteGroup(final UUID uuid) { G g = findGroup(uuid); if (g==null) { return false; } g.getParent().removeGroup(g); if (isRecycleBinEnabled()) { getRecycleBin().addGroup(g); } return true; }
@Test public void testDeleteGroup () { Group<D,G,E,I> g1 = database.getRootGroup().addGroup(database.newGroup("group1")); List<? extends G> l1 = database.getRootGroup().findGroups("group1"); Assert.assertTrue(l1.size() == 1); G g2 = l1.get(0); Assert.assertTrue (g2.equals(g1)); Group g3 = database.getRootGroup().removeGroup(g2); Assert.assertTrue (g3.equals(g1)); Assert.assertTrue(g1.getParent() == null); Assert.assertTrue(database.getRootGroup().getGroups().size() == 0); Assert.assertTrue(database.getRootGroup().findGroups("group1").size() == 0); }
@Test public void testAddGroup() { Group g1 = database.getRootGroup().addGroup(database.newGroup("group1")); Assert.assertTrue (database.getRootGroup().getGroups().size() == 1); Assert.assertTrue (g1.getName().equals("group1")); Assert.assertTrue (g1.getGroups().size() == 0); Assert.assertTrue (g1.getEntries().size() == 0); Assert.assertTrue("root is not the parent of its child", g1.getParent().equals(database.getRootGroup())); Group g2 = database.newGroup(); assertEquals("", g2.getName()); Assert.assertNotNull(g2.getUuid()); assertEquals(0, g2.getIcon().getIndex()); assertEquals(0, g2.getGroups().size()); assertEquals(0, g2.getEntries().size()); // show that the list of groups is a copy database.getRootGroup().getGroups().clear(); Assert.assertTrue(database.getRootGroup().getGroups().size() == 1); Assert.assertTrue (g1.getEntries().size() == 0); }
assertEquals(g + 1, group.getEntries().size()); assertEquals(g+1, group.getEntriesCount()); assertEquals(input.getRootGroup(), group.getParent()); for (int e = 0; e <= g; e++) { Entry entry = (Entry) group.getEntries().get(e);
Assert.assertTrue(group1.getParent() == null); assertEquals(0, root.getGroups().size()); root.addGroup(group1);