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 ) );