1 package org.apache.maven.project; 2 3 18 19 import junit.framework.TestCase; 20 21 import org.apache.maven.model.Dependency; 22 import org.apache.maven.model.Model; 23 import org.codehaus.plexus.util.dag.CycleDetectedException; 24 25 import java.util.ArrayList ; 26 import java.util.List ; 27 28 34 public class ProjectSorterTest 35 extends TestCase 36 { 37 public void testMatchingArtifactIdsDifferentGroupIds() 38 throws CycleDetectedException, DuplicateProjectException 39 { 40 List projects = new ArrayList (); 41 MavenProject project1 = createProject( "groupId1", "artifactId", "1.0" ); 42 projects.add( project1 ); 43 MavenProject project2 = createProject( "groupId2", "artifactId", "1.0" ); 44 projects.add( project2 ); 45 project1.getDependencies().add( createDependency( project2 ) ); 46 47 projects = new ProjectSorter( projects ).getSortedProjects(); 48 49 assertEquals( project2, projects.get( 0 ) ); 50 assertEquals( project1, projects.get( 1 ) ); 51 } 52 53 public void testMatchingGroupIdsDifferentArtifactIds() 54 throws CycleDetectedException, DuplicateProjectException 55 { 56 List projects = new ArrayList (); 57 MavenProject project1 = createProject( "groupId", "artifactId1", "1.0" ); 58 projects.add( project1 ); 59 MavenProject project2 = createProject( "groupId", "artifactId2", "1.0" ); 60 projects.add( project2 ); 61 project1.getDependencies().add( createDependency( project2 ) ); 62 63 projects = new ProjectSorter( projects ).getSortedProjects(); 64 65 assertEquals( project2, projects.get( 0 ) ); 66 assertEquals( project1, projects.get( 1 ) ); 67 } 68 69 public void testMatchingIdsAndVersions() 70 throws CycleDetectedException 71 { 72 List projects = new ArrayList (); 73 MavenProject project1 = createProject( "groupId", "artifactId", "1.0" ); 74 projects.add( project1 ); 75 MavenProject project2 = createProject( "groupId", "artifactId", "1.0" ); 76 projects.add( project2 ); 77 78 try 79 { 80 projects = new ProjectSorter( projects ).getSortedProjects(); 81 fail( "Duplicate projects should fail" ); 82 } 83 catch ( DuplicateProjectException e ) 84 { 85 assertTrue( true ); 87 } 88 } 89 90 public void testMatchingIdsAndDifferentVersions() 91 throws CycleDetectedException 92 { 93 List projects = new ArrayList (); 94 MavenProject project1 = createProject( "groupId", "artifactId", "1.0" ); 95 projects.add( project1 ); 96 MavenProject project2 = createProject( "groupId", "artifactId", "2.0" ); 97 projects.add( project2 ); 98 99 try 100 { 101 projects = new ProjectSorter( projects ).getSortedProjects(); 102 fail( "Duplicate projects should fail" ); 103 } 104 catch ( DuplicateProjectException e ) 105 { 106 assertTrue( true ); 108 } 109 } 110 111 private Dependency createDependency( MavenProject project ) 112 { 113 Dependency depdendency = new Dependency(); 114 depdendency.setArtifactId( project.getArtifactId() ); 115 depdendency.setGroupId( project.getGroupId() ); 116 depdendency.setVersion( project.getVersion() ); 117 return depdendency; 118 } 119 120 private static MavenProject createProject( String groupId, String artifactId, String version ) 121 { 122 Model model = new Model(); 123 model.setGroupId( groupId ); 124 model.setArtifactId( artifactId ); 125 model.setVersion( version ); 126 return new MavenProject( model ); 127 } 128 } 129 | Popular Tags |