You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2009/04/22 21:37:37 UTC

svn commit: r767631 - /maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java

Author: jdcasey
Date: Wed Apr 22 19:37:36 2009
New Revision: 767631

URL: http://svn.apache.org/viewvc?rev=767631&view=rev
Log:
[MNG-4074] unit tests

Modified:
    maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java

Modified: maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java?rev=767631&r1=767630&r2=767631&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java (original)
+++ maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java Wed Apr 22 19:37:36 2009
@@ -26,6 +26,7 @@
 import org.apache.maven.model.Extension;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginManagement;
 import org.codehaus.plexus.util.dag.CycleDetectedException;
 
 import java.util.ArrayList;
@@ -35,7 +36,7 @@
 
 /**
  * Test sorting projects by dependencies.
- *
+ * 
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
  */
@@ -49,22 +50,22 @@
         MavenProject project = createProject( "group", "artifactA", "1.0" );
 
         List projects = new ProjectSorter( Collections.singletonList( project ) ).getSortedProjects();
-        
+
         assertEquals( "Wrong number of projects: " + projects, 1, projects.size() );
         assertEquals( "Didn't match project", project, projects.get( 0 ) );
     }
-    
+
     public void testBasicMultiProject()
         throws CycleDetectedException, DuplicateProjectException, MissingProjectException
     {
         MavenProject projectA = createProject( "group", "artifactA", "1.0" );
         MavenProject projectB = createProject( "group", "artifactB", "1.0" );
         MavenProject projectC = createProject( "group", "artifactC", "1.0" );
-        
+
         projectA.getDependencies().add( createDependency( projectB ) );
         projectB.getDependencies().add( createDependency( projectC ) );
-        
-        List projects = Arrays.asList( new Object[] { projectA, projectB, projectC} );
+
+        List projects = Arrays.asList( new Object[] { projectA, projectB, projectC } );
 
         projects = new ProjectSorter( projects ).getSortedProjects();
 
@@ -145,7 +146,8 @@
         List projects = Arrays.asList( new Object[] { projectA, projectB, projectC } );
         List selectedProjects = Arrays.asList( new Object[] { "group:artifactB" } );
 
-        projects = new ProjectSorter( projects, selectedProjects, null, false/* make */, true/*makeDependents*/ ).getSortedProjects();
+        projects =
+            new ProjectSorter( projects, selectedProjects, null, false/* make */, true/* makeDependents */).getSortedProjects();
 
         assertEquals( "Wrong number of projects: " + projects, 2, projects.size() );
         assertEquals( "Didn't match project", projectB, projects.get( 0 ) );
@@ -178,32 +180,100 @@
         assertEquals( "Didn't match project", projectE, projects.get( 2 ) );
         assertEquals( "Didn't match project", projectD, projects.get( 3 ) );
     }
-    
-    public void testShouldNotFailWhenProjectReferencesNonExistentProject()
+
+    public void testShouldNotFailWhenPluginDepReferencesCurrentProject()
         throws CycleDetectedException, DuplicateProjectException, MissingProjectException
     {
         MavenProject project = createProject( "group", "artifact", "1.0" );
         Model model = project.getModel();
-        
+
         Build build = model.getBuild();
-        
+
+        if ( build == null )
+        {
+            build = new Build();
+            model.setBuild( build );
+        }
+
+        Plugin plugin = new Plugin();
+
+        plugin.setArtifactId( "other-artifact" );
+        plugin.setGroupId( "other.group" );
+        plugin.setVersion( "1.0" );
+
+        Dependency dep = new Dependency();
+        dep.setGroupId( "group" );
+        dep.setArtifactId( "artifact" );
+        dep.setVersion( "1.0" );
+
+        plugin.addDependency( dep );
+
+        build.addPlugin( plugin );
+
+        new ProjectSorter( Collections.singletonList( project ) );
+    }
+
+    public void testShouldNotFailWhenManagedPluginDepReferencesCurrentProject()
+        throws CycleDetectedException, DuplicateProjectException, MissingProjectException
+    {
+        MavenProject project = createProject( "group", "artifact", "1.0" );
+        Model model = project.getModel();
+
+        Build build = model.getBuild();
+
         if ( build == null )
         {
             build = new Build();
             model.setBuild( build );
         }
         
-        Extension extension = new Extension();
+        PluginManagement pMgmt = new PluginManagement();
+
+        Plugin plugin = new Plugin();
+
+        plugin.setArtifactId( "other-artifact" );
+        plugin.setGroupId( "other.group" );
+        plugin.setVersion( "1.0" );
+
+        Dependency dep = new Dependency();
+        dep.setGroupId( "group" );
+        dep.setArtifactId( "artifact" );
+        dep.setVersion( "1.0" );
+
+        plugin.addDependency( dep );
+
+        pMgmt.addPlugin( plugin );
         
+        build.setPluginManagement( pMgmt );
+
+        new ProjectSorter( Collections.singletonList( project ) );
+    }
+
+    public void testShouldNotFailWhenProjectReferencesNonExistentProject()
+        throws CycleDetectedException, DuplicateProjectException, MissingProjectException
+    {
+        MavenProject project = createProject( "group", "artifact", "1.0" );
+        Model model = project.getModel();
+
+        Build build = model.getBuild();
+
+        if ( build == null )
+        {
+            build = new Build();
+            model.setBuild( build );
+        }
+
+        Extension extension = new Extension();
+
         extension.setArtifactId( "other-artifact" );
         extension.setGroupId( "other.group" );
         extension.setVersion( "1.0" );
-        
+
         build.addExtension( extension );
-        
+
         new ProjectSorter( Collections.singletonList( project ) );
     }
-    
+
     public void testMatchingArtifactIdsDifferentGroupIds()
         throws CycleDetectedException, DuplicateProjectException, MissingProjectException
     {
@@ -245,7 +315,7 @@
         MavenProject project2 = createProject( "groupId", "artifactId", "1.0" );
         projects.add( project2 );
 
-        try 
+        try
         {
             projects = new ProjectSorter( projects ).getSortedProjects();
             fail( "Duplicate projects should fail" );
@@ -266,7 +336,7 @@
         MavenProject project2 = createProject( "groupId", "artifactId", "2.0" );
         projects.add( project2 );
 
-        try 
+        try
         {
             projects = new ProjectSorter( projects ).getSortedProjects();
             fail( "Duplicate projects should fail" );
@@ -317,13 +387,13 @@
         build.addPlugin( plugin );
 
         projects = new ProjectSorter( projects ).getSortedProjects();
-        
+
         assertEquals( parentProject, projects.get( 0 ) );
-        
+
         // the order of these two is non-deterministic, based on when they're added to the reactor.
         assertTrue( projects.contains( pluginProject ) );
         assertTrue( projects.contains( pluginLevelDepProject ) );
-        
+
         // the declaring project MUST be listed after the plugin and its plugin-level dep, though.
         assertEquals( declaringProject, projects.get( 3 ) );
     }
@@ -363,11 +433,11 @@
         build.addPlugin( plugin );
 
         projects = new ProjectSorter( projects ).getSortedProjects();
-        
+
         System.out.println( projects );
 
         assertEquals( parentProject, projects.get( 0 ) );
-        
+
         // the order of these two is non-deterministic, based on when they're added to the reactor.
         assertTrue( projects.contains( pluginProject ) );
         assertTrue( projects.contains( pluginLevelDepProject ) );