### Question:
PropertyTree { public static PropertyTree build(PropertyPath...paths) { return build(Arrays.asList(paths)); } private  PropertyTree(PropertyPath path); static PropertyTree build(PropertyPath...paths); static PropertyTree build(Collection<PropertyPath> paths); NodeId getNodeId(); Collection<PropertyTree> getChildren(); SortedMap<NodeId, PropertyTree> getChildrenMap(); PropertyTree get(NodeId childNode); boolean hasChildren(); PropertyTree get(PropertyPath path); String toString(); final PropertyPath path; }### Answer:
@Test public void Single_Path() { PropertyTree tree = PropertyTree.build(children_0_name()); assertPropertyTree(tree, 1); tree = assertPropertyTree(tree, "children", 1); tree = assertPropertyTree(tree, 0, 1); tree = assertPropertyTree(tree, "name", 0); }
@Test public void No_Paths() { PropertyTree tree = PropertyTree.build(); assertThat(tree, nullValue()); }
@Test public void Paths() { PropertyTree root = PropertyTree.build( children_0_name(), children_0(), ROOT.property("name"), children.index(123)); assertPropertyTree(root, 2); assertPropertyTree(root, "name", 0); PropertyTree children = assertPropertyTree(root, "children", 2); PropertyTree tree = assertPropertyTree(children, 0, 1); assertPropertyTree(tree, "name", 0); assertPropertyTree(children, 123, 0); }