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 2006/08/01 06:10:36 UTC

svn commit: r427437 - in /maven/plugins/branches/MASSEMBLY-124/src: main/java/org/apache/maven/plugin/assembly/archive/phase/ main/java/org/apache/maven/plugin/assembly/archive/task/ test/java/org/apache/maven/plugin/assembly/archive/phase/ test/java/o...

Author: jdcasey
Date: Mon Jul 31 21:10:35 2006
New Revision: 427437

URL: http://svn.apache.org/viewvc?rev=427437&view=rev
Log:
Adding unit tests for two of the assembly phases.

Added:
    maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java   (with props)
    maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/
    maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java   (with props)
    maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java   (with props)
Modified:
    maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java
    maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
    maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
    maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/ArchiverTask.java
    maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
    maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java
    maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java

Modified: maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java?rev=427437&r1=427436&r2=427437&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java Mon Jul 31 21:10:35 2006
@@ -8,6 +8,8 @@
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
+import java.util.List;
+
 /**
  * @plexus.component role="org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase"
  *                   role-hint="file-sets"
@@ -20,12 +22,17 @@
     public void execute( Assembly assembly, Archiver archiver, AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException
     {
-        AddFileSetsTask task = new AddFileSetsTask( assembly.getFileSets() );
-        
-        task.setLogger( getLogger() );
-        task.setIncludeBaseDirectory( assembly.isIncludeBaseDirectory() );
+        List fileSets = assembly.getFileSets();
         
-        task.execute( archiver, configSource );
+        if ( fileSets != null && !fileSets.isEmpty() )
+        {
+            AddFileSetsTask task = new AddFileSetsTask( fileSets );
+            
+            task.setLogger( getLogger() );
+            task.setIncludeBaseDirectory( assembly.isIncludeBaseDirectory() );
+            
+            task.execute( archiver, configSource );
+        }
     }
 
 }

Modified: maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java?rev=427437&r1=427436&r2=427437&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java Mon Jul 31 21:10:35 2006
@@ -1,5 +1,6 @@
 package org.apache.maven.plugin.assembly.archive.task;
 
+import java.io.File;
 import java.util.List;
 
 import org.apache.maven.artifact.Artifact;
@@ -75,7 +76,9 @@
             {
                 if ( fileMode > -1 )
                 {
-                    archiver.addFile( artifact.getFile(), outputLocation, fileMode );
+                    File artifactFile = artifact.getFile();
+                    
+                    archiver.addFile( artifactFile, outputLocation, fileMode );
                 }
                 else
                 {

Modified: maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java?rev=427437&r1=427436&r2=427437&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java Mon Jul 31 21:10:35 2006
@@ -30,7 +30,7 @@
     {
         this.fileSets = fileSets;
     }
-
+    
     public void execute( Archiver archiver, AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException
     {

Modified: maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/ArchiverTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/ArchiverTask.java?rev=427437&r1=427436&r2=427437&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/ArchiverTask.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/main/java/org/apache/maven/plugin/assembly/archive/task/ArchiverTask.java Mon Jul 31 21:10:35 2006
@@ -9,7 +9,7 @@
 public interface ArchiverTask
 {
     
-    public void execute( Archiver archiver, AssemblerConfigurationSource configSource )
+    void execute( Archiver archiver, AssemblerConfigurationSource configSource )
         throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException;
 
 }

Modified: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java?rev=427437&r1=427436&r2=427437&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java Mon Jul 31 21:10:35 2006
@@ -1,110 +1,278 @@
 package org.apache.maven.plugin.assembly.archive.phase;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.model.Model;
+import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
+import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddArtifactTask;
+import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugin.assembly.testutils.MockManager;
+import org.apache.maven.plugins.assembly.model.Assembly;
 import org.apache.maven.plugins.assembly.model.DependencySet;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
 import org.easymock.MockControl;
 
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
 public class DependencySetAssemblyPhaseTest
     extends TestCase
 {
-    
+
     private MockManager mockManager = new MockManager();
-    
-    public void testGetDependencyArtifacts_ShouldGetOneDependencyArtifact()
+
+    public void testExecute_ShouldAddOneDependencyFromProject()
+        throws AssemblyFormattingException, ArchiveCreationException, IOException
     {
+        String outputLocation = "/out";
+
         MavenProject project = new MavenProject( new Model() );
+
+        DependencySet ds = new DependencySet();
+        ds.setOutputDirectory( outputLocation );
+        ds.setOutputFileNameMapping( "artifact" );
+        ds.setUnpack( false );
+        ds.setScope( Artifact.SCOPE_COMPILE );
+        ds.setFileMode( Integer.toString( 8, 8 ) );
+        
+        Assembly assembly = new Assembly();
+        
+        assembly.setId( "test" );
+        assembly.setIncludeBaseDirectory( false );
+        assembly.addDependencySet( ds );
         
-        ArtifactMockAndControl mac = new ArtifactMockAndControl();
+        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mockManager );
+        MockAndControlForArtifactHandler macHandler = new MockAndControlForArtifactHandler();
+
+        macTask.expectArtifactGetFile();
+        macTask.expectArtifactGetScope( Artifact.SCOPE_COMPILE );
+        macTask.expectArtifactGetClassifier( null );
+        macTask.expectArtifactGetArtifactHandler( macHandler.handler );
+
+        macTask.expectAddFile( outputLocation + "/artifact", 8 );
+
+        project.setArtifacts( Collections.singleton( macTask.artifact ) );
+
+        MockAndControlForConfigSource macCS = new MockAndControlForConfigSource();
+
+        macCS.enableGetProject( project );
+        macCS.enableGetFinalName( "final-name" );
+
+        MockAndControlForLogger macLog = new MockAndControlForLogger();
+
+        macLog.expectInfo( "Processing DependencySet" );
+
+        mockManager.replayAll();
+
+        createPhase( macLog.logger ).execute( assembly, macTask.archiver, macCS.configSource );
+
+        mockManager.verifyAll();
+    }
+
+    public void testExecute_ShouldNotAddDependenciesWhenProjectHasNone()
+        throws AssemblyFormattingException, ArchiveCreationException, IOException
+    {
+        MockAndControlForLogger macLog = new MockAndControlForLogger();
+
+        Assembly assembly = new Assembly();
         
-        mac.enableGetScope( Artifact.SCOPE_COMPILE );
+        assembly.setId( "test" );
+        assembly.setIncludeBaseDirectory( false );
         
+        mockManager.replayAll();
+
+        createPhase( macLog.logger ).execute( assembly, null, null );
+
+        mockManager.verifyAll();
+    }
+
+    public void testAddDependencySet_ShouldNotAddDependenciesWhenProjectHasNone()
+        throws AssemblyFormattingException, ArchiveCreationException
+    {
+        MavenProject project = new MavenProject( new Model() );
+
+        MockAndControlForConfigSource macCS = new MockAndControlForConfigSource();
+
+        macCS.enableGetProject( project );
+        macCS.enableGetFinalName( "final-name" );
+
+        DependencySet ds = new DependencySet();
+        ds.setOutputDirectory( "/out" );
+
+        MockAndControlForLogger macLog = new MockAndControlForLogger();
+
+        macLog.expectInfo( "Processing DependencySet" );
+
+        mockManager.replayAll();
+
+        createPhase( macLog.logger ).addDependencySet( ds, null, macCS.configSource, false );
+
+        mockManager.verifyAll();
+    }
+
+    public void testAddDependencySet_ShouldAddOneDependencyFromProjectWithoutUnpacking()
+        throws AssemblyFormattingException, ArchiveCreationException, IOException
+    {
+        verifyOneDependencyAdded( "/out", false );
+    }
+
+    public void testAddDependencySet_ShouldAddOneDependencyFromProjectUnpacked()
+        throws AssemblyFormattingException, ArchiveCreationException, IOException
+    {
+        verifyOneDependencyAdded( "/out", true );
+    }
+
+    private void verifyOneDependencyAdded( String outputLocation, boolean unpack )
+        throws AssemblyFormattingException, ArchiveCreationException, IOException
+    {
+        MavenProject project = new MavenProject( new Model() );
+
+        DependencySet ds = new DependencySet();
+        ds.setOutputDirectory( outputLocation );
+        ds.setOutputFileNameMapping( "artifact" );
+        ds.setUnpack( unpack );
+        ds.setScope( Artifact.SCOPE_COMPILE );
+
+        ds.setDirectoryMode( Integer.toString( 8, 8 ) );
+        ds.setFileMode( Integer.toString( 8, 8 ) );
+
+        MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mockManager );
+        MockAndControlForArtifactHandler macHandler = new MockAndControlForArtifactHandler();
+
+        macTask.expectArtifactGetFile();
+        macTask.expectArtifactGetScope( Artifact.SCOPE_COMPILE );
+        macTask.expectArtifactGetClassifier( null );
+        macTask.expectArtifactGetArtifactHandler( macHandler.handler );
+
+        if ( unpack )
+        {
+            macTask.expectAddArchivedFileSet( outputLocation + "/artifact", null, null );
+            macTask.expectModeChange( -1, -1, 8, 8, 2 );
+        }
+        else
+        {
+            macTask.expectAddFile( outputLocation + "/artifact", 8 );
+        }
+
+        project.setArtifacts( Collections.singleton( macTask.artifact ) );
+
+        MockAndControlForConfigSource macCS = new MockAndControlForConfigSource();
+
+        macCS.enableGetProject( project );
+        macCS.enableGetFinalName( "final-name" );
+
+        MockAndControlForLogger macLog = new MockAndControlForLogger();
+
+        macLog.expectInfo( "Processing DependencySet" );
+
+        mockManager.replayAll();
+
+        createPhase( macLog.logger ).addDependencySet( ds, macTask.archiver, macCS.configSource, false );
+
+        mockManager.verifyAll();
+    }
+
+    private DependencySetAssemblyPhase createPhase( Logger logger )
+    {
+        DependencySetAssemblyPhase phase = new DependencySetAssemblyPhase();
+
+        phase.enableLogging( logger );
+
+        return phase;
+    }
+
+    public void testGetDependencyArtifacts_ShouldGetOneDependencyArtifact()
+    {
+        MavenProject project = new MavenProject( new Model() );
+
+        MockAndControlForArtifact mac = new MockAndControlForArtifact();
+
+        mac.expectGetScope( Artifact.SCOPE_COMPILE );
+
         project.setArtifacts( Collections.singleton( mac.artifact ) );
-        
+
         DependencySet dependencySet = new DependencySet();
-        
+
         DependencySetAssemblyPhase phase = new DependencySetAssemblyPhase();
         phase.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
-        
+
         mockManager.replayAll();
-        
+
         Set result = phase.getDependencyArtifacts( project, dependencySet );
-        
+
         assertNotNull( result );
         assertEquals( 1, result.size() );
         assertSame( mac.artifact, result.iterator().next() );
-        
+
         mockManager.verifyAll();
     }
-    
+
     public void testGetDependencyArtifacts_ShouldFilterOneDependencyArtifactViaInclude()
     {
         MavenProject project = new MavenProject( new Model() );
-        
+
         Set artifacts = new HashSet();
-        
-        ArtifactMockAndControl mac = new ArtifactMockAndControl();
-        
+
+        MockAndControlForArtifact mac = new MockAndControlForArtifact();
+
         mac.enableGetGroupId( "group" );
         mac.enableGetArtifactId( "artifact" );
         mac.enableGetDependencyConflictId( "group:artifact:jar" );
-        mac.enableGetScope( Artifact.SCOPE_COMPILE );
-        
+        mac.expectGetScope( Artifact.SCOPE_COMPILE );
+
         artifacts.add( mac.artifact );
-        
-        ArtifactMockAndControl mac2 = new ArtifactMockAndControl();
-        
+
+        MockAndControlForArtifact mac2 = new MockAndControlForArtifact();
+
         mac2.enableGetGroupId( "group2" );
         mac2.enableGetArtifactId( "artifact2" );
         mac2.enableGetDependencyConflictId( "group2:artifact2:jar" );
-        mac2.enableGetScope( Artifact.SCOPE_COMPILE );
+        mac2.expectGetScope( Artifact.SCOPE_COMPILE );
         mac2.enableGetDependencyTrail( Collections.EMPTY_LIST );
         mac2.enableGetId( "group2:artifact2:1.0" );
-        
+
         artifacts.add( mac2.artifact );
-        
+
         project.setArtifacts( artifacts );
-        
+
         DependencySet dependencySet = new DependencySet();
-        
+
         dependencySet.addInclude( "group:artifact" );
-        
+
         DependencySetAssemblyPhase phase = new DependencySetAssemblyPhase();
         phase.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
-        
+
         mockManager.replayAll();
-        
+
         Set result = phase.getDependencyArtifacts( project, dependencySet );
-        
+
         assertNotNull( result );
         assertEquals( 1, result.size() );
         assertSame( mac.artifact, result.iterator().next() );
-        
+
         mockManager.verifyAll();
     }
-    
-    private final class ArtifactMockAndControl
+
+    private final class MockAndControlForArtifact
     {
         Artifact artifact;
+
         MockControl control;
-        
-        public ArtifactMockAndControl()
+
+        public MockAndControlForArtifact()
         {
             control = MockControl.createControl( Artifact.class );
             mockManager.add( control );
-            
-            artifact = (Artifact) control.getMock();
+
+            artifact = ( Artifact ) control.getMock();
         }
 
         public void enableGetId( String id )
@@ -137,10 +305,73 @@
             control.setReturnValue( groupId, MockControl.ONE_OR_MORE );
         }
 
-        public void enableGetScope( String scope )
+        public void expectGetScope( String scope )
         {
             artifact.getScope();
             control.setReturnValue( scope, MockControl.ONE_OR_MORE );
+        }
+    }
+
+    private final class MockAndControlForConfigSource
+    {
+        AssemblerConfigurationSource configSource;
+
+        MockControl control;
+
+        MockAndControlForConfigSource()
+        {
+            control = MockControl.createControl( AssemblerConfigurationSource.class );
+            mockManager.add( control );
+
+            configSource = ( AssemblerConfigurationSource ) control.getMock();
+        }
+
+        public void enableGetFinalName( String finalName )
+        {
+            configSource.getFinalName();
+            control.setReturnValue( finalName, MockControl.ONE_OR_MORE );
+        }
+
+        void enableGetProject( MavenProject project )
+        {
+            configSource.getProject();
+            control.setReturnValue( project, MockControl.ONE_OR_MORE );
+        }
+    }
+
+    private final class MockAndControlForLogger
+    {
+        Logger logger;
+
+        MockControl control;
+
+        MockAndControlForLogger()
+        {
+            control = MockControl.createControl( Logger.class );
+            mockManager.add( control );
+
+            logger = ( Logger ) control.getMock();
+        }
+
+        void expectInfo( String message )
+        {
+            logger.info( message );
+            control.setVoidCallable( MockControl.ONE_OR_MORE );
+        }
+    }
+
+    private final class MockAndControlForArtifactHandler
+    {
+        ArtifactHandler handler;
+
+        MockControl control;
+
+        MockAndControlForArtifactHandler()
+        {
+            control = MockControl.createControl( ArtifactHandler.class );
+            mockManager.add( control );
+
+            handler = ( ArtifactHandler ) control.getMock();
         }
     }
 

Added: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java?rev=427437&view=auto
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java (added)
+++ maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java Mon Jul 31 21:10:35 2006
@@ -0,0 +1,121 @@
+package org.apache.maven.plugin.assembly.archive.phase;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
+import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddFileSetsTask;
+import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
+import org.apache.maven.plugin.assembly.testutils.MockManager;
+import org.apache.maven.plugin.assembly.testutils.TestFileManager;
+import org.apache.maven.plugins.assembly.model.Assembly;
+import org.apache.maven.plugins.assembly.model.FileSet;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.logging.Logger;
+import org.easymock.MockControl;
+
+import java.io.File;
+
+import junit.framework.TestCase;
+
+public class FileSetAssemblyPhaseTest
+    extends TestCase
+{
+    
+    private MockManager mockManager = new MockManager();
+    
+    private TestFileManager fileManager = new TestFileManager( "file-set-assembly.test.", "" );
+    
+    public void testShouldNotFailWhenNoFileSetsSpecified()
+        throws ArchiveCreationException, AssemblyFormattingException
+    {
+        Assembly assembly = new Assembly();
+        
+        assembly.setId( "test" );
+        
+        MockAndControlForLogger macLogger = new MockAndControlForLogger();
+        MockAndControlForAddFileSetsTask macTask = new MockAndControlForAddFileSetsTask( mockManager, fileManager );
+        
+        mockManager.replayAll();
+        
+        createPhase( macLogger ).execute( assembly, macTask.archiver, macTask.configSource );
+        
+        mockManager.verifyAll();
+    }
+
+    public void testShouldAddOneFileSet()
+        throws ArchiveCreationException, AssemblyFormattingException
+    {
+        Assembly assembly = new Assembly();
+
+        assembly.setId( "test" );
+        assembly.setIncludeBaseDirectory( false );
+        
+        FileSet fs = new FileSet();
+        fs.setOutputDirectory( "/out" );
+        fs.setDirectory( "/input" );
+        fs.setFileMode( "777" );
+        fs.setDirectoryMode( "777" );
+        
+        assembly.addFileSet( fs );
+
+        MockAndControlForLogger macLogger = new MockAndControlForLogger();
+        MockAndControlForAddFileSetsTask macTask = new MockAndControlForAddFileSetsTask( mockManager, fileManager );
+        
+        macTask.expectGetArchiveBaseDirectory();
+        
+        File basedir = fileManager.createTempDir();
+        MavenProject project = new MavenProject( new Model() );
+        
+        macLogger.expectDebug( true, true );
+        
+        int dirMode = Integer.parseInt( "777", 8 );
+        int fileMode = Integer.parseInt( "777", 8 );
+        
+        int[] modes = { -1, -1, dirMode, fileMode };
+        
+        macTask.expectAdditionOfSingleFileSet( project, basedir, "final-name", false, modes, 1, true );
+
+        mockManager.replayAll();
+
+        createPhase( macLogger ).execute( assembly, macTask.archiver, macTask.configSource );
+
+        mockManager.verifyAll();
+    }
+
+    private FileSetAssemblyPhase createPhase( MockAndControlForLogger macLogger )
+    {
+        FileSetAssemblyPhase phase = new FileSetAssemblyPhase();
+        
+        phase.enableLogging( macLogger.logger );
+        
+        return phase;
+    }
+    
+    private final class MockAndControlForLogger
+    {
+        Logger logger;
+
+        MockControl control;
+
+        MockAndControlForLogger()
+        {
+            control = MockControl.createControl( Logger.class );
+            mockManager.add( control );
+
+            logger = ( Logger ) control.getMock();
+        }
+
+        public void expectDebug( boolean debugCheck, boolean debugEnabled )
+        {
+            if ( debugCheck )
+            {
+                logger.isDebugEnabled();
+                control.setReturnValue( debugEnabled, MockControl.ONE_OR_MORE );
+            }
+            
+            logger.debug( null );
+            control.setMatcher( MockControl.ALWAYS_MATCHER );
+            control.setVoidCallable( MockControl.ONE_OR_MORE );
+        }
+    }
+
+}

Propchange: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhaseTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java?rev=427437&r1=427436&r2=427437&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java Mon Jul 31 21:10:35 2006
@@ -1,53 +1,30 @@
 package org.apache.maven.plugin.assembly.archive.task;
 
-import java.io.File;
+import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
+import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddArtifactTask;
+import org.apache.maven.plugin.assembly.testutils.MockManager;
+import org.codehaus.plexus.archiver.ArchiverException;
+
 import java.io.IOException;
 import java.util.Arrays;
 
 import junit.framework.TestCase;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
-import org.apache.maven.plugin.assembly.testutils.MockManager;
-import org.codehaus.plexus.archiver.Archiver;
-import org.codehaus.plexus.archiver.ArchiverException;
-import org.easymock.MockControl;
-
 public class AddArtifactTaskTest
     extends TestCase
 {
 
     private MockManager mockManager;
-
-    private Artifact artifact;
-
-    private MockControl artifactCtl;
-
-    private File artifactFile;
-
-    private Archiver archiver;
-
-    private MockControl archiverCtl;
+    
+    private MockAndControlForAddArtifactTask macForAddArtifact;
 
     public void setUp()
         throws IOException
     {
         mockManager = new MockManager();
-
-        artifactCtl = MockControl.createControl( Artifact.class );
-        mockManager.add( artifactCtl );
-
-        artifact = (Artifact) artifactCtl.getMock();
-
-        artifactFile = File.createTempFile( "add-artifact-task.test.", ".jar" );
-
-        artifact.getFile();
-        artifactCtl.setReturnValue( artifactFile );
-
-        archiverCtl = MockControl.createControl( Archiver.class );
-        mockManager.add( archiverCtl );
-
-        archiver = (Archiver) archiverCtl.getMock();
+        
+        macForAddArtifact = new MockAndControlForAddArtifactTask( mockManager );
+        macForAddArtifact.expectArtifactGetFile();
     }
 
     public void testShouldAddArchiveFileWithoutUnpacking()
@@ -55,20 +32,12 @@
     {
         String outputLocation = "artifact";
 
-        try
-        {
-            archiver.addFile( artifactFile, outputLocation );
-        }
-        catch ( ArchiverException e )
-        {
-            fail( "Should never happen." );
-        }
-
+        macForAddArtifact.expectAddFile( outputLocation );
         mockManager.replayAll();
 
-        AddArtifactTask task = new AddArtifactTask( artifact, outputLocation );
+        AddArtifactTask task = new AddArtifactTask( macForAddArtifact.artifact, outputLocation );
 
-        task.execute( archiver, null );
+        task.execute( macForAddArtifact.archiver, null );
 
         mockManager.verifyAll();
     }
@@ -76,13 +45,13 @@
     public void testShouldAddArchiveFileWithUnpack()
         throws ArchiveCreationException
     {
-        configureModeExpectations( -1, -1, -1, -1, false );
+        macForAddArtifact.expectModeChange( -1, -1, -1, -1, 1 );
 
         String outputLocation = "artifact";
 
         try
         {
-            archiver.addArchivedFileSet( artifactFile, outputLocation, null, null );
+            macForAddArtifact.archiver.addArchivedFileSet( macForAddArtifact.artifactFile, outputLocation, null, null );
         }
         catch ( ArchiverException e )
         {
@@ -91,11 +60,11 @@
 
         mockManager.replayAll();
 
-        AddArtifactTask task = new AddArtifactTask( artifact, outputLocation );
+        AddArtifactTask task = new AddArtifactTask( macForAddArtifact.artifact, outputLocation );
 
         task.setUnpack( true );
 
-        task.execute( archiver, null );
+        task.execute( macForAddArtifact.archiver, null );
 
         mockManager.verifyAll();
     }
@@ -106,13 +75,13 @@
         int directoryMode = Integer.parseInt( "777", 8 );
         int fileMode = Integer.parseInt( "777", 8 );
         
-        configureModeExpectations( -1, -1, directoryMode, fileMode, true );
+        macForAddArtifact.expectModeChange( -1, -1, directoryMode, fileMode, 2 );
 
         String outputLocation = "artifact";
 
         try
         {
-            archiver.addArchivedFileSet( artifactFile, outputLocation, null, null );
+            macForAddArtifact.archiver.addArchivedFileSet( macForAddArtifact.artifactFile, outputLocation, null, null );
         }
         catch ( ArchiverException e )
         {
@@ -121,13 +90,13 @@
 
         mockManager.replayAll();
 
-        AddArtifactTask task = new AddArtifactTask( artifact, outputLocation );
+        AddArtifactTask task = new AddArtifactTask( macForAddArtifact.artifact, outputLocation );
 
         task.setUnpack( true );
         task.setDirectoryMode( directoryMode );
         task.setFileMode( fileMode );
 
-        task.execute( archiver, null );
+        task.execute( macForAddArtifact.archiver, null );
 
         mockManager.verifyAll();
     }
@@ -135,52 +104,26 @@
     public void testShouldAddArchiveFileWithUnpackIncludesAndExcludes()
         throws ArchiveCreationException
     {
-        configureModeExpectations( -1, -1, -1, -1, false );
+        macForAddArtifact.expectModeChange( -1, -1, -1, -1, 1 );
 
         String outputLocation = "artifact";
 
         String[] includes = { "**/*.txt" };
         String[] excludes = { "**/README.txt" };
 
