You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/09/28 04:01:42 UTC
svn commit: r450663 - in /maven/plugins/trunk/maven-dependency-plugin/src:
main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java
test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java
Author: brianf
Date: Wed Sep 27 19:01:42 2006
New Revision: 450663
URL: http://svn.apache.org/viewvc?view=rev&rev=450663
Log:
More mojo integration tests
Modified:
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java
Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java?view=diff&rev=450663&r1=450662&r2=450663
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java Wed Sep 27 19:01:42 2006
@@ -43,7 +43,7 @@
* @parameter expression="${stripVersion}" default-value="false"
* @parameter
*/
- private boolean stripVersion = false;
+ protected boolean stripVersion = false;
/**
* Main entry into mojo. Gets the list of dependencies and iterates through calling copyArtifact.
Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java?view=diff&rev=450663&r1=450662&r2=450663
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java Wed Sep 27 19:01:42 2006
@@ -1,10 +1,12 @@
package org.apache.maven.plugin.dependency;
import java.io.File;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
import org.apache.maven.plugin.dependency.utils.ArtifactStubFactory;
import org.apache.maven.plugin.dependency.utils.DependencyUtil;
import org.apache.maven.project.MavenProject;
@@ -12,6 +14,7 @@
public class TestCopyDependenciesMojo
extends AbstractDependencyMojoTestCase
{
+
protected void setUp()
throws Exception
{
@@ -19,17 +22,12 @@
super.setUp( "copy-dependencies", true );
}
- /**
- * tests the proper discovery and configuration of the mojo
- *
- * @throws Exception
- */
- public void testcompileTestEnvironment()
+ private CopyDependenciesMojo getNewMojo()
throws Exception
{
File testPom = new File( getBasedir(), "target/test-classes/unit/copy-dependencies-test/plugin-config.xml" );
CopyDependenciesMojo mojo = (CopyDependenciesMojo) lookupMojo( "copy-dependencies", testPom );
-
+ mojo.outputDirectory = new File( this.testDir, "outputDirectory" );
assertNotNull( mojo );
assertNotNull( mojo.project );
MavenProject project = mojo.project;
@@ -41,18 +39,288 @@
project.setArtifacts( artifacts );
project.setDependencyArtifacts( directArtifacts );
- mojo.outputDirectory = new File( this.testDir, "outputDirectory" );
+ return mojo;
+
+ }
+
+ /**
+ * tests the proper discovery and configuration of the mojo
+ *
+ * @throws Exception
+ */
+ public void testCopyDependenciesMojo()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File file = new File( mojo.outputDirectory, fileName );
+ assertTrue( file.exists() );
+ }
+ }
+
+ public void testCopyDependenciesMojoStripVersion()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.stripVersion = true;
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, true );
+ File file = new File( mojo.outputDirectory, fileName );
+ assertTrue( file.exists() );
+ }
+ }
+
+ public void testCopyDependenciesMojoNoTransitive()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.excludeTransitive = true;
+ mojo.execute();
+ Iterator iter = mojo.project.getDependencyArtifacts().iterator();
+
+ // test - get all direct dependencies and verify that they exist
+ // then delete the file and at the end, verify the folder is empty.
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File file = new File( mojo.outputDirectory, fileName );
+ assertTrue( file.exists() );
+ file.delete();
+ assertFalse( file.exists() );
+ }
+ // assumes you can't delete a folder that has files.
+ assertTrue( mojo.outputDirectory.delete() );
+ }
+
+ public void testCopyDependenciesMojoExcludeType()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.project.setArtifacts( stubFactory.getTypedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.excludeTypes = "jar";
+ mojo.execute();
+
+ // test - get all direct dependencies and verify that they exist if they
+ // are not a jar
+ // then delete the file and at the end, verify the folder is empty.
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File file = new File( mojo.outputDirectory, fileName );
+ assertEquals( artifact.getType().equalsIgnoreCase( "jar" ), !file.exists() );
+ file.delete();
+ assertFalse( file.exists() );
+ }
+ // assumes you can't delete a folder that has files.
+ assertTrue( mojo.outputDirectory.delete() );
+ }
+
+ public void testCopyDependenciesMojoIncludeType()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.project.setArtifacts( stubFactory.getTypedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+
+ mojo.includeTypes = "jar";
+ // if include is used, exclude should be ignored.
+ mojo.excludeTypes = "jar";
+
mojo.execute();
- Iterator iter = artifacts.iterator();
+ // test - get all direct dependencies and verify that they exist only if
+ // they are a jar
+ // then delete the file and at the end, verify the folder is empty.
+ Iterator iter = mojo.project.getArtifacts().iterator();
while ( iter.hasNext() )
{
Artifact artifact = (Artifact) iter.next();
- // TODO: verify there is a test for this method.
- // TODO: create test for striping versions too
String fileName = DependencyUtil.getFormattedFileName( artifact, false );
File file = new File( mojo.outputDirectory, fileName );
+ assertEquals( artifact.getType().equalsIgnoreCase( "jar" ), file.exists() );
+ file.delete();
+ assertFalse( file.exists() );
+ }
+ // assumes you can't delete a folder that has files.
+ assertTrue( mojo.outputDirectory.delete() );
+ }
+
+ public void testCopyDependenciesMojoSubPerType()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.project.setArtifacts( stubFactory.getTypedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.useSubDirectoryPerType = true;
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File folder = DependencyUtil.getFormattedOutputDirectory( true, false, mojo.outputDirectory, artifact );
+ File file = new File( folder, fileName );
assertTrue( file.exists() );
+ }
+ }
+
+ public void testCopyDependenciesMojoSubPerArtifact()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.useSubDirectoryPerArtifact = true;
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File folder = DependencyUtil.getFormattedOutputDirectory( false, true, mojo.outputDirectory, artifact );
+ File file = new File( folder, fileName );
+ assertTrue( file.exists() );
+ }
+ }
+
+ public void testCopyDependenciesMojoSubPerArtifactAndType()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.project.setArtifacts( stubFactory.getTypedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.useSubDirectoryPerArtifact = true;
+ mojo.useSubDirectoryPerType = true;
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File folder = DependencyUtil.getFormattedOutputDirectory( true, true, mojo.outputDirectory, artifact );
+ File file = new File( folder, fileName );
+ assertTrue( file.exists() );
+ }
+ }
+
+ public void testCopyDependenciesMojoIncludeCompileScope()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "compile";
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File file = new File( mojo.outputDirectory, fileName );
+
+ assertEquals( saf.include( artifact ), file.exists() );
+ }
+ }
+
+ public void testCopyDependenciesMojoIncludeTestScope()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "test";
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File file = new File( mojo.outputDirectory, fileName );
+
+ assertEquals( saf.include( artifact ), file.exists() );
+ }
+ }
+
+ public void testCopyDependenciesMojoIncludeRuntimeScope()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "runtime";
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File file = new File( mojo.outputDirectory, fileName );
+
+ assertEquals( saf.include( artifact ), file.exists() );
+ }
+ }
+
+ public void testCopyDependenciesMojoIncludeprovidedScope()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "provided";
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File file = new File( mojo.outputDirectory, fileName );
+
+ assertEquals( saf.include( artifact ), file.exists() );
+ }
+ }
+
+ public void testCopyDependenciesMojoIncludesystemScope()
+ throws Exception
+ {
+ CopyDependenciesMojo mojo = getNewMojo();
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "system";
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ String fileName = DependencyUtil.getFormattedFileName( artifact, false );
+ File file = new File( mojo.outputDirectory, fileName );
+
+ assertEquals( saf.include( artifact ), file.exists() );
}
}
}