in src/main/java/com/atlassian/uwc/hierarchies/ContentHierarchyTest.java [188:266]
public void testBuildHierarchy_NamespaceCollisions() {
Vector<Page> pages = new Vector<Page>();
File sampledir = new File("sampleData/hierarchy/content-collisions/");
assertTrue(sampledir.exists() && sampledir.isDirectory());
for (File file : sampledir.listFiles(new NoSvnFilter())) {
if (file.isDirectory()) continue;
Page page = new Page(file);
page.setOriginalText(readFile(file));
page.setConvertedText(page.getOriginalText());
page.setUnchangedSource(page.getOriginalText());
page.setName(file.getName());
pages.add(page);
}
HierarchyNode actual = tester.buildHierarchy(pages);
assertNotNull(actual); //root node
assertNull(actual.getName());
assertNull(actual.getPage());
assertNull(actual.getParent());
assertNotNull(actual.getChildren());
Collection<HierarchyNode> children1 = actual.getChildren();
assertEquals(1, children1.size());
Vector<HierarchyNode> nodes1 = new Vector<HierarchyNode>();
nodes1.addAll(children1);
assertTrue((nodes1.get(0)).getName().equals("Plants"));
Collection<HierarchyNode> children2 = (nodes1.get(0)).getChildren();
assertEquals(3, children2.size());
Vector<HierarchyNode> nodes2 = new Vector<HierarchyNode>();
nodes2.addAll(children2);
assertTrue((nodes2.get(0)).getName().equals("Plants_Trees") ||
(nodes2.get(0)).getName().equals("Plants_Flowers") ||
(nodes2.get(0)).getName().equals("Plants_Nuts"));
assertTrue((nodes2.get(1)).getName().equals("Plants_Trees") ||
(nodes2.get(1)).getName().equals("Plants_Flowers") ||
(nodes2.get(1)).getName().equals("Plants_Nuts"));
HierarchyNode treenode = null, flowernode = null, nutnode = null;
for (HierarchyNode node : nodes2) {
if (node.getName().equals("Plants_Trees")) treenode = node;
if (node.getName().equals("Plants_Flowers")) flowernode = node;
if (node.getName().equals("Plants_Nuts")) nutnode = node;
}
Collection<HierarchyNode> treechildren = treenode.getChildren();
assertEquals(2, treechildren.size());
Vector<HierarchyNode> trees = new Vector<HierarchyNode>();
trees.addAll(treechildren);
assertTrue((trees.get(0)).getName().equals("Plants_Trees_Chestnut") ||
(trees.get(0)).getName().equals("Plants_Trees_Pine"));
assertTrue((trees.get(1)).getName().equals("Plants_Trees_Chestnut") ||
(trees.get(1)).getName().equals("Plants_Trees_Pine"));
Collection<HierarchyNode> flowerchildren = flowernode.getChildren();
assertEquals(3, flowerchildren.size());
Vector<HierarchyNode> flowers = new Vector<HierarchyNode>();
flowers.addAll(flowerchildren);
assertTrue((flowers.get(0)).getName().equals("Plants_Flowers_Rose") ||
(flowers.get(0)).getName().equals("Plants_Flowers_Daisy") ||
(flowers.get(0)).getName().equals("Plants_Flowers_Orchid"));
assertTrue((flowers.get(1)).getName().equals("Plants_Flowers_Rose") ||
(flowers.get(1)).getName().equals("Plants_Flowers_Daisy") ||
(flowers.get(1)).getName().equals("Plants_Flowers_Orchid"));
assertTrue((flowers.get(2)).getName().equals("Plants_Flowers_Rose") ||
(flowers.get(2)).getName().equals("Plants_Flowers_Daisy") ||
(flowers.get(2)).getName().equals("Plants_Flowers_Orchid"));
Collection<HierarchyNode> nutchildren = nutnode.getChildren();
assertEquals(2, nutchildren.size());
Vector<HierarchyNode> nuts = new Vector<HierarchyNode>();
nuts.addAll(nutchildren);
assertTrue((nuts.get(0)).getName().equals("Plants_Nuts_Chestnut") ||
(nuts.get(0)).getName().equals("Plants_Nuts_Peanut"));
assertTrue((nuts.get(1)).getName().equals("Plants_Nuts_Chestnut") ||
(nuts.get(1)).getName().equals("Plants_Nuts_Peanut"));
}