-        try
-        {
-            archiver.addArchivedFileSet( artifactFile, outputLocation, includes, excludes );
-            archiverCtl.setMatcher( MockControl.ARRAY_MATCHER );
-        }
-        catch ( ArchiverException e )
-        {
-            fail( "Should never happen." );
-        }
+        macForAddArtifact.expectAddArchivedFileSet( outputLocation, includes, excludes );
 
         mockManager.replayAll();
 
-        AddArtifactTask task = new AddArtifactTask( artifact, outputLocation );
+        AddArtifactTask task = new AddArtifactTask( macForAddArtifact.artifact, outputLocation );
 
         task.setUnpack( true );
         task.setIncludes( Arrays.asList( includes ) );
         task.setExcludes( Arrays.asList( excludes ) );
 
-        task.execute( archiver, null );
+        task.execute( macForAddArtifact.archiver, null );
 
         mockManager.verifyAll();
     }
 
-    private void configureModeExpectations( int defaultDirMode, int defaultFileMode, int dirMode, int fileMode,
-                                            boolean expectTwoSets )
-    {
-        archiver.getDefaultDirectoryMode();
-        archiverCtl.setReturnValue( defaultDirMode );
-
-        archiver.getDefaultFileMode();
-        archiverCtl.setReturnValue( defaultFileMode );
-
-        if ( expectTwoSets )
-        {
-            archiver.setDefaultDirectoryMode( dirMode );
-            archiver.setDefaultFileMode( fileMode );
-        }
-
-        archiver.setDefaultDirectoryMode( defaultDirMode );
-        archiver.setDefaultFileMode( defaultFileMode );
-    }
 }

