package de.fuberlin.projecta; import static org.junit.Assert.assertEquals; import org.junit.Test; import de.fuberlin.projecta.parser.Tree; public class TreeTest { // helper static final class T extends Tree { public T() { super(null); } } @Test public void testTree() { T t1 = new T(); T t2 = new T(); t1.addChild(t2); assertEquals(1, t1.getChildrenCount()); assertEquals(0, t2.getChildrenCount()); assertEquals(null, t1.getParent()); assertEquals(t1, t2.getParent()); t1.removeChild(0); assertEquals(0, t1.getChildrenCount()); assertEquals(0, t2.getChildrenCount()); assertEquals(null, t1.getParent()); assertEquals(null, t2.getParent()); t2.setParent(t1); assertEquals(1, t1.getChildrenCount()); assertEquals(0, t2.getChildrenCount()); assertEquals(null, t1.getParent()); assertEquals(t1, t2.getParent()); t1.setParent(t2); // disallowed assertEquals(1, t1.getChildrenCount()); assertEquals(0, t2.getChildrenCount()); assertEquals(null, t1.getParent()); assertEquals(t1, t2.getParent()); t2.setParent(null); assertEquals(0, t1.getChildrenCount()); assertEquals(null, t2.getParent()); } }