public void testBuildHierarchy_NamespaceCollisions_HasCurrentFalse()

in src/main/java/com/atlassian/uwc/hierarchies/ContentHierarchyTest.java [268:354]


	public void testBuildHierarchy_NamespaceCollisions_HasCurrentFalse() {
		Properties props = new Properties();
		props.setProperty(ContentHierarchy.PROP_CURRENT, "false");
		tester.setProperties(props);

		Vector<Page> pages = new Vector<Page>();
		File sampledir = new File("sampleData/hierarchy/content-collisions-hascurrent/");
		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());
			//name needs to be set correctly ahead of time with PROP_CURRENT set to false
			String newname = file.getName();
			newname = newname.replaceFirst("(.*)_", "");
			page.setName(newname); 
			
			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("Trees") ||
				(nodes2.get(0)).getName().equals("Flowers") ||
				(nodes2.get(0)).getName().equals("Nuts"));
		assertTrue((nodes2.get(1)).getName().equals("Trees") ||
				(nodes2.get(1)).getName().equals("Flowers") ||
				(nodes2.get(1)).getName().equals("Nuts"));

		HierarchyNode treenode = null, flowernode = null, nutnode = null;
		for (HierarchyNode node : nodes2) {
			if (node.getName().equals("Trees")) treenode = node;
			if (node.getName().equals("Flowers")) flowernode = node;
			if (node.getName().equals("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("Chestnut") ||
				(trees.get(0)).getName().equals("Pine"));
		assertTrue((trees.get(1)).getName().equals("Chestnut") ||
				(trees.get(1)).getName().equals("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("Rose") ||
				(flowers.get(0)).getName().equals("Daisy") ||
				(flowers.get(0)).getName().equals("Orchid"));
		assertTrue((flowers.get(1)).getName().equals("Rose") ||
				(flowers.get(1)).getName().equals("Daisy") ||
				(flowers.get(1)).getName().equals("Orchid"));
		assertTrue((flowers.get(2)).getName().equals("Rose") ||
				(flowers.get(2)).getName().equals("Daisy") ||
				(flowers.get(2)).getName().equals("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("Chestnut") ||
				(nuts.get(0)).getName().equals("Peanut"));
		assertTrue((nuts.get(1)).getName().equals("Chestnut") ||
				(nuts.get(1)).getName().equals("Peanut"));
		
	}