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


Reply via email to