package org.sef4j.core.helpers.proptree.model; import org.junit.Assert; import org.junit.Test; import org.sef4j.core.helpers.proptree.model.PropTreeNode; public class PropTreeNodeTest { private PropTreeNode sut = PropTreeNode.newRoot(); @Test public void testGetOrCreateChild() { // Prepare // Perform PropTreeNode child1 = sut.getOrCreateChild("child1"); // Post-check Assert.assertNotNull(child1); PropTreeNode child1Bis = sut.getOrCreateChild("child1"); Assert.assertSame(child1, child1Bis); } @Test public void testGetPath() { // Prepare PropTreeNode child1 = sut.getOrCreateChild("child1"); PropTreeNode child1_2 = child1.getOrCreateChild("child2"); PropTreeNode child1_2_3 = child1_2.getOrCreateChild("child3"); // Perform String[] path_1_2_3 = child1_2_3.getPath(); // Post-check Assert.assertEquals(3, path_1_2_3.length); Assert.assertEquals("child1", path_1_2_3[0]); Assert.assertEquals("child2", path_1_2_3[1]); Assert.assertEquals("child3", path_1_2_3[2]); } @Test public void testGetReversePath() { // Prepare PropTreeNode child1 = sut.getOrCreateChild("child1"); PropTreeNode child1_2 = child1.getOrCreateChild("child2"); PropTreeNode child1_2_3 = child1_2.getOrCreateChild("child3"); // Perform String[] reversePath_1_2_3 = child1_2_3.getReversePath(); // Post-check Assert.assertEquals(3, reversePath_1_2_3.length); Assert.assertEquals("child3", reversePath_1_2_3[0]); Assert.assertEquals("child2", reversePath_1_2_3[1]); Assert.assertEquals("child1", reversePath_1_2_3[2]); } @Test public void testGetOrCreateChildPath() { // Prepare String[] path = new String[] { "child1", "child2" }; // Perform PropTreeNode child_1_2 = sut.getOrCreateChildPath(path); // Post-check Assert.assertEquals("child2", child_1_2.getName()); PropTreeNode child1 = child_1_2.getParent(); Assert.assertEquals("child1", child1.getName()); Assert.assertSame(sut, child1.getParent()); } }