@Test public void testMergePackages() { greenProject.addClassData(firstClass); greenProject.addClassData(fourthClass); redProject.addClassData(fifthClass); redProject.addClassData(sixthClass); redProject.addClassData(seventhClass); // merge with null - should not change the greenProject greenProject.merge(null); greenProject.merge(redProject); Iterator subpackages = greenProject.getSubPackages("").iterator(); assertEquals("", ((PackageData) subpackages.next()).getName()); assertEquals("beautiful", ((PackageData) subpackages.next()).getName()); assertEquals("test", ((PackageData) subpackages.next()).getName()); assertEquals("test.me", ((PackageData) subpackages.next()).getName()); assertFalse(subpackages.hasNext()); assertEquals(5, greenProject.getClasses().size()); assertEquals(3, redProject.getClasses().size()); assertNotNull(greenProject.getClassData("test.First")); assertNotNull(greenProject.getClassData("test.me.Fourth")); assertNotNull(greenProject.getClassData("beautiful.Fourth")); assertNotNull(greenProject.getClassData("Fourth")); assertNotNull(greenProject.getClassData("Seventh")); assertNull(redProject.getClassData("test.First")); Iterator packages = greenProject.getPackages().iterator(); PackageData first = (PackageData) packages.next(); assertEquals("", first.getName()); assertEquals(2, first.getNumberOfChildren()); assertNotNull(first.getChild("Fourth")); assertNotNull(first.getChild("Seventh")); PackageData beautiful = (PackageData) packages.next(); assertEquals("beautiful", beautiful.getName()); assertEquals(1, beautiful.getNumberOfChildren()); assertNotNull(beautiful.getChild("Fourth")); PackageData test = (PackageData) packages.next(); assertEquals("test", test.getName()); assertEquals(1, test.getNumberOfChildren()); assertNotNull(test.getChild("First")); assertNull(test.getChild("test/me/First.java")); assertNull(test.getChild("Fourth.java")); PackageData testMe = (PackageData) packages.next(); assertEquals("test.me", testMe.getName()); assertEquals(1, testMe.getNumberOfChildren()); assertNull(testMe.getChild("test/First.java")); assertNotNull(testMe.getChild("Fourth")); assertNull(testMe.getChild("Fourth.java")); assertFalse(packages.hasNext()); }
@Test public void testMergeDifferentClassData() { greenProject.addClassData(firstClass); redProject.addClassData(secondClass); redProject.addClassData(thirdClass); greenProject.merge(redProject); assertEquals(1, greenProject.getNumberOfChildren()); assertEquals(3, greenProject.getClasses().size()); assertNotNull(greenProject.getClassData("test.First")); assertNotNull(greenProject.getClassData("test.Second")); assertNotNull(greenProject.getClassData("test.Third")); assertNull(redProject.getClassData("test.First")); assertNotNull(redProject.getClassData("test.Second")); assertNotNull(redProject.getClassData("test.Third")); }