1 6 package fr.jayasoft.ivy; 7 8 import java.util.ArrayList ; 9 import java.util.Arrays ; 10 import java.util.Date ; 11 import java.util.List ; 12 13 import junit.framework.TestCase; 14 15 19 public class SortTest extends TestCase { 20 21 private ModuleRevisionId mrid1; 22 private ModuleRevisionId mrid2; 23 private ModuleRevisionId mrid3; 24 private ModuleRevisionId mrid4; 25 private DefaultModuleDescriptor[] md; 26 List toSort; 27 28 29 30 33 protected void setUp() throws Exception { 34 super.setUp(); 35 mrid1 = ModuleRevisionId.newInstance("org", "md1", "rev1"); 36 mrid2 = ModuleRevisionId.newInstance("org", "md2", "rev2"); 37 mrid3 = ModuleRevisionId.newInstance("org", "md3", "rev3"); 38 mrid4 = ModuleRevisionId.newInstance("org", "md4", "rev4"); 39 md = new DefaultModuleDescriptor[] { 40 new DefaultModuleDescriptor(mrid1, "integration", new Date ()), 41 new DefaultModuleDescriptor(mrid2, "integration", new Date ()), 42 new DefaultModuleDescriptor(mrid3, "integration", new Date ()), 43 new DefaultModuleDescriptor(mrid4, "integration", new Date ()) 44 }; 45 md[1].addDependency(new DefaultDependencyDescriptor(mrid1, false)); 46 md[2].addDependency(new DefaultDependencyDescriptor(mrid2, false)); 47 md[3].addDependency(new DefaultDependencyDescriptor(mrid3, false)); 48 49 } 50 51 public void testSort() throws Exception { 52 Ivy ivy = new Ivy(); 53 ivy.configureDefault(); 54 toSort = new ArrayList (Arrays.asList(new Object [] {md[0], md[2], md[1], md[3]})); 55 assertSorted(md, ivy.sortModuleDescriptors(toSort)); 56 toSort = new ArrayList (Arrays.asList(new Object [] {md[0], md[1], md[2], md[3]})); 57 assertSorted(md, ivy.sortModuleDescriptors(toSort)); 58 toSort = new ArrayList (Arrays.asList(new Object [] {md[1], md[0], md[2], md[3]})); 59 assertSorted(md, ivy.sortModuleDescriptors(toSort)); 60 toSort = new ArrayList (Arrays.asList(new Object [] {md[1], md[2], md[0], md[3]})); 61 assertSorted(md, ivy.sortModuleDescriptors(toSort)); 62 toSort = new ArrayList (Arrays.asList(new Object [] {md[2], md[1], md[0], md[3]})); 63 assertSorted(md, ivy.sortModuleDescriptors(toSort)); 64 toSort = new ArrayList (Arrays.asList(new Object [] {md[2], md[0], md[1], md[3]})); 65 assertSorted(md, ivy.sortModuleDescriptors(toSort)); 66 toSort = new ArrayList (Arrays.asList(new Object [] {md[1], md[3], md[2], md[0]})); 67 assertSorted(md, ivy.sortModuleDescriptors(toSort)); 68 } 69 70 private void assertSorted(DefaultModuleDescriptor[] md, List sorted) { 71 assertEquals(md.length, sorted.size()); 72 for (int i = 0; i < md.length; i++) { 73 assertEquals(md[i], sorted.get(i)); 74 } 75 } 76 77 80 public void testCircularDependency() throws Exception { 81 Ivy ivy = new Ivy(); 82 ivy.configureDefault(); 83 md[0].addDependency(new DefaultDependencyDescriptor(mrid4, false)); 84 toSort = new ArrayList (Arrays.asList(new Object [] {md[0], md[2], md[1], md[3]})); 85 DefaultModuleDescriptor[] sorted = new DefaultModuleDescriptor[] { 88 md[1], md[2], md[3], md[0] 89 }; 90 91 assertSorted(sorted, ivy.sortModuleDescriptors(toSort)); 92 } 93 94 public void testCircularDependency2() throws Exception { 95 Ivy ivy = new Ivy(); 96 ivy.configureDefault(); 97 md[1].addDependency(new DefaultDependencyDescriptor(mrid3, false)); 98 toSort = new ArrayList (Arrays.asList(new Object [] {md[0], md[2], md[1], md[3]})); 99 assertSorted(md, ivy.sortModuleDescriptors(toSort)); 100 } 101 } | Popular Tags |