Modified: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java?rev=427437&r1=427436&r2=427437&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java Mon Jul 31 21:10:35 2006
@@ -1,21 +1,17 @@
 package org.apache.maven.plugin.assembly.archive.task;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-
-import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
+import org.apache.maven.plugin.assembly.archive.task.testutils.MockAndControlForAddFileSetsTask;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugin.assembly.testutils.MockManager;
 import org.apache.maven.plugin.assembly.testutils.TestFileManager;
 import org.apache.maven.plugins.assembly.model.FileSet;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.archiver.Archiver;
-import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
-import org.easymock.MockControl;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
 
 import junit.framework.TestCase;
 
@@ -27,29 +23,15 @@
 
     private TestFileManager fileManager;
 
-    private AssemblerConfigurationSource configSource;
-
-    private MockControl configSourceCtl;
-
-    private Archiver archiver;
-
-    private MockControl archiverCtl;
+    private MockAndControlForAddFileSetsTask macTask;
 
     public void setUp()
     {
         mockManager = new MockManager();
 
         fileManager = new TestFileManager( "add-fileset.test.", "" );
-
-        configSourceCtl = MockControl.createControl( AssemblerConfigurationSource.class );
-        mockManager.add( configSourceCtl );
-
-        configSource = (AssemblerConfigurationSource) configSourceCtl.getMock();
-
-        archiverCtl = MockControl.createControl( Archiver.class );
-        mockManager.add( archiverCtl );
-
-        archiver = (Archiver) archiverCtl.getMock();
+        
+        macTask = new MockAndControlForAddFileSetsTask( mockManager, fileManager );
     }
 
     public void tearDown()
@@ -130,15 +112,13 @@
         fs.setDirectory( dirname );
         fs.setOutputDirectory( "dir2" );
 
-        File archiveBaseDir = fileManager.createTempDir();
-
         // ensure this exists, so the directory addition will proceed.
-        File srcDir = new File( archiveBaseDir, dirname );
+        File srcDir = new File( macTask.archiveBaseDir, dirname );
         srcDir.mkdirs();
 
         int[] modes = { -1, -1, Integer.parseInt( fs.getDirectoryMode(), 8 ), Integer.parseInt( fs.getFileMode(), 8 ) };
 
-        setupForAddingSingleFileSet( null, null, null, true, modes, true, true );
+        macTask.expectAdditionOfSingleFileSet( null, null, null, true, modes, 2, true );
 
         mockManager.replayAll();
 
@@ -146,7 +126,7 @@
 
         task.setLogger( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
 
-        task.addFileSet( fs, archiver, configSource, archiveBaseDir );
+        task.addFileSet( fs, macTask.archiver, macTask.configSource, macTask.archiveBaseDir );
 
         mockManager.verifyAll();
     }
@@ -168,7 +148,7 @@
 
         int[] modes = { -1, -1, Integer.parseInt( fs.getDirectoryMode(), 8 ), Integer.parseInt( fs.getFileMode(), 8 ) };
 
