package sushi.event.test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import sushi.event.collection.SushiTree; public class SushiTreeTest { private String rootElement1; private String rootElement1Child1; private String rootElement1Child1Child1; private String rootElement2; @Before public void setup(){ rootElement1 = new String("Root Element 1"); rootElement1Child1 = new String("Root Element 1 Child 1"); rootElement1Child1Child1 = new String("Root Element 1 Child 1 Child 1"); rootElement2 = new String("Root Element 2"); } @Test public void testTreeAdding(){ SushiTree<String> testTree = new SushiTree<String>(rootElement1); assertFalse(testTree.isEmpty()); assertTrue(testTree.getRootElements().size() == 1); assertTrue(testTree.getRootElements().get(0) == rootElement1); testTree.addRootElement(rootElement2); assertTrue(testTree.getRootElements().size() == 2); assertTrue(testTree.getRootElements().get(1) == rootElement2); testTree.addChild(rootElement1, rootElement1Child1); assertTrue(testTree.getChildren(rootElement1).size() == 1); assertTrue(testTree.getChildren(rootElement1).get(0) == rootElement1Child1); testTree.addChild(rootElement1Child1, rootElement1Child1Child1); assertTrue(testTree.getChildren(rootElement1Child1).size() == 1); assertTrue(testTree.getChildren(rootElement1Child1).get(0) == rootElement1Child1Child1); } @Test public void testTreeRemoving(){ SushiTree<String> testTree = buildTestTree(); assertTrue(testTree.size() == 4); testTree.remove(rootElement1Child1Child1); assertTrue(testTree.size() == 3); assertNull(testTree.findElement(rootElement1Child1Child1)); testTree.remove(rootElement1Child1); assertTrue(testTree.size() == 2); assertNull(testTree.findElement(rootElement1Child1)); } @Test public void testTreeChildRemoving(){ SushiTree<String> testTree = buildTestTree(); assertTrue(testTree.size() == 4); testTree.remove(rootElement1); assertTrue(testTree.size() == 1); assertTrue(testTree.findElement(rootElement2) == rootElement2); } private SushiTree<String> buildTestTree(){ SushiTree<String> testTree = new SushiTree<String>(rootElement1); testTree.addRootElement(rootElement2); testTree.addChild(rootElement1, rootElement1Child1); testTree.addChild(rootElement1Child1, rootElement1Child1Child1); return testTree; } }