You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/08/22 03:28:35 UTC

svn commit: r568360 [3/3] - in /maven/plugins/trunk/maven-assembly-plugin: ./ src/functional-tests/java/org/apache/maven/plugin/assembly/interpolation/ src/functional-tests/resources/basicAbstractAssemblyMojoFeaturesTest/ src/it/basic-features/ src/it/...

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java?rev=568360&r1=568359&r2=568360&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java Tue Aug 21 18:28:22 2007
@@ -3,6 +3,7 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
+import org.apache.maven.plugin.assembly.archive.task.testutils.ArtifactMock;
 import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddArtifactTask;
 import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddDependencySetsTask;
 import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddFileSetsTask;
@@ -108,7 +109,9 @@
 
         MavenProject project = new MavenProject( model );
 
-        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, "test", project );
+        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, project );
+
+        macTask.expectGetFinalName( null );
 
         FileSet fs = new FileSet();
 
@@ -121,12 +124,9 @@
 
         artifactProject.setFile( new File( basedir, "pom.xml" ) );
 
-        MockAndControlForArtifact macArtifact = new MockAndControlForArtifact( mm );
-
-        macArtifact.expectIsSnapshot( false );
-        macArtifact.expectGetArtifactHandler();
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "jar", false );
 
-        artifactProject.setArtifact( macArtifact.artifact );
+        artifactProject.setArtifact( artifactMock.getArtifact() );
 
         mm.replayAll();
 
@@ -150,7 +150,9 @@
 
         MavenProject project = new MavenProject( model );
 
-        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, "test", project );
+        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, project );
+
+        macTask.expectGetFinalName( null );
 
         FileSet fs = new FileSet();
         fs.setOutputDirectory( "out" );
@@ -164,12 +166,9 @@
 
         artifactProject.setFile( new File( basedir, "pom.xml" ) );
 
-        MockAndControlForArtifact macArtifact = new MockAndControlForArtifact( mm );
-
-        macArtifact.expectIsSnapshot( false );
-        macArtifact.expectGetArtifactHandler();
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "jar", false );
 
-        artifactProject.setArtifact( macArtifact.artifact );
+        artifactProject.setArtifact( artifactMock.getArtifact() );
 
         mm.replayAll();
 
@@ -188,7 +187,9 @@
     {
         MockManager mm = new MockManager();
 
-        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, "test", null );
+        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, null );
+
+        macTask.expectGetFinalName( null );
 
         FileSet fs = new FileSet();
 
@@ -206,12 +207,9 @@
 
         project.setFile( new File( basedir, "pom.xml" ) );
 
-        MockAndControlForArtifact macArtifact = new MockAndControlForArtifact( mm );
-
-        macArtifact.expectIsSnapshot( false );
-        macArtifact.expectGetArtifactHandler();
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "jar", false );
 
-        project.setArtifact( macArtifact.artifact );
+        project.setArtifact( artifactMock.getArtifact() );
 
         mm.replayAll();
 
@@ -243,12 +241,13 @@
 
         MavenProject project = createProject( "group", "artifact", "version", null );
 
-        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, null, project );
+        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, project );
 
         MavenProject module = createProject( "group", "module", "version", project );
 
-        macTask.expectArtifactGetFile();
-        module.setArtifact( macTask.artifact );
+        ArtifactMock moduleArtifactMock = new ArtifactMock( mm, "group", "module", "version", "jar", false );
+        File moduleArtifactFile = moduleArtifactMock.setNewFile();
+        module.setArtifact( moduleArtifactMock.getArtifact() );
 
         List projects = new ArrayList();
 
@@ -256,12 +255,10 @@
 
         macTask.expectGetReactorProjects( projects );
         macTask.expectGetFinalName( "final-name" );
-        macTask.expectIsSnapshot( false );
-        macTask.expectGetArtifactHandler();
 
         int mode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
 
-        macTask.expectAddFile( "out/artifact", mode );
+        macTask.expectAddFile( moduleArtifactFile, "out/artifact", mode );
 
         Assembly assembly = new Assembly();
         assembly.setIncludeBaseDirectory( false );
@@ -312,7 +309,9 @@
 
         MavenProject project = createProject( "group", "artifact", "version", null );
         project.setPackaging( "pom" );
-        project.setArtifact( macTask.artifact );
+
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "pom", false );
+        project.setArtifact( artifactMock.getArtifact() );
 
         Set projects = Collections.singleton( project );
 
@@ -331,13 +330,13 @@
     {
         MockManager mm = new MockManager();
 
-        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, "test", null );
+        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, null );
+
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "jar", "test", false );
+        File artifactFile = artifactMock.setNewFile();
 
-        macTask.expectArtifactGetFile( true );
         macTask.expectGetFinalName( "final-name" );
-        macTask.expectIsSnapshot( false );
-        macTask.expectGetArtifactHandler();
-        macTask.expectAddFile( "out/artifact", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        macTask.expectAddFile( artifactFile, "out/artifact", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
 
         ModuleBinaries binaries = new ModuleBinaries();
 
@@ -349,7 +348,7 @@
         binaries.setAttachmentClassifier( "test" );
 
         MavenProject project = createProject( "group", "artifact", "version", null );
-        project.addAttachedArtifact( macTask.artifact );
+        project.addAttachedArtifact( artifactMock.getArtifact() );
 
         Set projects = Collections.singleton( project );
 
@@ -369,7 +368,8 @@
 
         MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
 
-        macTask.expectArtifactGetFile( true );
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "jar", "test", false );
+        artifactMock.setNewFile();
 
         ModuleBinaries binaries = new ModuleBinaries();
 
@@ -380,7 +380,7 @@
         binaries.setAttachmentClassifier( "test" );
 
         MavenProject project = createProject( "group", "artifact", "version", null );
-        project.setArtifact( macTask.artifact );
+        project.setArtifact( artifactMock.getArtifact() );
 
         Set projects = Collections.singleton( project );
 
@@ -410,11 +410,11 @@
 
         MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
 
-        macTask.expectArtifactGetFile( true );
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "jar", false );
+        File artifactFile = artifactMock.setNewFile();
+
         macTask.expectGetFinalName( "final-name" );
-        macTask.expectIsSnapshot( false );
-        macTask.expectGetArtifactHandler();
-        macTask.expectAddFile( "out/artifact", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        macTask.expectAddFile( artifactFile, "out/artifact", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
 
         ModuleBinaries binaries = new ModuleBinaries();
 
@@ -425,7 +425,7 @@
         binaries.setOutputFileNameMapping( "artifact" );
 
         MavenProject project = createProject( "group", "artifact", "version", null );
-        project.setArtifact( macTask.artifact );
+        project.setArtifact( artifactMock.getArtifact() );
 
         Set projects = Collections.singleton( project );
 
@@ -446,11 +446,11 @@
 
         MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm );
 
-        macTask.expectArtifactGetFile( true );
-        macTask.expectGetFinalName( "final-name" );
-        macTask.expectIsSnapshot( false );
-        macTask.expectGetArtifactHandler();
-        macTask.expectAddFile( "out/artifact", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "jar", false );
+        File artifactFile = artifactMock.setNewFile();
+
+        macTask.expectCSGetFinalName( "final-name" );
+        macTask.expectAddFile( artifactFile, "out/artifact", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
 
         ModuleBinaries binaries = new ModuleBinaries();
 
@@ -462,35 +462,26 @@
         DependencySet ds = new DependencySet();
         ds.setUseProjectArtifact( false );
         ds.setOutputDirectory( binaries.getOutputDirectory() );
-        ds.setOutputFileNameMapping( "${artifactId}" );
+        ds.setOutputFileNameMapping( "${artifact.artifactId}" );
         ds.setFileMode( "777" );
 
         binaries.addDependencySet( ds );
 
         MavenProject project = createProject( "group", "artifact", "version", null );
-        project.setArtifact( macTask.artifact );
-
-        MockAndControlForArtifact macDepArtifact = new MockAndControlForArtifact( mm );
+        project.setArtifact( artifactMock.getArtifact() );
 
-        macDepArtifact.expectGetType( "jar" );
-        macDepArtifact.expectIsSnapshot( false );
-        macDepArtifact.expectGetArtifactHandler();
-        macDepArtifact.expectGetArtifactId( "dep" );
+        ArtifactMock depArtifactMock = new ArtifactMock( mm, "group", "dep", "1", "jar", false );
+        File depArtifactFile = depArtifactMock.setNewFile();
 
-        File artifactFile = fileManager.createTempFile();
-
-        macDepArtifact.expectGetFile( artifactFile );
-
-        macTask.expectAddFile( artifactFile, "out/dep", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        macTask.expectAddFile( depArtifactFile, "out/dep", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
 
         MavenProject depProject = createProject( "group", "dep", "version", null );
-
-        depProject.setArtifact( macDepArtifact.artifact );
+        depProject.setArtifact( depArtifactMock.getArtifact() );
 
         macTask.expectBuildFromRepository( depProject );
 
         macTask.expectCSGetRepositories( null, null );
-        macTask.expectResolveDependencies( Collections.singleton( macDepArtifact.artifact ) );
+        macTask.expectResolveDependencies( Collections.singleton( depArtifactMock.getArtifact() ) );
 
         Set projects = Collections.singleton( project );
 
@@ -513,46 +504,38 @@
 
         MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm );
 
-        macTask.expectArtifactGetFile( true );
-        macTask.expectArtifactGetArtifactId( "artifact" );
-        macTask.expectGetFinalName( "final-name" );
-        macTask.expectIsSnapshot( false );
-        macTask.expectGetArtifactHandler();
-        macTask.expectArtifactGetType( "jar" );
-        macTask.expectAddFile( "out/artifact", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        ArtifactMock moduleArtifactMock = new ArtifactMock( mm, "group", "artifact", "0", "jar", false );
+        File moduleArtifactFile = moduleArtifactMock.setNewFile();
+
+        macTask.expectCSGetFinalName( "final-name" );
+
+        int mode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
+
+        macTask.expectAddFile( moduleArtifactFile, "out/artifact", mode );
 
         ModuleBinaries binaries = new ModuleBinaries();
 
         binaries.setUnpack( false );
         binaries.setFileMode( "777" );
         binaries.setOutputDirectory( "out" );
-        binaries.setOutputFileNameMapping( "${artifactId}" );
+        binaries.setOutputFileNameMapping( "${artifact.artifactId}" );
         binaries.setIncludeDependencies( true );
 
         MavenProject project = createProject( "group", "artifact", "version", null );
-        project.setArtifact( macTask.artifact );
-
-        MockAndControlForArtifact macDepArtifact = new MockAndControlForArtifact( mm );
-
-        macDepArtifact.expectGetType( "jar" );
-        macDepArtifact.expectIsSnapshot( false );
-        macDepArtifact.expectGetArtifactHandler();
-        macDepArtifact.expectGetArtifactId( "dep" );
+        project.setArtifact( moduleArtifactMock.getArtifact() );
 
-        File artifactFile = fileManager.createTempFile();
+        ArtifactMock depArtifactMock = new ArtifactMock( mm, "group", "dep", "1", "jar", false );
+        File depArtifactFile = depArtifactMock.setNewFile();
 
-        macDepArtifact.expectGetFile( artifactFile );
-
-        macTask.expectAddFile( artifactFile, "out/dep", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        macTask.expectAddFile( depArtifactFile, "out/dep", mode );
 
         MavenProject depProject = createProject( "group", "dep", "version", null );
-
-        depProject.setArtifact( macDepArtifact.artifact );
+        depProject.setArtifact( depArtifactMock.getArtifact() );
 
         macTask.expectBuildFromRepository( depProject );
 
         macTask.expectCSGetRepositories( null, null );
-        macTask.expectResolveDependencies( Collections.singleton( macDepArtifact.artifact ) );
+        macTask.expectResolveDependencies( Collections.singleton( depArtifactMock.getArtifact() ) );
 
         Set projects = Collections.singleton( project );
 
@@ -608,23 +591,19 @@
         mm.verifyAll();
     }
 
-    public void testAddArtifact_ShouldThrowExceptionWhenArtifactFileIsNull()
+    public void testAddModuleArtifact_ShouldThrowExceptionWhenArtifactFileIsNull()
         throws AssemblyFormattingException, IOException
     {
         MockManager mm = new MockManager();
 
-        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
-
-        macTask.expectArtifactGetFile( false );
-
-        macTask.artifact.getId();
-        macTask.artifactCtl.setReturnValue( "group:artifact:type:version" );
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "type", false );
+        artifactMock.setNullFile();
 
         mm.replayAll();
 
         try
         {
-            createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addArtifact( macTask.artifact, null,
+            createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addModuleArtifact( artifactMock.getArtifact(), null,
                                                                                               null, null, null );
 
             fail( "Expected ArchiveCreationException since artifact file is null." );
@@ -637,22 +616,22 @@
         mm.verifyAll();
     }
 
-    public void testAddArtifact_ShouldAddOneArtifact()
+    public void testAddModuleArtifact_ShouldAddOneArtifact()
         throws AssemblyFormattingException, IOException, ArchiveCreationException
     {
         MockManager mm = new MockManager();
 
         MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
 
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "type", false );
+        File artifactFile = artifactMock.setNewFile();
+
         MavenProject project = createProject( "group", "artifact", "version", null );
-        project.setArtifact( macTask.artifact );
+        project.setArtifact( artifactMock.getArtifact() );
 
-        macTask.expectArtifactGetFile();
         macTask.expectGetFinalName( "final-name" );
-        macTask.expectIsSnapshot( false );
-        macTask.expectGetArtifactHandler();
 
-        macTask.expectAddFile( "out/artifact", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        macTask.expectAddFile( artifactFile, "out/artifact", TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
 
         ModuleBinaries binaries = new ModuleBinaries();
         binaries.setOutputDirectory( "out" );
@@ -662,7 +641,7 @@
 
         mm.replayAll();
 
-        createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addArtifact( macTask.artifact, project,
+        createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addModuleArtifact( artifactMock.getArtifact(), project,
                                                                                           macTask.archiver,
                                                                                           macTask.configSource,
                                                                                           binaries );
@@ -694,12 +673,9 @@
 
         macTask.expectGetProject( project );
 
-        MockAndControlForArtifact macArtifact = new MockAndControlForArtifact( mm );
-
-        macArtifact.expectIsSnapshot( false );
-        macArtifact.expectGetArtifactHandler();
+        ArtifactMock artifactMock = new ArtifactMock( mm, "group", "artifact", "version", "jar", false );
 
-        project.setArtifact( macArtifact.artifact );
+        project.setArtifact( artifactMock.getArtifact() );
 
         Set projects = Collections.singleton( project );
 
@@ -736,7 +712,7 @@
 
         MavenProject project = createProject( "group", "artifact", "version", null );
 
-        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, null, project );
+        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, project );
 
         List projects = Collections.singletonList( project );
 
@@ -761,7 +737,7 @@
 
         MavenProject project = createProject( "group", "artifact", "version", null );
 
-        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, null, project );
+        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, project );
 
         MavenProject project2 = createProject( "group", "artifact2", "version", null );
 
@@ -790,7 +766,7 @@
 
         MavenProject project = createProject( "group", "artifact", "version", null );
 
-        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, null, project );
+        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, project );
 
         MavenProject project2 = createProject( "group", "artifact2", "version", project );
 
@@ -823,7 +799,7 @@
 
         MavenProject project = createProject( "group", "artifact", "version", null );
 
-        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, null, project );
+        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, project );
 
         MavenProject project2 = createProject( "group", "artifact2", "version", project );
         MavenProject project3 = createProject( "group", "artifact3", "version", project2 );
@@ -860,7 +836,7 @@
 
         MavenProject project = createProject( "group", "artifact", "version", null );
 
-        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, null, project );
+        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, project );
 
         List macArtifacts = new ArrayList();
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java?rev=568360&r1=568359&r2=568360&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java Tue Aug 21 18:28:22 2007
@@ -1,15 +1,20 @@
 package org.apache.maven.plugin.assembly.archive.task;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Model;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
+import org.apache.maven.plugin.assembly.archive.task.testutils.ArtifactMock;
 import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddArtifactTask;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
+import org.apache.maven.plugin.assembly.model.DependencySet;
 import org.apache.maven.plugin.assembly.testutils.MockManager;
 import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
 
@@ -23,27 +28,70 @@
 
     private MockAndControlForAddArtifactTask mac;
 
+    private MavenProject mainProject;
+
     public void setUp()
         throws IOException
     {
         mockManager = new MockManager();
 
-        mac = new MockAndControlForAddArtifactTask( mockManager );
-        mac.expectArtifactGetFile();
+        Model model = new Model();
+        model.setGroupId( "group" );
+        model.setArtifactId( "main" );
+        model.setVersion( "1000" );
+
+        mainProject = new MavenProject( model );
+
+        mac = new MockAndControlForAddArtifactTask( mockManager, mainProject );
         mac.expectGetFinalName( "final-name" );
     }
 
     public void testShouldAddArchiveFileWithoutUnpacking()
-        throws ArchiveCreationException, AssemblyFormattingException
+        throws ArchiveCreationException, AssemblyFormattingException, IOException
     {
         String outputLocation = "artifact";
 
-        mac.expectAddFile( outputLocation );
-        mac.expectIsSnapshot( false );
-        mac.expectGetArtifactHandler();
+        ArtifactMock artifactMock = new ArtifactMock( mockManager, "group", "artifact", "version", "jar", false );
+        File artifactFile = artifactMock.setNewFile();
+
+        mac.expectAddFile( artifactFile, outputLocation );
+
         mockManager.replayAll();
 
-        AddArtifactTask task = createTask( mac.artifact );
+        AddArtifactTask task = createTask( artifactMock.getArtifact() );
+
+        task.execute( mac.archiver, mac.configSource );
+
+        mockManager.verifyAll();
+    }
+
+    public void testShouldAddArchiveFileWithDefaultOutputLocation()
+        throws ArchiveCreationException, AssemblyFormattingException, IOException
+    {
+        String artifactId = "myArtifact";
+        String version = "1";
+        String ext = "jar";
+        String outputDir = "tmp/";
+
+        ArtifactMock mock = new ArtifactMock( mockManager, "group", artifactId, version, ext, false );
+
+        File file = mock.setNewFile();
+        mock.setExtension( ext );
+
+        mac.expectAddFile( file, outputDir + artifactId + "-" + version + "." + ext );
+
+        mockManager.replayAll();
+
+        AddArtifactTask task = new AddArtifactTask( mock.getArtifact(), new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
+        task.setOutputDirectory( outputDir );
+        task.setFileNameMapping( new DependencySet().getOutputFileNameMapping() );
+
+        Model model = new Model();
+        model.setArtifactId( artifactId );
+        model.setVersion( version );
+
+        MavenProject project = new MavenProject( model );
+        task.setProject( project );
 
         task.execute( mac.archiver, mac.configSource );
 
@@ -60,16 +108,18 @@
     }
 
     public void testShouldAddArchiveFileWithUnpack()
-        throws ArchiveCreationException, AssemblyFormattingException
+        throws ArchiveCreationException, AssemblyFormattingException, IOException
     {
         mac.expectModeChange( -1, -1, -1, -1, 1 );
-//        mac.expectIsSnapshot( false );
+
+        ArtifactMock artifactMock = new ArtifactMock( mockManager, "group", "artifact", "version", "jar", false );
+        File artifactFile = artifactMock.setNewFile();
 
         String outputLocation = "";
 
         try
         {
-            mac.archiver.addArchivedFileSet( mac.artifactFile, outputLocation, null, null );
+            mac.archiver.addArchivedFileSet( artifactFile, outputLocation, null, null );
         }
         catch ( ArchiverException e )
         {
@@ -78,7 +128,7 @@
 
         mockManager.replayAll();
 
-        AddArtifactTask task = createTask( mac.artifact );
+        AddArtifactTask task = createTask( artifactMock.getArtifact() );
 
         task.setUnpack( true );
 
@@ -88,7 +138,7 @@
     }
 
     public void testShouldAddArchiveFileWithUnpackAndModes()
-        throws ArchiveCreationException, AssemblyFormattingException
+        throws ArchiveCreationException, AssemblyFormattingException, IOException
     {
         int directoryMode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
         int fileMode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
@@ -98,9 +148,12 @@
 
         String outputLocation = "";
 
+        ArtifactMock artifactMock = new ArtifactMock( mockManager, "group", "artifact", "version", "jar", false );
+        File artifactFile = artifactMock.setNewFile();
+
         try
         {
-            mac.archiver.addArchivedFileSet( mac.artifactFile, outputLocation, null, null );
+            mac.archiver.addArchivedFileSet( artifactFile, outputLocation, null, null );
         }
         catch ( ArchiverException e )
         {
@@ -109,7 +162,7 @@
 
         mockManager.replayAll();
 
-        AddArtifactTask task = createTask( mac.artifact );
+        AddArtifactTask task = createTask( artifactMock.getArtifact() );
 
         task.setUnpack( true );
         task.setDirectoryMode( "777" );
@@ -121,7 +174,7 @@
     }
 
     public void testShouldAddArchiveFileWithUnpackIncludesAndExcludes()
-        throws ArchiveCreationException, AssemblyFormattingException
+        throws ArchiveCreationException, AssemblyFormattingException, IOException
     {
         mac.expectModeChange( -1, -1, -1, -1, 1 );
 
@@ -130,11 +183,14 @@
         String[] includes = { "**/*.txt" };
         String[] excludes = { "**/README.txt" };
 
-        mac.expectAddArchivedFileSet( outputLocation, includes, excludes );
+        ArtifactMock artifactMock = new ArtifactMock( mockManager, "group", "artifact", "version", "jar", false );
+        File artifactFile = artifactMock.setNewFile();
+
+        mac.expectAddArchivedFileSet( artifactFile, outputLocation, includes, excludes );
 
         mockManager.replayAll();
 
-        AddArtifactTask task = createTask( mac.artifact );
+        AddArtifactTask task = createTask( artifactMock.getArtifact() );
 
         task.setUnpack( true );
         task.setIncludes( Arrays.asList( includes ) );

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java?rev=568360&r1=568359&r2=568360&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java Tue Aug 21 18:28:22 2007
@@ -4,6 +4,7 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
+import org.apache.maven.plugin.assembly.archive.task.testutils.ArtifactMock;
 import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddDependencySetsTask;
 import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForArtifact;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
@@ -13,6 +14,7 @@
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.HashSet;
@@ -26,6 +28,70 @@
 
     private MockManager mockManager = new MockManager();
 
+    public void testAddDependencySet_ShouldInterpolateDefaultOutputFileNameMapping()
+        throws AssemblyFormattingException, ArchiveCreationException, InvalidAssemblerConfigurationException, IOException
+    {
+        String outDir = "tmp/";
+        String mainAid = "main";
+        String mainGid = "org.maingrp";
+        String mainVer = "9";
+        String depAid = "dep";
+        String depGid = "org.depgrp";
+        String depVer = "1";
+        String depExt = "war";
+
+        DependencySet ds = new DependencySet();
+        ds.setOutputDirectory( outDir );
+        ds.setDirectoryMode( Integer.toString( 10, 8 ) );
+        ds.setFileMode( Integer.toString( 10, 8 ) );
+
+        Model mainModel = new Model();
+        mainModel.setArtifactId( mainAid );
+        mainModel.setGroupId( mainGid );
+        mainModel.setVersion( mainVer );
+
+        MavenProject mainProject = new MavenProject( mainModel );
+
+        ArtifactMock mainArtifactMock = new ArtifactMock( mockManager, mainGid, mainAid, mainVer, "jar", false );
+
+        mainProject.setArtifact( mainArtifactMock.getArtifact() );
+
+        Model depModel = new Model();
+        depModel.setArtifactId( depAid );
+        depModel.setGroupId( depGid );
+        depModel.setVersion( depVer );
+        depModel.setPackaging( depExt );
+
+        MavenProject depProject = new MavenProject( depModel );
+
+        ArtifactMock depArtifactMock = new ArtifactMock( mockManager, depGid, depAid, depVer, depExt, false );
+
+        File newFile = depArtifactMock.setNewFile();
+
+        depProject.setArtifact( depArtifactMock.getArtifact() );
+
+        MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mockManager, mainProject );
+
+        macTask.expectBuildFromRepository( depProject );
+        macTask.expectCSGetFinalName( mainAid + "-" + mainVer );
+
+        macTask.expectCSGetRepositories( null, null );
+        macTask.expectResolveDependencies( Collections.singleton( depArtifactMock.getArtifact() ) );
+
+        macTask.expectAddFile( newFile, outDir + depAid + "-" + depVer + "." + depExt, 10 );
+
+        mockManager.replayAll();
+
+        Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
+
+        AddDependencySetsTask task = new AddDependencySetsTask( Collections.singletonList( ds ), depProject, macTask.projectBuilder,
+                                                                macTask.dependencyResolver, logger );
+
+        task.addDependencySet( ds, macTask.archiver, macTask.configSource );
+
+        mockManager.verifyAll();
+    }
+
     public void testAddDependencySet_ShouldNotAddDependenciesWhenProjectHasNone()
         throws AssemblyFormattingException, ArchiveCreationException, InvalidAssemblerConfigurationException
     {
@@ -79,22 +145,20 @@
 
         MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mockManager );
 
-        macTask.expectArtifactGetFile();
-        macTask.expectArtifactGetType( "jar" );
+        ArtifactMock artifactMock = new ArtifactMock( mockManager, "group", "artifact", "version", "jar", false );
+        File artifactFile = artifactMock.setNewFile();
 
         macTask.expectCSGetRepositories( null, null );
-        macTask.expectResolveDependencies( Collections.singleton( macTask.artifact ) );
+        macTask.expectResolveDependencies( Collections.singleton( artifactMock.getArtifact() ) );
 
         if ( unpack )
         {
-            macTask.expectAddArchivedFileSet( outputLocation + "/", null, null );
+            macTask.expectAddArchivedFileSet( artifactFile, outputLocation + "/", null, null );
             macTask.expectModeChange( -1, -1, 10, 10, 2 );
         }
         else
         {
-            macTask.expectAddFile( outputLocation + "/artifact", 10 );
-            macTask.expectIsSnapshot( false );
-            macTask.expectGetArtifactHandler();
+            macTask.expectAddFile( artifactFile, outputLocation + "/artifact", 10 );
         }
 
         macTask.expectCSGetFinalName( "final-name" );
@@ -122,10 +186,12 @@
 
         MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mockManager );
 
+        ArtifactMock artifactMock = new ArtifactMock( mockManager, "group", "artifact", "version", "jar", false );
+
         macTask.expectCSGetRepositories( null, null );
-        macTask.expectResolveDependencies( Collections.singleton( macTask.artifact ) );
+        macTask.expectResolveDependencies( Collections.singleton( artifactMock.getArtifact() ) );
 
-        project.setArtifacts( Collections.singleton( macTask.artifact ) );
+        project.setArtifacts( Collections.singleton( artifactMock.getArtifact() ) );
 
         DependencySet dependencySet = new DependencySet();
 
@@ -140,7 +206,7 @@
 
         assertNotNull( result );
         assertEquals( 1, result.size() );
-        assertSame( macTask.artifact, result.iterator().next() );
+        assertSame( artifactMock.getArtifact(), result.iterator().next() );
 
         mockManager.verifyAll();
     }

Added: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/ArtifactMock.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/ArtifactMock.java?rev=568360&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/ArtifactMock.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/ArtifactMock.java Tue Aug 21 18:28:22 2007
@@ -0,0 +1,273 @@
+package org.apache.maven.plugin.assembly.archive.task.testutils;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.plugin.assembly.testutils.MockManager;
+import org.easymock.MockControl;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+public class ArtifactMock
+{
+
+    private final MockControl artifactCtl;
+    private final Artifact artifact;
+
+    private final MockControl handlerCtl;
+    private final ArtifactHandler handler;
+    private String groupId;
+    private String artifactId;
+    private String baseVersion;
+    private File file;
+    private String scope;
+    private Boolean isSnapshot;
+    private String version;
+    private List dependencyTrail;
+    private String id;
+    private String dependencyConflictId;
+    private String typeAndExt;
+    private String classifier;
+
+    public ArtifactMock( MockManager mockManager, String groupId, String artifactId, String version, String type, boolean isSnapshot )
+    {
+        this( mockManager, groupId, artifactId, version, type, null, isSnapshot, null );
+    }
+
+    public ArtifactMock( MockManager mockManager, String groupId, String artifactId, String version, String type, boolean isSnapshot, String baseVersion )
+    {
+        this( mockManager, groupId, artifactId, version, type, null, isSnapshot, baseVersion );
+    }
+
+    public ArtifactMock( MockManager mockManager, String groupId, String artifactId, String version, String type, String classifier, boolean isSnapshot )
+    {
+        this( mockManager, groupId, artifactId, version, type, classifier, isSnapshot, null );
+    }
+
+    public ArtifactMock( MockManager mockManager, String groupId, String artifactId, String version, String type, String classifier, boolean isSnapshot, String baseVersion )
+    {
+        artifactCtl = MockControl.createControl( Artifact.class );
+
+        mockManager.add( artifactCtl );
+
+        artifact = (Artifact) artifactCtl.getMock();
+
+        handlerCtl = MockControl.createControl( ArtifactHandler.class );
+
+        mockManager.add( handlerCtl );
+
+        handler = (ArtifactHandler) handlerCtl.getMock();
+
+        artifact.getArtifactHandler();
+        artifactCtl.setReturnValue( handler, MockControl.ZERO_OR_MORE );
+
+        this.classifier = classifier;
+        artifact.getClassifier();
+        artifactCtl.setReturnValue( classifier, MockControl.ZERO_OR_MORE );
+
+        setSnapshot( isSnapshot );
+        setGroupId( groupId );
+        setArtifactId( artifactId );
+        setVersion( version );
+        setBaseVersion( baseVersion );
+        setType( type );
+
+        setId();
+        setDependencyConflictId();
+    }
+
+    public void setExtension( String extension )
+    {
+        setTypeAndExt( extension );
+    }
+
+    public MockControl getArtifactCtl()
+    {
+        return artifactCtl;
+    }
+
+    public Artifact getArtifact()
+    {
+        return artifact;
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+        if ( ( artifactId != null ) && ( this.artifactId == null ) )
+        {
+            artifact.getArtifactId();
+            artifactCtl.setReturnValue( artifactId, MockControl.ZERO_OR_MORE );
+
+            this.artifactId = artifactId;
+        }
+    }
+
+    public void setBaseVersion( String baseVersion )
+    {
+        if ( ( baseVersion != null ) && ( this.baseVersion == null ) )
+        {
+            artifact.getBaseVersion();
+            artifactCtl.setReturnValue( baseVersion, MockControl.ZERO_OR_MORE );
+
+            this.baseVersion = baseVersion;
+        }
+    }
+
+    public void setFile( File destination )
+    {
+        if ( ( file != null ) && ( file == null ) )
+        {
+            artifact.getFile();
+            artifactCtl.setReturnValue( destination, MockControl.ZERO_OR_MORE );
+
+            file = destination;
+        }
+    }
+
+    public void setGroupId( String groupId )
+    {
+        if ( ( groupId != null ) && ( this.groupId == null ) )
+        {
+            artifact.getGroupId();
+            artifactCtl.setReturnValue( groupId, MockControl.ZERO_OR_MORE );
+
+            this.groupId = groupId;
+        }
+    }
+
+    public void setScope( String scope )
+    {
+        if ( ( scope != null ) && ( this.scope == null ) )
+        {
+            artifact.getScope();
+            artifactCtl.setReturnValue( scope, MockControl.ZERO_OR_MORE );
+
+            this.scope = scope;
+        }
+    }
+
+    public void setVersion( String version )
+    {
+        if ( ( version != null ) && ( this.version == null ) )
+        {
+            artifact.getVersion();
+            artifactCtl.setReturnValue( version, MockControl.ZERO_OR_MORE );
+
+            this.version = version;
+
+            if ( isSnapshot != Boolean.TRUE )
+            {
+                setBaseVersion( version );
+                setSnapshot( false );
+            }
+        }
+    }
+
+    public void setDependencyTrail( List dependencyTrail )
+    {
+        if ( ( dependencyTrail != null ) && ( this.dependencyTrail == null ) )
+        {
+            artifact.getDependencyTrail();
+            artifactCtl.setReturnValue( dependencyTrail, MockControl.ZERO_OR_MORE );
+
+            this.dependencyTrail = dependencyTrail;
+        }
+    }
+
+    public void setId( String id )
+    {
+        if ( ( id != null ) && ( this.id == null ) )
+        {
+            artifact.getId();
+            artifactCtl.setReturnValue( id, MockControl.ZERO_OR_MORE );
+
+            this.id = id;
+        }
+    }
+
+    public void setDependencyConflictId( String id )
+    {
+        if ( ( id != null ) && ( dependencyConflictId == null ) )
+        {
+            artifact.getDependencyConflictId();
+            artifactCtl.setReturnValue( id, MockControl.ZERO_OR_MORE );
+
+            dependencyConflictId = id;
+        }
+    }
+
+    public void setSnapshot( boolean snapshot )
+    {
+        if ( isSnapshot == null )
+        {
+            artifact.isSnapshot();
+            artifactCtl.setReturnValue( snapshot, MockControl.ZERO_OR_MORE );
+
+            isSnapshot = Boolean.valueOf( snapshot );
+        }
+    }
+
+    public File setNewFile()
+        throws IOException
+    {
+        if ( file == null )
+        {
+            File newFile = File.createTempFile( "ArtifactMock.test.", "" );
+            newFile.deleteOnExit();
+
+            artifact.getFile();
+            artifactCtl.setReturnValue(  newFile, MockControl.ZERO_OR_MORE );
+
+            file = newFile;
+        }
+
+        return file;
+    }
+
+    public void setType( String type )
+    {
+        setTypeAndExt( type );
+    }
+
+    private void setTypeAndExt( String type )
+    {
+        if ( ( type != null ) && ( typeAndExt == null ) )
+        {
+            artifact.getType();
+            artifactCtl.setReturnValue( type, MockControl.ZERO_OR_MORE );
+
+            handler.getExtension();
+            handlerCtl.setReturnValue( type, MockControl.ZERO_OR_MORE );
+
+            typeAndExt = type;
+        }
+    }
+
+    private void setDependencyConflictId()
+    {
+        if ( ( groupId != null ) && ( artifactId != null ) && ( typeAndExt != null ) )
+        {
+            String id = groupId + ":" + artifactId + ":" + typeAndExt + ( classifier == null ? "" : ":" + classifier );
+            setDependencyConflictId( id );
+        }
+    }
+
+    private void setId()
+    {
+        if ( ( groupId != null ) && ( artifactId != null ) && ( typeAndExt != null ) && ( version != null ) )
+        {
+            String id = groupId + ":" + artifactId + ":" + version + ":" + typeAndExt + ( classifier == null ? "" : ":" + classifier );
+            setId( id );
+        }
+    }
+
+    public void setNullFile()
+    {
+        artifact.getFile();
+        artifactCtl.setReturnValue( null, MockControl.ZERO_OR_MORE );
+
+        file = new File( "set-to-null" );
+    }
+
+}

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/ArtifactMock.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/ArtifactMock.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java?rev=568360&r1=568359&r2=568360&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java Tue Aug 21 18:28:22 2007
@@ -1,7 +1,5 @@
 package org.apache.maven.plugin.assembly.archive.task.testutils;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugin.assembly.testutils.MockManager;
 import org.apache.maven.project.MavenProject;
@@ -10,7 +8,6 @@
 import org.easymock.MockControl;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.List;
 
 import junit.framework.Assert;
@@ -18,12 +15,6 @@
 public class MockAndControlForAddArtifactTask
 {
 
-    public MockControl artifactCtl;
-
-    public Artifact artifact;
-
-    public File artifactFile;
-
     public Archiver archiver;
 
     public MockControl archiverCtl;
@@ -32,34 +23,17 @@
 
     public MockControl configSourceCtl;
 
-    public ArtifactHandler artifactHandler;
-
-    public MockControl artifactHandlerCtl;
-
-    private final String classifier;
-
     private MavenProject project = null;
 
     public MockAndControlForAddArtifactTask( MockManager mockManager )
     {
-        this( mockManager, null, null );
+        this( mockManager, null );
     }
 
-    public MockAndControlForAddArtifactTask( MockManager mockManager, String classifier, MavenProject project )
+    public MockAndControlForAddArtifactTask( MockManager mockManager, MavenProject project )
     {
-        this.classifier = classifier;
         this.project = project;
 
-        artifactCtl = MockControl.createControl( Artifact.class );
-        mockManager.add( artifactCtl );
-
-        artifact = ( Artifact ) artifactCtl.getMock();
-
-        artifactHandlerCtl = MockControl.createControl( ArtifactHandler.class );
-        mockManager.add( artifactHandlerCtl );
-
-        artifactHandler = (ArtifactHandler) artifactHandlerCtl.getMock();
-
         archiverCtl = MockControl.createControl( Archiver.class );
         mockManager.add( archiverCtl );
 
@@ -75,44 +49,17 @@
 
     private void enableDefaultExpectations()
     {
-        artifact.getClassifier();
-        artifactCtl.setReturnValue( classifier, MockControl.ZERO_OR_MORE );
-
         configSource.getProject();
         configSourceCtl.setReturnValue( project, MockControl.ZERO_OR_MORE );
     }
 
-    public void expectGetArtifactHandler()
-    {
-        artifact.getArtifactHandler();
-        artifactCtl.setReturnValue( artifactHandler, MockControl.ONE_OR_MORE );
-    }
-
     public void expectGetFinalName( String finalName )
     {
         configSource.getFinalName();
         configSourceCtl.setReturnValue( finalName, MockControl.ONE_OR_MORE );
     }
 
-    public void expectArtifactGetFile() throws IOException
-    {
-        expectArtifactGetFile( true );
-    }
-
-    public void expectArtifactGetFile( boolean createTempFile ) throws IOException
-    {
-        if ( createTempFile )
-        {
-            artifactFile = File.createTempFile( "add-artifact-task.test.", ".jar" );
-            artifactFile.deleteOnExit();
-        }
-
-        artifact.getFile();
-
-        artifactCtl.setReturnValue( artifactFile, MockControl.ZERO_OR_MORE );
-    }
-
-    public void expectAddArchivedFileSet( String outputLocation, String[] includes, String[] excludes )
+    public void expectAddArchivedFileSet( File artifactFile, String outputLocation, String[] includes, String[] excludes )
     {
         try
         {
@@ -154,25 +101,11 @@
         archiver.setDefaultFileMode( originalFileMode );
     }
 
-    public void expectAddFile( String outputLocation )
-    {
-        try
-        {
-            archiver.addFile( artifactFile, outputLocation );
-            archiverCtl.setMatcher( MockControl.ALWAYS_MATCHER );
-            archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
-        }
-        catch ( ArchiverException e )
-        {
-            Assert.fail( "Should never happen." );
-        }
-    }
-
-    public void expectAddFile( String outputLocation, int fileMode )
+    public void expectAddFile( File file, String outputLocation, int fileMode )
     {
         try
         {
-            archiver.addFile( artifactFile, outputLocation, fileMode );
+            archiver.addFile( file, outputLocation, fileMode );
             archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
         }
         catch ( ArchiverException e )
@@ -181,11 +114,11 @@
         }
     }
 
-    public void expectAddFile( File file, String outputLocation, int fileMode )
+    public void expectAddFile( File file, String outputLocation )
     {
         try
         {
-            archiver.addFile( file, outputLocation, fileMode );
+            archiver.addFile( file, outputLocation );
             archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
         }
         catch ( ArchiverException e )
@@ -194,40 +127,9 @@
         }
     }
 
-    public void expectArtifactGetScope( String scope )
-    {
-        artifact.getScope();
-        artifactCtl.setReturnValue( scope, MockControl.ONE_OR_MORE );
-    }
-
     public void expectGetReactorProjects( List projects )
     {
         configSource.getReactorProjects();
         configSourceCtl.setReturnValue( projects, MockControl.ONE_OR_MORE );
     }
-
-    public void expectArtifactGetDependencyConflictId( String dependencyConflictId )
-    {
-        artifact.getDependencyConflictId();
-        artifactCtl.setReturnValue( dependencyConflictId, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectIsSnapshot( boolean isSnapshot )
-    {
-        artifact.isSnapshot();
-        artifactCtl.setReturnValue( isSnapshot, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectArtifactGetType( String type )
-    {
-        artifact.getType();
-        artifactCtl.setReturnValue( type, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectArtifactGetArtifactId( String artifactId )
-    {
-        artifact.getArtifactId();
-        artifactCtl.setReturnValue( artifactId, MockControl.ONE_OR_MORE );
-    }
-
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java?rev=568360&r1=568359&r2=568360&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java Tue Aug 21 18:28:22 2007
@@ -1,7 +1,5 @@
 package org.apache.maven.plugin.assembly.archive.task.testutils;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
@@ -17,7 +15,6 @@
 import org.easymock.MockControl;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.List;
 import java.util.Set;
 
@@ -26,12 +23,6 @@
 public class MockAndControlForAddDependencySetsTask
 {
 
-    public MockControl artifactCtl;
-
-    public Artifact artifact;
-
-    public File artifactFile;
-
     public Archiver archiver;
 
     public MockControl archiverCtl;
@@ -40,10 +31,6 @@
 
     public MockControl configSourceCtl;
 
-    public ArtifactHandler artifactHandler;
-
-    public MockControl artifactHandlerCtl;
-
     public DependencyResolver dependencyResolver;
 
     public MockControl dependencyResolverCtl;
@@ -52,27 +39,16 @@
 
     public MockControl projectBuilderCtl;
 
-    private String classifier;
-
     private MavenProject project;
 
     public MockAndControlForAddDependencySetsTask( MockManager mockManager )
     {
-        this( mockManager, null, null );
+        this( mockManager, null );
     }
 
-    public MockAndControlForAddDependencySetsTask( MockManager mockManager, String classifier, MavenProject project )
+    public MockAndControlForAddDependencySetsTask( MockManager mockManager, MavenProject project )
     {
         this.project = project;
-        artifactCtl = MockControl.createControl( Artifact.class );
-        mockManager.add( artifactCtl );
-
-        artifact = ( Artifact ) artifactCtl.getMock();
-
-        artifactHandlerCtl = MockControl.createControl( ArtifactHandler.class );
-        mockManager.add( artifactHandlerCtl );
-
-        artifactHandler = (ArtifactHandler) artifactHandlerCtl.getMock();
 
         archiverCtl = MockControl.createControl( Archiver.class );
         mockManager.add( archiverCtl );
@@ -94,60 +70,20 @@
 
         projectBuilder = ( MavenProjectBuilder ) projectBuilderCtl.getMock();
 
-        this.classifier = classifier;
-
         enableDefaultExpectations();
     }
 
     private void enableDefaultExpectations()
     {
-        artifact.getClassifier();
-        artifactCtl.setReturnValue( classifier, MockControl.ZERO_OR_MORE );
-
         configSource.getProject();
         configSourceCtl.setReturnValue( project, MockControl.ZERO_OR_MORE );
     }
 
-    public void expectGetArtifactHandler()
-    {
-        artifact.getArtifactHandler();
-        artifactCtl.setReturnValue( artifactHandler, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectGetClassifier( String classifier )
-    {
-        artifact.getClassifier();
-        artifactCtl.setReturnValue( classifier, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectGetFinalName( String finalName )
-    {
-        configSource.getFinalName();
-        configSourceCtl.setReturnValue( finalName, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectArtifactGetFile() throws IOException
-    {
-        expectArtifactGetFile( true );
-    }
-
-    public void expectArtifactGetFile( boolean createTempFile ) throws IOException
-    {
-        if ( createTempFile )
-        {
-            artifactFile = File.createTempFile( "add-artifact-task.test.", ".jar" );
-        }
-
-        artifact.getFile();
-
-        artifactCtl.setReturnValue( artifactFile, MockControl.ZERO_OR_MORE );
-    }
-
-    public void expectAddArchivedFileSet( String outputLocation, String[] includes, String[] excludes )
+    public void expectAddArchivedFileSet( File file, String outputLocation, String[] includes, String[] excludes )
     {
         try
         {
-            archiver.addArchivedFileSet( artifactFile, outputLocation, includes, excludes );
+            archiver.addArchivedFileSet( file, outputLocation, includes, excludes );
 
             if ( ( includes != null ) || ( excludes != null ) )
             {
@@ -185,26 +121,11 @@
         archiver.setDefaultFileMode( originalFileMode );
     }
 
-    public void expectAddFile( String outputLocation )
+    public void expectAddFile( File file, String outputLocation )
     {
         try
         {
-            archiver.addFile( artifactFile, outputLocation );
-            archiverCtl.setMatcher( MockControl.ALWAYS_MATCHER );
-            archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
-        }
-        catch ( ArchiverException e )
-        {
-            Assert.fail( "Should never happen." );
-        }
-    }
-
-    public void expectAddFile( String outputLocation, int fileMode )
-    {
-        try
-        {
-            archiver.addFile( artifactFile, outputLocation, fileMode );
-            archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
+            archiver.addFile( file, outputLocation );
         }
         catch ( ArchiverException e )
         {
@@ -217,7 +138,6 @@
         try
         {
             archiver.addFile( file, outputLocation, fileMode );
-            archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
         }
         catch ( ArchiverException e )
         {
@@ -225,40 +145,10 @@
         }
     }
 
-    public void expectArtifactGetScope( String scope )
-    {
-        artifact.getScope();
-        artifactCtl.setReturnValue( scope, MockControl.ONE_OR_MORE );
-    }
-
     public void expectGetReactorProjects( List projects )
     {
         configSource.getReactorProjects();
         configSourceCtl.setReturnValue( projects, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectArtifactGetDependencyConflictId( String dependencyConflictId )
-    {
-        artifact.getDependencyConflictId();
-        artifactCtl.setReturnValue( dependencyConflictId, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectIsSnapshot( boolean isSnapshot )
-    {
-        artifact.isSnapshot();
-        artifactCtl.setReturnValue( isSnapshot, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectArtifactGetType( String type )
-    {
-        artifact.getType();
-        artifactCtl.setReturnValue( type, MockControl.ONE_OR_MORE );
-    }
-
-    public void expectArtifactGetArtifactId( String artifactId )
-    {
-        artifact.getArtifactId();
-        artifactCtl.setReturnValue( artifactId, MockControl.ONE_OR_MORE );
     }
 
     public void expectCSGetFinalName( String finalName )

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolatorTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolatorTest.java?rev=568360&r1=568359&r2=568360&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolatorTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolatorTest.java Tue Aug 21 18:28:22 2007
@@ -3,7 +3,6 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.plugin.assembly.model.DependencySet;
-import org.apache.maven.plugin.assembly.utils.CommandLineUtils;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
@@ -29,7 +28,7 @@
         interpolator.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
     }
 
-    public void testBlacklistedExpressionsInDependencyOutputFileNameMappingsAreNotInterpolated()
+    public void testDependencySetOutputFileNameMappingsAreNotInterpolated()
         throws IOException, AssemblyInterpolationException
     {
         Model model = new Model();
@@ -37,7 +36,7 @@
         model.setGroupId( "group.id" );
         model.setVersion( "1" );
         model.setPackaging( "jar" );
-        
+
         MavenProject project = new MavenProject( model );
 
         Assembly assembly = new Assembly();
@@ -57,10 +56,10 @@
 
         DependencySet outputSet = (DependencySet) outputDependencySets.get( 0 );
 
-        assertEquals( "${artifactId}.jar", outputSet.getOutputFileNameMapping() );
+        assertEquals( "${artifactId}.${packaging}", outputSet.getOutputFileNameMapping() );
     }
 
-    public void testBlacklistedExpressionsInDependencySetOutputDirectoryIsNotInterpolated()
+    public void testDependencySetOutputDirectoryIsNotInterpolated()
         throws IOException, AssemblyInterpolationException
     {
         Model model = new Model();
@@ -85,7 +84,7 @@
 
         DependencySet outputSet = (DependencySet) outputDependencySets.get( 0 );
 
-        assertEquals( "${artifactId}.jar", outputSet.getOutputDirectory() );
+        assertEquals( "${artifactId}.${packaging}", outputSet.getOutputDirectory() );
     }
 
     public void testShouldResolveModelGroupIdInAssemblyId()
@@ -151,50 +150,6 @@
             "still.another.id" ) );
 
         assertEquals( "assembly.still.another.id", result.getId() );
-    }
-
-    public void testShouldResolveEnvarHOMEValueInDependencySetOutputDirectory()
-        throws IOException, AssemblyInterpolationException
-    {
-        Model model = new Model();
-        model.setArtifactId( "artifact-id" );
-        model.setGroupId( "group.id" );
-        model.setVersion( "1" );
-        model.setPackaging( "jar" );
-
-        Assembly assembly = new Assembly();
-
-        Properties envars = CommandLineUtils.getSystemEnvVars( false );
-
-        String homeValue = envars.getProperty( "PATH" );
-
-        String outputDirectory = "${env.PATH}";
-
-        DependencySet set = new DependencySet();
-        set.setOutputDirectory( outputDirectory );
-
-        assembly.addDependencySet( set );
-
-        Assembly outputAssembly = interpolator.interpolate( assembly, new MavenProject( model ), Collections.EMPTY_MAP );
-
-        List outputDependencySets = outputAssembly.getDependencySets();
-        assertEquals( 1, outputDependencySets.size() );
-
-        DependencySet outputSet = (DependencySet) outputDependencySets.get( 0 );
-
-        // an environment variable named "PATH" may not exist on all systems.
-        // On Windows environment variables are not case sensitive and "PATH" can be named "Path"
-        // without this check the test will fail in such situation, but it's not a problem of the assembly plugin:
-        // make the test exit with success also if the interpolation of environment properties is not really tested,
-        // the plugin is anyway behaving as expected
-        if ( homeValue != null )
-        {
-            assertEquals( homeValue, outputSet.getOutputDirectory() );
-        }
-        else
-        {
-            assertEquals( "${env.PATH}", outputSet.getOutputDirectory() );
-        }
     }
 
     public void testShouldNotTouchUnresolvedExpression()

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java?rev=568360&r1=568359&r2=568360&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java Tue Aug 21 18:28:22 2007
@@ -1,10 +1,9 @@
 package org.apache.maven.plugin.assembly.utils;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.archive.task.testutils.ArtifactMock;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.plugin.assembly.testutils.MockManager;
@@ -31,90 +30,219 @@
     }
 
     public void testGetOutputDir_ShouldResolveGroupIdInOutDir_UseArtifactInfo()
+        throws AssemblyFormattingException
     {
         verifyOutputDir( "${artifact.groupId}", null, "group", null, null, null, "group/", false );
     }
 
     public void testGetOutputDir_ShouldResolveArtifactIdInOutDir_UseArtifactInfo()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${artifact.artifactId}", null, null, "artifact", null, null, "artifact/", false );
     }
 
     public void testGetOutputDir_ShouldResolveVersionInOutDir_UseArtifactInfo()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${artifact.version}", null, null, null, "version", null, "version/", false );
     }
 
     public void testGetOutputDir_ShouldResolveBuildFinalNameInOutDir_UseArtifactInfo()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${artifact.build.finalName}", null, null, null, null, "finalName", "finalName/", false );
     }
 
+    public void testGetOutputDir_ShouldResolveGroupIdInOutDir_UseArtifactInfoAndModulePrefix()
+    throws AssemblyFormattingException
+    {
+        verifyOutputDir( "${module.groupId}", null, "group", null, null, null, "group/", "module.", false );
+    }
+
+    public void testGetOutputDir_ShouldResolveArtifactIdInOutDir_UseArtifactInfoAndModulePrefix()
+    throws AssemblyFormattingException
+    {
+        verifyOutputDir( "${module.artifactId}", null, null, "artifact", null, null, "artifact/", "module.", false );
+    }
+
+    public void testGetOutputDir_ShouldResolveVersionInOutDir_UseArtifactInfoAndModulePrefix()
+    throws AssemblyFormattingException
+    {
+        verifyOutputDir( "${module.version}", null, null, null, "version", null, "version/", "module.", false );
+    }
+
+    public void testGetOutputDir_ShouldResolveBuildFinalNameInOutDir_UseArtifactInfoAndModulePrefix()
+    throws AssemblyFormattingException
+    {
+        verifyOutputDir( "${module.build.finalName}", null, null, null, null, "finalName", "finalName/", "module.", false );
+    }
+
     public void testGetOutputDir_ShouldResolveGroupIdInOutDir_UseExplicitMainProject()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${pom.groupId}", null, "group", null, null, null, "group/", true );
     }
 
     public void testGetOutputDir_ShouldResolveArtifactIdInOutDir_UseExplicitMainProject()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${pom.artifactId}", null, null, "artifact", null, null, "artifact/", true );
     }
 
     public void testGetOutputDir_ShouldResolveVersionInOutDir_UseExplicitMainProject()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${pom.version}", null, null, null, "version", null, "version/", true );
     }
 
     public void testGetOutputDir_ShouldResolveBuildFinalNameInOutDir_UseExplicitMainProject()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${pom.build.finalName}", null, null, null, null, "finalName", "finalName/", true );
     }
 
     public void testGetOutputDir_ShouldNotAlterOutDirWhenIncludeBaseFalseAndNoExpressions()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "dir/", "finalName", null, null, null, "dir/" );
     }
 
     public void testGetOutputDir_ShouldNotAlterOutDirWhenIncludeBaseFalseAndNoExpressions_CheckWithBackslash()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "dir\\", "finalName", null, null, null, "dir\\" );
     }
 
     public void testGetOutputDir_ShouldAppendSlashToOutDirWhenMissingAndIncludeBaseFalseAndNoExpressions()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "dir", "finalName", null, null, null, "dir/" );
     }
 
     public void testGetOutputDir_ShouldResolveGroupIdInOutDir()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${groupId}", "finalName", "group", null, null, "group/" );
     }
 
     public void testGetOutputDir_ShouldResolveArtifactIdInOutDir()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${artifactId}", "finalName", null, "artifact", null, "artifact/" );
     }
 
     public void testGetOutputDir_ShouldResolveVersionInOutDir()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${version}", "finalName", null, null, "version", "version/" );
     }
 
     public void testGetOutputDir_ShouldResolveFinalNameInOutDir()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${finalName}", "finalName", null, null, null, "finalName/" );
     }
 
     public void testGetOutputDir_ShouldResolveBuildFinalNameInOutDir()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( "${build.finalName}", "finalName", null, null, null, "finalName/" );
     }
 
     public void testGetOutputDir_ShouldReturnEmptyPathWhenAllInputIsEmptyAndIncludeBaseFalse()
+    throws AssemblyFormattingException
     {
         verifyOutputDir( null, null, null, null, null, "" );
     }
 
+    public void testEvalFileNameMapping_ShouldResolveArtifactIdAndBaseVersionInOutDir_UseArtifactInfo_WithValidMainProject()
+    throws AssemblyFormattingException
+    {
+        MavenProject mainProject = newMavenProject( "group", "main", "1" );
+
+        String artifactVersion = "2-20070807.112233-1";
+        String artifactBaseVersion = "2-SNAPSHOT";
+        MavenProject artifactProject = newMavenProject( "group", "artifact", artifactVersion );
+        ArtifactMock artifactMock = new ArtifactMock( mockManager, "group", "artifact", artifactVersion, "jar", true, artifactBaseVersion );
+
+        artifactProject.setArtifact( artifactMock.getArtifact() );
+
+        mockManager.replayAll();
+
+        String result = AssemblyFormatUtils.evaluateFileNameMapping( "${artifact.artifactId}-${artifact.baseVersion}", artifactMock.getArtifact(), mainProject, artifactProject, "artifact." );
+
+        assertEquals( "artifact-2-SNAPSHOT", result );
+
+        mockManager.verifyAll();
+
+        // clear out for next call.
+        mockManager.clear();
+    }
+
+    private MavenProject newMavenProject( String groupId, String artifactId, String version )
+    {
+        Model model = new Model();
+        model.setGroupId( groupId );
+        model.setArtifactId( artifactId );
+        model.setVersion( version );
+
+        return new MavenProject( model );
+    }
+
+    public void testEvalFileNameMapping_ShouldResolveGroupIdInOutDir_UseArtifactInfo()
+    throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( "${artifact.groupId}", null, "group", null, null, null, "group", false );
+    }
+
+    public void testEvalFileNameMapping_ShouldResolveArtifactIdInOutDir_UseArtifactInfo()
+    throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( "${artifact.artifactId}", null, null, "artifact", null, null, "artifact", false );
+    }
+
+    public void testEvalFileNameMapping_ShouldResolveVersionInOutDir_UseArtifactInfo()
+    throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( "${artifact.version}", null, null, null, "version", null, "version", false );
+    }
+
+    public void testEvalFileNameMapping_ShouldResolveGroupIdInOutDir_UseArtifactInfoAndModulePrefix()
+    throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( "${module.groupId}", null, "group", null, null, null, "group", "module.", false );
+    }
+
+    public void testEvalFileNameMapping_ShouldResolveArtifactIdInOutDir_UseArtifactInfoAndModulePrefix()
+    throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( "${module.artifactId}", null, null, "artifact", null, null, "artifact", "module.", false );
+    }
+
+    public void testEvalFileNameMapping_ShouldResolveVersionInOutDir_UseArtifactInfoAndModulePrefix()
+    throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( "${module.version}", null, null, null, "version", null, "version", "module.", false );
+    }
+
+    public void testEvalFileNameMapping_ShouldResolveGroupIdInOutDir_UseExplicitMainProject()
+    throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( "${pom.groupId}", null, "group", null, null, null, "group", true );
+    }
+
+    public void testEvalFileNameMapping_ShouldResolveArtifactIdInOutDir_UseExplicitMainProject()
+    throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( "${pom.artifactId}", null, null, "artifact", null, null, "artifact", true );
+    }
+
+    public void testEvalFileNameMapping_ShouldResolveVersionInOutDir_UseExplicitMainProject()
+    throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( "${pom.version}", null, null, null, "version", null, "version", true );
+    }
+
     public void testEvalFileNameMapping_ShouldPassExpressionThroughUnchanged() throws AssemblyFormattingException
     {
         verifyEvalFileNameMapping( "filename", null, null, null, null, null, "filename" );
@@ -122,7 +250,7 @@
 
     public void testEvalFileNameMapping_ShouldInsertClassifierAheadOfExtension() throws AssemblyFormattingException
     {
-        verifyEvalFileNameMapping( "filename-${classifier}.ext", "classifier", null, null, null, null, "filename-classifier.ext" );
+        verifyEvalFileNameMapping( "filename-${artifact.classifier}.ext", "classifier", null, null, null, null, "filename-classifier.ext" );
     }
 
     public void testEvalFileNameMapping_ShouldAppendDashClassifierWhenClassifierPresent() throws AssemblyFormattingException
@@ -157,18 +285,81 @@
 
     public void testEvalFileNameMapping_ShouldResolveExtension() throws AssemblyFormattingException
     {
-        verifyEvalFileNameMapping( "file.${extension}", null, null, null, null, "ext", "file.ext" );
+        verifyEvalFileNameMapping( "file.${artifact.extension}", null, null, null, null, "ext", "file.ext" );
     }
 
     private void verifyEvalFileNameMapping( String expression, String classifier, String groupId, String artifactId,
                                             String version, String extension, String checkValue )
         throws AssemblyFormattingException
     {
-        MockAndControlForEvalFileNameMapping mac = new MockAndControlForEvalFileNameMapping( groupId, artifactId, version, classifier, extension );
+        verifyEvalFileNameMapping( expression, classifier, groupId, artifactId, version, extension, checkValue, true );
+    }
+
+    private void verifyEvalFileNameMapping( String expression, String classifier, String groupId, String artifactId,
+                                            String version, String extension, String checkValue, boolean usingMainProject )
+        throws AssemblyFormattingException
+    {
+        verifyEvalFileNameMapping( expression, classifier, groupId, artifactId, version, extension, checkValue, null, usingMainProject );
+    }
+
+    private void verifyEvalFileNameMapping( String expression, String classifier, String groupId, String artifactId,
+                                            String version, String extension, String checkValue, String prefix, boolean usingMainProject )
+        throws AssemblyFormattingException
+    {
+        if ( artifactId == null )
+        {
+            artifactId = "artifact";
+        }
+
+        if ( groupId == null )
+        {
+            groupId = "group";
+        }
+
+        if ( version == null )
+        {
+            version = "version";
+        }
+
+        if ( extension == null )
+        {
+            extension = "jar";
+        }
+
+        MavenProject project = null;
+        Model model = new Model();
+        model.setGroupId( groupId );
+        model.setArtifactId( artifactId );
+        model.setVersion( version );
+
+        project = new MavenProject( model );
+
+        MavenProject mainProject;
+        MavenProject artifactProject = null;
+
+        if ( usingMainProject )
+        {
+            mainProject = project;
+        }
+        else
+        {
+            artifactProject = project;
+            mainProject = new MavenProject( new Model() );
+        }
+
+        ArtifactMock artifactMock = new ArtifactMock( mockManager, groupId, artifactId, version, extension, classifier, false );
 
         mockManager.replayAll();
 
-        String result = AssemblyFormatUtils.evaluateFileNameMapping( expression, mac.artifact );
+        String result;
+        if ( prefix == null )
+        {
+            result = AssemblyFormatUtils.evaluateFileNameMapping( expression, artifactMock.getArtifact(), mainProject, artifactProject );
+        }
+        else
+        {
+            result = AssemblyFormatUtils.evaluateFileNameMapping( expression, artifactMock.getArtifact(), mainProject, artifactProject, prefix );
+        }
 
         assertEquals( checkValue, result );
 
@@ -178,12 +369,23 @@
         mockManager.clear();
     }
 
-    private void verifyOutputDir( String outDir, String finalName, String groupId, String artifactId, String version, String checkValue )
+    private void verifyOutputDir( String outDir, String finalName, String groupId, String artifactId, String version,
+                                  String checkValue )
+        throws AssemblyFormattingException
     {
         verifyOutputDir( outDir, finalName, groupId, artifactId, version, null, checkValue, true );
     }
 
-    private void verifyOutputDir( String outDir, String finalName, String groupId, String artifactId, String version, String projectFinalName, String checkValue, boolean usingMainProject )
+    private void verifyOutputDir( String outDir, String finalName, String groupId, String artifactId, String version,
+                                  String projectFinalName, String checkValue, boolean usingMainProject )
+        throws AssemblyFormattingException
+    {
+        verifyOutputDir( outDir, finalName, groupId, artifactId, version, projectFinalName, checkValue, null, usingMainProject );
+    }
+
+    private void verifyOutputDir( String outDir, String finalName, String groupId, String artifactId, String version,
+                                  String projectFinalName, String checkValue, String prefix, boolean usingMainProject )
+        throws AssemblyFormattingException
     {
         MavenProject project = null;
         if ( ( groupId != null ) || ( artifactId != null ) || ( version != null ) || ( projectFinalName != null ) )
@@ -217,7 +419,15 @@
             mainProject = new MavenProject( new Model() );
         }
 
-        String result = AssemblyFormatUtils.getOutputDirectory( outDir, mainProject, artifactProject, finalName );
+        String result;
+        if ( prefix == null )
+        {
+            result = AssemblyFormatUtils.getOutputDirectory( outDir, mainProject, artifactProject, finalName );
+        }
+        else
+        {
+            result = AssemblyFormatUtils.getOutputDirectory( outDir, mainProject, artifactProject, finalName, prefix );
+        }
 
         assertEquals( checkValue, result );
     }
@@ -278,76 +488,4 @@
 
     }
 
-    private final class MockAndControlForEvalFileNameMapping
-    {
-        MockControl artifactControl;
-        Artifact artifact;
-
-        MockControl handlerControl;
-        ArtifactHandler handler;
-
-        private final String classifier;
-        private final String groupId;
-        private final String artifactId;
-        private final String version;
-        private final String extension;
-
-        public MockAndControlForEvalFileNameMapping( String groupId, String artifactId, String version, String classifier, String extension )
-        {
-            this.groupId = groupId;
-            this.artifactId = artifactId;
-            this.version = version;
-            this.classifier = classifier;
-            this.extension = extension;
-
-            artifactControl = MockControl.createControl( Artifact.class );
-            mockManager.add( artifactControl );
-
-            artifact = (Artifact) artifactControl.getMock();
-
-            handlerControl = MockControl.createControl( ArtifactHandler.class );
-            mockManager.add( handlerControl );
-
-            handler = (ArtifactHandler) handlerControl.getMock();
-
-            enableExpectations();
-        }
-
-        private void enableExpectations()
-        {
-            if ( groupId != null )
-            {
-                artifact.getGroupId();
-                artifactControl.setReturnValue( groupId, MockControl.ONE_OR_MORE );
-            }
-
-            if ( artifactId != null )
-            {
-                artifact.getArtifactId();
-                artifactControl.setReturnValue( artifactId, MockControl.ONE_OR_MORE );
-            }
-
-            if ( version != null )
-            {
-                artifact.getVersion();
-                artifactControl.setReturnValue( version, MockControl.ONE_OR_MORE );
-            }
-
-            if ( extension != null )
-            {
-                handler.getExtension();
-                handlerControl.setReturnValue( extension, MockControl.ONE_OR_MORE );
-            }
-
-            artifact.isSnapshot();
-            artifactControl.setReturnValue( true, MockControl.ONE_OR_MORE );
-
-            artifact.getClassifier();
-            artifactControl.setReturnValue( classifier, MockControl.ONE_OR_MORE );
-
-            artifact.getArtifactHandler();
-            artifactControl.setReturnValue( handler, MockControl.ONE_OR_MORE );
-        }
-
-    }
 }