-        setupForAddingSingleFileSet( null, null, null, true, modes, true, true );
+        macTask.expectAdditionOfSingleFileSet( null, null, null, true, modes, 2, true );
 
         mockManager.replayAll();
 
@@ -176,7 +156,7 @@
 
         task.setLogger( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
 
-        task.addFileSet( fs, archiver, configSource, archiveBaseDir );
+        task.addFileSet( fs, macTask.archiver, macTask.configSource, archiveBaseDir );
 
         mockManager.verifyAll();
     }
@@ -194,7 +174,7 @@
 
         int[] modes = { -1, -1, Integer.parseInt( fs.getDirectoryMode(), 8 ), Integer.parseInt( fs.getFileMode(), 8 ) };
 
-        setupForAddingSingleFileSet( null, null, null, false, modes, false, true );
+        macTask.expectAdditionOfSingleFileSet( null, null, null, false, modes, 1, true );
 
         mockManager.replayAll();
 
@@ -202,7 +182,7 @@
 
         task.setLogger( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
 
-        task.addFileSet( fs, archiver, configSource, archiveBaseDir );
+        task.addFileSet( fs, macTask.archiver, macTask.configSource, archiveBaseDir );
 
         mockManager.verifyAll();
     }
@@ -210,12 +190,9 @@
     public void testExecute_ShouldThrowExceptionIfArchiveBasedirProvidedIsNonExistent()
         throws AssemblyFormattingException
     {
-        File archiveBaseDir = fileManager.createTempDir();
-
-        archiveBaseDir.delete();
+        macTask.archiveBaseDir.delete();
 
-        configSource.getArchiveBaseDirectory();
-        configSourceCtl.setReturnValue( archiveBaseDir );
+        macTask.expectGetArchiveBaseDirectory();
 
         mockManager.replayAll();
 
@@ -223,7 +200,7 @@
 
         try
         {
-            task.execute( archiver, configSource );
+            task.execute( macTask.archiver, macTask.configSource );
 
             fail( "Should throw exception due to non-existent archiveBasedir location that was provided." );
         }
@@ -239,9 +216,9 @@
         throws AssemblyFormattingException, IOException
     {
         File archiveBaseDir = fileManager.createTempFile();
-
-        configSource.getArchiveBaseDirectory();
-        configSourceCtl.setReturnValue( archiveBaseDir );
+        
+        macTask.archiveBaseDir = archiveBaseDir;
+        macTask.expectGetArchiveBaseDirectory();
 
         mockManager.replayAll();
 
@@ -249,7 +226,7 @@
 
         try
         {
-            task.execute( archiver, configSource );
+            task.execute( macTask.archiver, macTask.configSource );
 
             fail( "Should throw exception due to non-directory archiveBasedir location that was provided." );
         }
@@ -259,65 +236,6 @@
         }
 
         mockManager.verifyAll();
-    }
-
-    private void configureModeExpectations( int[] modes, boolean expectModeChange, boolean isDebugEnabled )
-    {
-        archiver.getDefaultDirectoryMode();
-        archiverCtl.setReturnValue( modes[0] );
-
-        archiver.getDefaultFileMode();
-        archiverCtl.setReturnValue( modes[1] );
-
-        if ( expectModeChange )
-        {
-            archiver.setDefaultDirectoryMode( modes[2] );
-            archiver.setDefaultFileMode( modes[3] );
-        }
-
-        archiver.setDefaultDirectoryMode( modes[0] );
-        archiver.setDefaultFileMode( modes[1] );
-    }
-
-    private void setupForAddingSingleFileSet( MavenProject project, File basedir, String finalName,
-                                              boolean shouldAddDir, int[] modes, boolean expectModeChange,
-                                              boolean isDebugEnabled )
-    {
-        // the logger sends a debug message with this info inside the addFileSet(..) method..
-        if ( isDebugEnabled )
-        {
-            archiver.getDefaultDirectoryMode();
-            archiverCtl.setReturnValue( modes[0] );
-
-            archiver.getDefaultFileMode();
-            archiverCtl.setReturnValue( modes[1] );
-        }
-
-        configSource.getProject();
-        configSourceCtl.setReturnValue( project, MockControl.ONE_OR_MORE );
-
-        configSource.getBasedir();
-        configSourceCtl.setReturnValue( basedir, MockControl.ONE_OR_MORE );
-
-        configSource.getFinalName();
-        configSourceCtl.setReturnValue( finalName, MockControl.ONE_OR_MORE );
-
-        if ( shouldAddDir )
-        {
-            configureModeExpectations( modes, expectModeChange, isDebugEnabled );
-
-            try
-            {
-                archiver.addDirectory( null, null, null, null );
-                archiverCtl.setMatcher( MockControl.ALWAYS_MATCHER );
-                archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
-            }
-            catch ( ArchiverException e )
-            {
-                fail( "Should never happen." );
-            }
-        }
-
     }
 
 }

