Author: brianf Date: Tue Dec 5 21:43:12 2006 New Revision: 482909 URL: http://svn.apache.org/viewvc?view=rev&rev=482909 Log: added unit tests for unpack
Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/unpack-test/ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/unpack-test/plugin-config.xml (with props) Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/SourcesFileMarkerHandler.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java?view=diff&rev=482909&r1=482908&r2=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java Tue Dec 5 21:43:12 2006 @@ -54,7 +54,7 @@ * @optional * @since 1.0 */ - protected File outputDirectory; + private File outputDirectory; /** * Overwrite release artifacts @@ -63,7 +63,7 @@ * @since 1.0 * @parameter expression="${overWriteReleases}" default-value="false" */ - protected boolean overWriteReleases; + private boolean overWriteReleases; /** * Overwrite snapshot artifacts @@ -72,7 +72,7 @@ * @since 1.0 * @parameter expression="${overWriteSnapshots}" default-value="false" */ - protected boolean overWriteSnapshots; + private boolean overWriteSnapshots; /** * Overwrite if newer @@ -81,7 +81,7 @@ * @since 2.0 * @parameter expression="${overIfNewer}" default-value="true" */ - protected boolean overWriteIfNewer; + private boolean overWriteIfNewer; /** * Collection of ArtifactItems to work on. (ArtifactItem contains groupId, @@ -92,7 +92,7 @@ * @required * @since 1.0 */ - protected ArrayList artifactItems; + private ArrayList artifactItems; abstract ArtifactItemFilter getMarkedArtifactFilter( ArtifactItem item ); @@ -264,5 +264,85 @@ } } return result; + } + + /** + * @return Returns the artifactItems. + */ + public ArrayList getArtifactItems() + { + return this.artifactItems; + } + + /** + * @param theArtifactItems The artifactItems to set. + */ + public void setArtifactItems( ArrayList theArtifactItems ) + { + this.artifactItems = theArtifactItems; + } + + /** + * @return Returns the outputDirectory. + */ + public File getOutputDirectory() + { + return this.outputDirectory; + } + + /** + * @param theOutputDirectory The outputDirectory to set. + */ + public void setOutputDirectory( File theOutputDirectory ) + { + this.outputDirectory = theOutputDirectory; + } + + /** + * @return Returns the overWriteIfNewer. + */ + public boolean isOverWriteIfNewer() + { + return this.overWriteIfNewer; + } + + /** + * @param theOverWriteIfNewer The overWriteIfNewer to set. + */ + public void setOverWriteIfNewer( boolean theOverWriteIfNewer ) + { + this.overWriteIfNewer = theOverWriteIfNewer; + } + + /** + * @return Returns the overWriteReleases. + */ + public boolean isOverWriteReleases() + { + return this.overWriteReleases; + } + + /** + * @param theOverWriteReleases The overWriteReleases to set. + */ + public void setOverWriteReleases( boolean theOverWriteReleases ) + { + this.overWriteReleases = theOverWriteReleases; + } + + /** + * @return Returns the overWriteSnapshots. + */ + public boolean isOverWriteSnapshots() + { + return this.overWriteSnapshots; + } + + /** + * @param theOverWriteSnapshots The overWriteSnapshots to set. + */ + public void setOverWriteSnapshots( boolean theOverWriteSnapshots ) + { + this.overWriteSnapshots = theOverWriteSnapshots; } } Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java?view=diff&rev=482909&r1=482908&r2=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java Tue Dec 5 21:43:12 2006 @@ -100,9 +100,9 @@ protected ArtifactItemFilter getMarkedArtifactFilter( ArtifactItem item ) { - ArtifactItemFilter destinationNameOverrideFilter = new DestFileFilter( this.overWriteReleases, - this.overWriteSnapshots, - this.overWriteIfNewer, false, false, + ArtifactItemFilter destinationNameOverrideFilter = new DestFileFilter( this.isOverWriteReleases(), + this.isOverWriteSnapshots(), + this.isOverWriteIfNewer(), false, false, this.stripVersion, item .getOutputDirectory() ); return destinationNameOverrideFilter; Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java?view=diff&rev=482909&r1=482908&r2=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java Tue Dec 5 21:43:12 2006 @@ -109,6 +109,24 @@ { MarkerHandler handler = new DefaultFileMarkerHandler( item.getArtifact(), this.markersDirectory ); - return new MarkerFileFilter( this.overWriteReleases, this.overWriteSnapshots, this.overWriteIfNewer, handler ); + return new MarkerFileFilter( this.isOverWriteReleases(), this.isOverWriteSnapshots(), + this.isOverWriteIfNewer(), handler ); + } + + /** + * @return Returns the markersDirectory. + */ + public File getMarkersDirectory() + { + return this.markersDirectory; + } + + /** + * @param theMarkersDirectory + * The markersDirectory to set. + */ + public void setMarkersDirectory( File theMarkersDirectory ) + { + this.markersDirectory = theMarkersDirectory; } } Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java?view=diff&rev=482909&r1=482908&r2=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java Tue Dec 5 21:43:12 2006 @@ -101,7 +101,14 @@ { File marker = getMarkerFile(); // create marker file - marker.getParentFile().mkdirs(); + try + { + marker.getParentFile().mkdirs(); + } + catch ( NullPointerException e ) + { + // parent is null, ignore it. + } try { marker.createNewFile(); Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/SourcesFileMarkerHandler.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/SourcesFileMarkerHandler.java?view=diff&rev=482909&r1=482908&r2=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/SourcesFileMarkerHandler.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/SourcesFileMarkerHandler.java Tue Dec 5 21:43:12 2006 @@ -135,7 +135,14 @@ // get the other file if it exists. File clearMarker = getMarkerFile( !this.resolved ); // create marker file + try { marker.getParentFile().mkdirs(); + } + catch (NullPointerException e) + { + //parent is null, ignore it. + } + try { marker.createNewFile(); Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java?view=diff&rev=482909&r1=482908&r2=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java Tue Dec 5 21:43:12 2006 @@ -52,7 +52,7 @@ // mojo.silent = true; // it needs to get the archivermanager - stubFactory.setUnpackableFile( mojo.archiverManager ); + stubFactory.setUnpackableFile( mojo.getArchiverManager() ); // i'm using one file repeatedly to archive so I can test the name // programmatically. stubFactory.setSrcFile( new File( getBasedir() + File.separatorChar Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java?view=diff&rev=482909&r1=482908&r2=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java Tue Dec 5 21:43:12 2006 @@ -52,7 +52,7 @@ File testPom = new File( getBasedir(), "target/test-classes/unit/copy-test/plugin-config.xml" ); mojo = (CopyMojo) lookupMojo( "copy", testPom ); - mojo.outputDirectory = new File( this.testDir, "outputDirectory" ); + mojo.setOutputDirectory(new File( this.testDir, "outputDirectory" )); // mojo.silent = true; assertNotNull( mojo ); @@ -84,12 +84,12 @@ ArrayList list = new ArrayList( 1 ); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); ArtifactItem result = getSingleArtifactItem( false ); - assertEquals( mojo.outputDirectory, result.getOutputDirectory() ); + assertEquals( mojo.getOutputDirectory(), result.getOutputDirectory() ); - File output = new File( mojo.outputDirectory, "override" ); + File output = new File( mojo.getOutputDirectory(), "override" ); item.setOutputDirectory( output ); result = getSingleArtifactItem( false ); assertEquals( output, result.getOutputDirectory() ); @@ -122,7 +122,7 @@ { ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); mojo.execute(); @@ -134,9 +134,9 @@ { ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); ArtifactItem item = (ArtifactItem) list.get( 0 ); - item.setOutputDirectory( new File( mojo.outputDirectory, "testOverride" ) ); + item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); mojo.execute(); @@ -148,10 +148,10 @@ { ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); ArtifactItem item = (ArtifactItem) list.get( 0 ); - item.setOutputDirectory( new File( mojo.outputDirectory, "testOverride" ) ); + item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) ); mojo.setStripVersion( true ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); mojo.execute(); @@ -163,7 +163,7 @@ { ArrayList list = stubFactory.getArtifactItems( stubFactory.getReleaseAndSnapshotArtifacts() ); mojo.setStripVersion( true ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); mojo.execute(); @@ -175,7 +175,7 @@ { ArrayList list = stubFactory.getArtifactItems( stubFactory.getReleaseAndSnapshotArtifacts() ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); mojo.execute(); @@ -194,7 +194,7 @@ ArrayList list = new ArrayList(); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); try { @@ -242,7 +242,7 @@ ArrayList list = new ArrayList(); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); MavenProject project = mojo.getProject(); project.setDependencies( getDependencyList( item ) ); @@ -264,7 +264,7 @@ ArrayList list = new ArrayList(); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); MavenProject project = mojo.getProject(); project.setDependencies( getDependencyList( item ) ); @@ -320,7 +320,7 @@ ArrayList list = new ArrayList(); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) ); @@ -353,7 +353,7 @@ ArrayList list = new ArrayList(); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) ); @@ -388,7 +388,7 @@ ArrayList list = new ArrayList(); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); // init classifier things mojo.setFactory( DependencyTestUtils.getArtifactFactory() ); @@ -438,9 +438,9 @@ ArrayList list = new ArrayList( 1 ); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); - mojo.overWriteIfNewer = false; + mojo.setOverWriteIfNewer(false); mojo.execute(); @@ -469,9 +469,9 @@ ArrayList list = new ArrayList( 1 ); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); - mojo.overWriteIfNewer = false; + mojo.setOverWriteIfNewer(false); mojo.execute(); @@ -500,10 +500,10 @@ ArrayList list = new ArrayList( 1 ); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); - mojo.overWriteIfNewer = false; - mojo.overWriteReleases = true; + mojo.setOverWriteIfNewer(false); + mojo.setOverWriteReleases(true); mojo.execute(); File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() ); @@ -528,11 +528,11 @@ ArrayList list = new ArrayList( 1 ); list.add( item ); - mojo.artifactItems = list; + mojo.setArtifactItems(list); - mojo.overWriteIfNewer = false; - mojo.overWriteReleases = false; - mojo.overWriteSnapshots = true; + mojo.setOverWriteIfNewer(false); + mojo.setOverWriteReleases(false); + mojo.setOverWriteSnapshots(true); mojo.execute(); File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() ); @@ -557,8 +557,8 @@ ArrayList list = new ArrayList( 1 ); list.add( item ); - mojo.artifactItems = list; - mojo.overWriteIfNewer = true; + mojo.setArtifactItems(list); + mojo.setOverWriteIfNewer(true); mojo.execute(); File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() ); Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java?view=auto&rev=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java Tue Dec 5 21:43:12 2006 @@ -0,0 +1,551 @@ +package org.apache.maven.plugin.dependency.fromConfiguration; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.model.Dependency; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase; +import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils; +import org.apache.maven.plugin.dependency.testUtils.stubs.StubArtifactRepository; +import org.apache.maven.plugin.dependency.testUtils.stubs.StubArtifactResolver; +import org.apache.maven.plugin.dependency.utils.DependencyUtil; +import org.apache.maven.plugin.dependency.utils.markers.DefaultFileMarkerHandler; +import org.apache.maven.project.MavenProject; + +public class TestUnpackMojo + extends AbstractDependencyMojoTestCase +{ + + UnpackMojo mojo; + + public TestUnpackMojo() + { + super(); + } + + protected void setUp() + throws Exception + { + super.setUp( "unpack", true ); + + File testPom = new File( getBasedir(), "target/test-classes/unit/unpack-test/plugin-config.xml" ); + mojo = (UnpackMojo) lookupMojo( "unpack", testPom ); + mojo.setOutputDirectory( new File( this.testDir, "outputDirectory" ) ); + mojo.setMarkersDirectory( new File( this.testDir, "markers" ) ); + // mojo.silent = true; + + assertNotNull( mojo ); + assertNotNull( mojo.getProject() ); + // MavenProject project = mojo.getProject(); + // init classifier things + // it needs to get the archivermanager + stubFactory.setUnpackableFile( mojo.getArchiverManager() ); + // i'm using one file repeatedly to archive so I can test the name + // programmatically. + stubFactory.setSrcFile( new File( getBasedir() + File.separatorChar + + "target/test-classes/unit/unpack-dependencies-test/test.txt" ) ); + + mojo.setFactory( DependencyTestUtils.getArtifactFactory() ); + mojo.setResolver( new StubArtifactResolver( stubFactory, false, false ) ); + mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) ); + } + + public ArtifactItem getSingleArtifactItem( boolean removeVersion ) + throws MojoExecutionException + { + ArrayList list = mojo.getArtifactItems( removeVersion ); + return (ArtifactItem) list.get( 0 ); + } + + public void testGetArtifactItems() + throws MojoExecutionException + { + + ArtifactItem item = new ArtifactItem(); + + item.setArtifactId( "artifact" ); + item.setGroupId( "groupId" ); + item.setVersion( "1.0" ); + + ArrayList list = new ArrayList( 1 ); + list.add( item ); + + mojo.setArtifactItems( list ); + + ArtifactItem result = getSingleArtifactItem( false ); + assertEquals( mojo.getOutputDirectory(), result.getOutputDirectory() ); + + File output = new File( mojo.getOutputDirectory(), "override" ); + item.setOutputDirectory( output ); + result = getSingleArtifactItem( false ); + assertEquals( output, result.getOutputDirectory() ); + } + + public void assertMarkerFiles( Collection items, boolean exist ) + { + Iterator iter = items.iterator(); + while ( iter.hasNext() ) + { + assertMarkerFile( exist, (ArtifactItem) iter.next() ); + } + } + + public void assertMarkerFile( boolean val, ArtifactItem item ) + { + DefaultFileMarkerHandler handle = new DefaultFileMarkerHandler( item.getArtifact(), mojo.getMarkersDirectory() ); + try + { + assertEquals( val, handle.isMarkerSet() ); + } + catch ( MojoExecutionException e ) + { + fail( e.getLongMessage() ); + } + } + + public void testUnpackFile() + throws IOException, MojoExecutionException + { + ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); + + mojo.setArtifactItems( list ); + + mojo.execute(); + + assertMarkerFiles( list, true ); + } + + public void testCopyToLocation() + throws IOException, MojoExecutionException + { + ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); + ArtifactItem item = (ArtifactItem) list.get( 0 ); + item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) ); + + mojo.setArtifactItems( list ); + + mojo.execute(); + + assertMarkerFiles( list, true ); + } + + public void testMissingVersionNotFound() + throws MojoExecutionException + { + ArtifactItem item = new ArtifactItem(); + + item.setArtifactId( "artifactId" ); + item.setClassifier( "" ); + item.setGroupId( "groupId" ); + item.setType( "type" ); + + ArrayList list = new ArrayList(); + list.add( item ); + mojo.setArtifactItems( list ); + + try + { + mojo.execute(); + fail( "Expected Exception Here." ); + } + catch ( MojoExecutionException e ) + { + // caught the expected exception. + } + } + + public List getDependencyList( ArtifactItem item ) + { + Dependency dep = new Dependency(); + dep.setArtifactId( item.getArtifactId() ); + dep.setClassifier( item.getClassifier() ); + dep.setGroupId( item.getGroupId() ); + dep.setType( item.getType() ); + dep.setVersion( "2.0-SNAPSHOT" ); + + Dependency dep2 = new Dependency(); + dep2.setArtifactId( item.getArtifactId() ); + dep2.setClassifier( "classifier" ); + dep2.setGroupId( item.getGroupId() ); + dep2.setType( item.getType() ); + dep2.setVersion( "2.1" ); + + List list = new ArrayList( 2 ); + list.add( dep2 ); + list.add( dep ); + + return list; + } + + public void testMissingVersionFromDependencies() + throws MojoExecutionException + { + ArtifactItem item = new ArtifactItem(); + + item.setArtifactId( "artifactId" ); + item.setClassifier( "" ); + item.setGroupId( "groupId" ); + item.setType( "jar" ); + + ArrayList list = new ArrayList(); + list.add( item ); + mojo.setArtifactItems( list ); + + MavenProject project = mojo.getProject(); + project.setDependencies( getDependencyList( item ) ); + + mojo.execute(); + assertMarkerFile( true, item ); + assertEquals( "2.0-SNAPSHOT", item.getVersion() ); + } + + public void testMissingVersionFromDependenciesWithClassifier() + throws MojoExecutionException + { + ArtifactItem item = new ArtifactItem(); + + item.setArtifactId( "artifactId" ); + item.setClassifier( "classifier" ); + item.setGroupId( "groupId" ); + item.setType( "war" ); + + ArrayList list = new ArrayList(); + list.add( item ); + mojo.setArtifactItems( list ); + + MavenProject project = mojo.getProject(); + project.setDependencies( getDependencyList( item ) ); + + mojo.execute(); + assertMarkerFile( true, item ); + assertEquals( "2.1", item.getVersion() ); + } + + public List getDependencyMgtList( ArtifactItem item ) + { + Dependency dep = new Dependency(); + dep.setArtifactId( item.getArtifactId() ); + dep.setClassifier( item.getClassifier() ); + dep.setGroupId( item.getGroupId() ); + dep.setType( item.getType() ); + dep.setVersion( "3.0-SNAPSHOT" ); + + Dependency dep2 = new Dependency(); + dep2.setArtifactId( item.getArtifactId() ); + dep2.setClassifier( "classifier" ); + dep2.setGroupId( item.getGroupId() ); + dep2.setType( item.getType() ); + dep2.setVersion( "3.1" ); + + List list = new ArrayList( 2 ); + list.add( dep2 ); + list.add( dep ); + + return list; + } + + public void testMissingVersionFromDependencyMgt() + throws MojoExecutionException + { + ArtifactItem item = new ArtifactItem(); + + item.setArtifactId( "artifactId" ); + item.setClassifier( "" ); + item.setGroupId( "groupId" ); + item.setType( "jar" ); + + MavenProject project = mojo.getProject(); + project.setDependencies( getDependencyList( item ) ); + + item = new ArtifactItem(); + + item.setArtifactId( "artifactId-2" ); + item.setClassifier( "" ); + item.setGroupId( "groupId" ); + item.setType( "jar" ); + + ArrayList list = new ArrayList(); + list.add( item ); + + mojo.setArtifactItems( list ); + + project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) ); + + mojo.execute(); + assertMarkerFile( true, item ); + assertEquals( "3.0-SNAPSHOT", item.getVersion() ); + } + + public void testMissingVersionFromDependencyMgtWithClassifier() + throws MojoExecutionException + { + ArtifactItem item = new ArtifactItem(); + + item.setArtifactId( "artifactId" ); + item.setClassifier( "classifier" ); + item.setGroupId( "groupId" ); + item.setType( "jar" ); + + MavenProject project = mojo.getProject(); + project.setDependencies( getDependencyList( item ) ); + + item = new ArtifactItem(); + + item.setArtifactId( "artifactId-2" ); + item.setClassifier( "classifier" ); + item.setGroupId( "groupId" ); + item.setType( "jar" ); + + ArrayList list = new ArrayList(); + list.add( item ); + + mojo.setArtifactItems( list ); + + project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) ); + + mojo.execute(); + + assertMarkerFile( true, item ); + assertEquals( "3.1", item.getVersion() ); + } + + public void testArtifactNotFound() + throws Exception + { + dotestArtifactExceptions( false, true ); + } + + public void testArtifactResolutionException() + throws Exception + { + dotestArtifactExceptions( true, false ); + } + + public void dotestArtifactExceptions( boolean are, boolean anfe ) + throws Exception + { + ArtifactItem item = new ArtifactItem(); + + item.setArtifactId( "artifactId" ); + item.setClassifier( "" ); + item.setGroupId( "groupId" ); + item.setType( "type" ); + item.setVersion( "1.0" ); + + ArrayList list = new ArrayList(); + list.add( item ); + mojo.setArtifactItems( list ); + + // init classifier things + mojo.setFactory( DependencyTestUtils.getArtifactFactory() ); + mojo.setResolver( new StubArtifactResolver( null, are, anfe ) ); + mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) ); + + try + { + mojo.execute(); + fail( "ExpectedException" ); + } + catch ( MojoExecutionException e ) + { + if ( are ) + { + assertEquals( "Unable to resolve artifact.", e.getMessage() ); + } + else + { + assertEquals( "Unable to find artifact.", e.getMessage() ); + } + } + } + + public void testNoArtifactItems() + { + try + { + mojo.getArtifactItems( false ); + fail( "Expected Exception" ); + } + catch ( MojoExecutionException e ) + { + assertEquals( "There are no artifactItems configured.", e.getMessage() ); + } + + } +/* + public void testCopyDontOverWriteReleases() + throws IOException, MojoExecutionException, InterruptedException + { + stubFactory.setCreateFiles( true ); + Artifact release = stubFactory.getReleaseArtifact(); + release.getFile().setLastModified( System.currentTimeMillis() - 2000 ); + + ArtifactItem item = new ArtifactItem( release ); + + ArrayList list = new ArrayList( 1 ); + list.add( item ); + mojo.setArtifactItems( list ); + + mojo.setOverWriteIfNewer( false ); + + mojo.execute(); + + File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() ); + + Thread.sleep( 100 ); + // round up to the next second + long time = System.currentTimeMillis() + 1000; + time = time - ( time % 1000 ); + copiedFile.setLastModified( time ); + Thread.sleep( 100 ); + + mojo.execute(); + + assertEquals( time, copiedFile.lastModified() ); + } + + public void testCopyDontOverWriteSnapshots() + throws IOException, MojoExecutionException, InterruptedException + { + stubFactory.setCreateFiles( true ); + Artifact artifact = stubFactory.getSnapshotArtifact(); + artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 ); + + ArtifactItem item = new ArtifactItem( artifact ); + + ArrayList list = new ArrayList( 1 ); + list.add( item ); + mojo.setArtifactItems( list ); + + mojo.setOverWriteIfNewer( false ); + + mojo.execute(); + + File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() ); + + Thread.sleep( 100 ); + // round up to the next second + long time = System.currentTimeMillis() + 1000; + time = time - ( time % 1000 ); + copiedFile.setLastModified( time ); + Thread.sleep( 100 ); + + mojo.execute(); + + assertEquals( time, copiedFile.lastModified() ); + } + + public void testCopyOverWriteReleases() + throws IOException, MojoExecutionException, InterruptedException + { + stubFactory.setCreateFiles( true ); + Artifact release = stubFactory.getReleaseArtifact(); + release.getFile().setLastModified( System.currentTimeMillis() - 2000 ); + + ArtifactItem item = new ArtifactItem( release ); + + ArrayList list = new ArrayList( 1 ); + list.add( item ); + mojo.setArtifactItems( list ); + + mojo.setOverWriteIfNewer( false ); + mojo.setOverWriteReleases( true ); + mojo.execute(); + + File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() ); + + // round up to the next second + long time = System.currentTimeMillis() - 2000; + copiedFile.setLastModified( time ); + + mojo.execute(); + + assertTrue( time < copiedFile.lastModified() ); + } + + public void testCopyOverWriteSnapshot() + throws IOException, MojoExecutionException, InterruptedException + { + stubFactory.setCreateFiles( true ); + Artifact artifact = stubFactory.getSnapshotArtifact(); + artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 ); + + ArtifactItem item = new ArtifactItem( artifact ); + + ArrayList list = new ArrayList( 1 ); + list.add( item ); + mojo.setArtifactItems( list ); + + mojo.setOverWriteIfNewer( false ); + mojo.setOverWriteReleases( false ); + mojo.setOverWriteSnapshots( true ); + mojo.execute(); + + File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() ); + + // round up to the next second + long time = System.currentTimeMillis() - 2000; + copiedFile.setLastModified( time ); + + mojo.execute(); + + assertTrue( time < copiedFile.lastModified() ); + } + + public void testCopyOverWriteIfNewer() + throws IOException, MojoExecutionException, InterruptedException + { + stubFactory.setCreateFiles( true ); + Artifact artifact = stubFactory.getSnapshotArtifact(); + artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 ); + + ArtifactItem item = new ArtifactItem( artifact ); + + ArrayList list = new ArrayList( 1 ); + list.add( item ); + mojo.setArtifactItems( list ); + mojo.setOverWriteIfNewer( true ); + mojo.execute(); + + File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() ); + + // set dest to be old + long time = System.currentTimeMillis() - 10000; + copiedFile.setLastModified( time ); + + // set source to be newer + artifact.getFile().setLastModified( time + 4000 ); + mojo.execute(); + + assertTrue( time < copiedFile.lastModified() ); + } + */ +} +// TODO: test overwrite / overwrite if newer / overwrite release / overwrite +// snapshot + Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java?view=diff&rev=482909&r1=482908&r2=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java Tue Dec 5 21:43:12 2006 @@ -176,4 +176,12 @@ handler.setMarkerFilesDirectory( outputFolder ); assertSame( outputFolder, handler.getMarkerFilesDirectory() ); } + + public void testNullParent() throws MojoExecutionException + { + DefaultFileMarkerHandler handler = new DefaultFileMarkerHandler(null,null); + handler.setArtifact( (Artifact) artifacts.get( 0 ) ); + handler.setMarker(); + assertTrue(handler.isMarkerSet()); + } } Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java?view=diff&rev=482909&r1=482908&r2=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java Tue Dec 5 21:43:12 2006 @@ -271,4 +271,19 @@ handler.setResolved( false ); assertFalse( handler.isResolved() ); } + + public void testNullParent() throws MojoExecutionException + { + DefaultFileMarkerHandler handler = new SourcesFileMarkerHandler(null,null,false); + handler.setArtifact( (Artifact) artifacts.get( 0 ) ); + handler.setMarker(); + assertTrue(handler.isMarkerSet()); + } + public void testNullParentResolved() throws MojoExecutionException + { + DefaultFileMarkerHandler handler = new SourcesFileMarkerHandler(null,null,true); + handler.setArtifact( (Artifact) artifacts.get( 0 ) ); + handler.setMarker(); + assertTrue(handler.isMarkerSet()); + } } Added: maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/unpack-test/plugin-config.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/unpack-test/plugin-config.xml?view=auto&rev=482909 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/unpack-test/plugin-config.xml (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/unpack-test/plugin-config.xml Tue Dec 5 21:43:12 2006 @@ -0,0 +1,38 @@ +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +--> +<project> + <build> + <plugins> + <plugin> + <artifactId>maven-dependency-plugin</artifactId> + <configuration> + <project implementation="org.apache.maven.plugin.dependency.testUtils.stubs.DependencyProjectStub"/> + </configuration> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>2.0.4</version> + </dependency> + </dependencies> +</project> \ No newline at end of file Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/unpack-test/plugin-config.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml