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"