Added: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java?rev=427437&view=auto
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java (added)
+++ maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java Mon Jul 31 21:10:35 2006
@@ -0,0 +1,138 @@
+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.codehaus.plexus.archiver.Archiver;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.easymock.MockControl;
+
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+public class MockAndControlForAddArtifactTask
+{
+
+    public MockControl artifactCtl;
+
+    public Artifact artifact;
+
+    public File artifactFile;
+
+    public Archiver archiver;
+
+    public MockControl archiverCtl;
+    
+    public MockAndControlForAddArtifactTask( MockManager mockManager )
+        throws IOException
+    {
+        artifactCtl = MockControl.createControl( Artifact.class );
+        mockManager.add( artifactCtl );
+
+        artifact = ( Artifact ) artifactCtl.getMock();
+        
+        archiverCtl = MockControl.createControl( Archiver.class );
+        mockManager.add( archiverCtl );
+
+        archiver = (Archiver) archiverCtl.getMock();
+    }
+
+    public void expectArtifactGetFile() throws IOException
+    {
+        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 )
+    {
+        try
+        {
+            archiver.addArchivedFileSet( artifactFile, outputLocation, includes, excludes );
+            
+            if ( includes != null || excludes != null )
+            {
+                archiverCtl.setMatcher( MockControl.ARRAY_MATCHER );
+            }
+            
+            archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
+        }
+        catch ( ArchiverException e )
+        {
+            Assert.fail( "Should never happen." );
+        }
+    }
+    
+    public void expectModeChange( int originalDirMode, int originalFileMode, int dirMode, int fileMode,
+                                            int numberOfChanges )
+    {
+        archiver.getDefaultDirectoryMode();
+        archiverCtl.setReturnValue( originalDirMode );
+
+        archiver.getDefaultFileMode();
+        archiverCtl.setReturnValue( originalFileMode );
+
+        // one of the changes will occur below, when we restore the original mode.
+        if ( numberOfChanges > 1 )
+        {
+            for( int i = 1; i< numberOfChanges; i++ )
+            {
+                archiver.setDefaultDirectoryMode( dirMode );
+                archiver.setDefaultFileMode( fileMode );
+            }
+        }
+
+        archiver.setDefaultDirectoryMode( originalDirMode );
+        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 )
+    {
+        try
+        {
+            archiver.addFile( artifactFile, outputLocation, fileMode );
+            archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
+        }
+        catch ( ArchiverException e )
+        {
+            Assert.fail( "Should never happen." );
+        }
+    }
+    
+    public void expectArtifactGetArtifactHandler( ArtifactHandler artifactHandler )
+    {
+        artifact.getArtifactHandler();
+        artifactCtl.setReturnValue( artifactHandler, MockControl.ONE_OR_MORE );
+    }
+
+    public void expectArtifactGetClassifier( String classifier )
+    {
+        artifact.getClassifier();
+        artifactCtl.setReturnValue( classifier, MockControl.ONE_OR_MORE );
+    }
+
+    public void expectArtifactGetScope( String scope )
+    {
+        artifact.getScope();
+        artifactCtl.setReturnValue( scope, MockControl.ONE_OR_MORE );
+    }
+
+}

Propchange: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

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

Added: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java?rev=427437&view=auto
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java (added)
+++ maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java Mon Jul 31 21:10:35 2006
@@ -0,0 +1,132 @@
+package org.apache.maven.plugin.assembly.archive.task.testutils;
+
+import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.testutils.MockManager;
+import org.apache.maven.plugin.assembly.testutils.TestFileManager;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.Archiver;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.easymock.MockControl;
+
+import java.io.File;
+
+import junit.framework.Assert;
+
+public class MockAndControlForAddFileSetsTask
+{
+
+    public AssemblerConfigurationSource configSource;
+
+    public MockControl configSourceCtl;
+
+    public Archiver archiver;
+
+    public MockControl archiverCtl;
+
+    public TestFileManager fileManager;
+
+    public File archiveBaseDir;
+
+    public MockAndControlForAddFileSetsTask( MockManager mockManager, TestFileManager fileManager )
+    {
+        this.fileManager = fileManager;
+
+        configSourceCtl = MockControl.createControl( AssemblerConfigurationSource.class );
+        mockManager.add( configSourceCtl );
+
+        configSource = ( AssemblerConfigurationSource ) configSourceCtl.getMock();
+
+        archiverCtl = MockControl.createControl( Archiver.class );
+        mockManager.add( archiverCtl );
+
+        archiver = ( Archiver ) archiverCtl.getMock();
+        
+        archiveBaseDir = fileManager.createTempDir();    }
+
+    public void expectGetArchiveBaseDirectory()
+    {
+        configSource.getArchiveBaseDirectory();
+        configSourceCtl.setReturnValue( archiveBaseDir, MockControl.ONE_OR_MORE );
+    }
+    
+    public void expectGetBasedir( File basedir )
+    {
+        configSource.getBasedir();
+        configSourceCtl.setReturnValue( basedir, MockControl.ONE_OR_MORE );
+    }
+
+    public void expectModeChanges( int[] modes, int modeChangeCount )
+    {
+        archiver.getDefaultDirectoryMode();
+        archiverCtl.setReturnValue( modes[0] );
+
+        archiver.getDefaultFileMode();
+        archiverCtl.setReturnValue( modes[1] );
+
+        if ( modeChangeCount > 1 )
+        {
+            for ( int i = 1; i < modeChangeCount; i++ )
+            {
+                archiver.setDefaultDirectoryMode( modes[2] );
+                archiver.setDefaultFileMode( modes[3] );
+            }
+        }
+
+        archiver.setDefaultDirectoryMode( modes[0] );
+        archiver.setDefaultFileMode( modes[1] );
+    }
+    
+    public void expectAdditionOfSingleFileSet( MavenProject project, File basedir, String finalName,
+                                              boolean shouldAddDir, int[] modes, int modeChangeCount,
+                                              boolean isDebugEnabled )
+    {
+        // the logger sends a debug message with this info inside the addFileSet(..) method..
+        if ( isDebugEnabled )
+        {
+            archiver.getDefaultDirectoryMode();
+            archiverCtl.setReturnValue( modes[0] );
+
+            archiver.getDefaultFileMode();
+            archiverCtl.setReturnValue( modes[1] );
+        }
+
+        configSource.getProject();
+        configSourceCtl.setReturnValue( project, MockControl.ONE_OR_MORE );
+
+        configSource.getBasedir();
+        configSourceCtl.setReturnValue( basedir, MockControl.ONE_OR_MORE );
+
+        configSource.getFinalName();
+        configSourceCtl.setReturnValue( finalName, MockControl.ONE_OR_MORE );
+
+        if ( shouldAddDir )
+        {
+            expectModeChanges( modes, modeChangeCount );
+
+            try
+            {
+                archiver.addDirectory( null, null, null, null );
+                archiverCtl.setMatcher( MockControl.ALWAYS_MATCHER );
+                archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
+            }
+            catch ( ArchiverException e )
+            {
+                Assert.fail( "Should never happen." );
+            }
+        }
+
+    }
+
+    public void expectGetProject( MavenProject project )
+    {
+        configSource.getProject();
+        configSourceCtl.setReturnValue( project, MockControl.ONE_OR_MORE );
+    }
+
+    public void expectGetFinalName( String finalName )
+    {
+        configSource.getFinalName();
+        configSourceCtl.setReturnValue( finalName, MockControl.ONE_OR_MORE );
+    }
+
+}

Propchange: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

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