You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/04/25 16:20:28 UTC

[maven-assembly-plugin] 04/04: Complete replace easymock with mockito

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch mockito
in repository https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git

commit 06e445c1416aa2cdeb4c0829e84c22ac6a5fc852
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Apr 25 18:19:21 2020 +0200

    Complete replace easymock with mockito
---
 pom.xml                                            |  12 -
 .../archive/DefaultAssemblyArchiverTest.java       | 367 ++++++++------------
 .../archive/ManifestCreationFinalizerTest.java     |  27 +-
 .../phase/DependencySetAssemblyPhaseTest.java      |  94 +++---
 .../archive/phase/FileSetAssemblyPhaseTest.java    |  29 +-
 .../archive/phase/ModuleSetAssemblyPhaseTest.java  | 371 +++++++--------------
 .../archive/phase/RepositoryAssemblyPhaseTest.java | 165 ++-------
 .../assembly/archive/task/AddArtifactTaskTest.java | 150 ++++-----
 .../archive/task/AddDependencySetsTaskTest.java    | 201 ++++++-----
 .../archive/task/AddDirectoryTaskTest.java         | 157 +++------
 .../assembly/archive/task/AddFileSetsTaskTest.java | 113 ++-----
 .../MockAndControlForAddArtifactTask.java          | 148 --------
 .../MockAndControlForAddDependencySetsTask.java    | 231 -------------
 .../MockAndControlForAddFileSetsTask.java          |  69 ----
 .../interpolation/AssemblyInterpolatorTest.java    |  62 ++--
 .../assembly/utils/AssemblyFormatUtilsTest.java    |  30 +-
 16 files changed, 630 insertions(+), 1596 deletions(-)

diff --git a/pom.xml b/pom.xml
index 0b27d7c..1bf018e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -205,18 +205,6 @@ under the License.
       <scope>test</scope> 
     </dependency>
     <dependency>
-      <groupId>org.easymock</groupId>
-      <artifactId>easymockclassextension</artifactId>
-      <version>2.5.2</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>2.5.2</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>jdom</groupId>
       <artifactId>jdom</artifactId>
       <version>1.0</version>
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
index 8770006..dd41811 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
@@ -19,15 +19,12 @@ package org.apache.maven.plugins.assembly.archive;
  * under the License.
  */
 
-import static org.easymock.EasyMock.anyBoolean;
-import static org.easymock.EasyMock.anyInt;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
@@ -44,7 +41,6 @@ import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugins.assembly.archive.phase.AssemblyArchiverPhase;
-import org.apache.maven.plugins.assembly.artifact.DependencyResolver;
 import org.apache.maven.plugins.assembly.model.Assembly;
 import org.apache.maven.plugins.assembly.mojos.AbstractAssemblyMojo;
 import org.apache.maven.project.MavenProject;
@@ -55,7 +51,6 @@ import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.diags.NoOpArchiver;
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
-import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
 import org.codehaus.plexus.archiver.tar.TarArchiver;
 import org.codehaus.plexus.archiver.tar.TarLongFileMode;
 import org.codehaus.plexus.archiver.war.WarArchiver;
@@ -63,9 +58,6 @@ import org.codehaus.plexus.archiver.zip.ZipArchiver;
 import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
-import org.easymock.EasyMock;
-import org.easymock.classextension.EasyMockSupport;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -99,56 +91,32 @@ public class DefaultAssemblyArchiverTest
     public void setup()
         throws PlexusContainerException
     {
-        container = new DefaultPlexusContainer();
+        this.container = new DefaultPlexusContainer();
     }
 
     @Test( expected = InvalidAssemblerConfigurationException.class )
     public void failWhenAssemblyIdIsNull()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAssemblyArchiver macMgr = new MockAndControlForAssemblyArchiver( mm );
-
-        mm.replayAll();
-
-        final DefaultAssemblyArchiver archiver = createSubject( macMgr, null, null );
+        final DefaultAssemblyArchiver archiver = createSubject( null, null, null );
         archiver.createArchive( new Assembly(), "full-name", "zip", null, false, null, null );
-
-        mm.verifyAll();
     }
 
     @Test
     public void testCreateArchive()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAssemblyArchiver macMgr = new MockAndControlForAssemblyArchiver( mm );
-
-        macMgr.expectGetArchiver( "zip", Archiver.class );
-
-        final AssemblyArchiverPhase phase = mm.createControl().createMock( AssemblyArchiverPhase.class );
-
-        phase.execute( (Assembly) anyObject(), (Archiver) anyObject(), (AssemblerConfigurationSource) anyObject() );
+        Archiver archiver = mock( Archiver.class );
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "zip" ) ).thenReturn( archiver );
 
-        final File tempDir = new File ( temporaryFolder.getRoot(), "temp" );
+        final AssemblyArchiverPhase phase = mock( AssemblyArchiverPhase.class );
 
         final File outDir = temporaryFolder.newFolder( "out" );
 
-        macMgr.archiver.setDestFile( new File( outDir, "full-name.zip" ) );
-
-        try
-        {
-            macMgr.archiver.createArchive();
-        }
-        catch ( final ArchiverException | IOException e )
-        {
-            fail( "Should never happen" );
-        }
-
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
-        when( configSource.getTemporaryRootDirectory() ).thenReturn( tempDir );
+        when( configSource.getTemporaryRootDirectory() ).thenReturn( new File ( temporaryFolder.getRoot(), "temp" ) );
         when( configSource.getOverrideUid() ).thenReturn( 0 );
         when( configSource.getOverrideUserName() ).thenReturn( "root" );
         when( configSource.getOverrideGid() ).thenReturn( 0 );
@@ -160,9 +128,7 @@ public class DefaultAssemblyArchiverTest
         final Assembly assembly = new Assembly();
         assembly.setId( "id" );
 
-        mm.replayAll();
-
-        final DefaultAssemblyArchiver subject = createSubject( macMgr, Collections.singletonList( phase ), null );
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, Collections.singletonList( phase ), null );
 
         subject.createArchive( assembly, "full-name", "zip", configSource, false, null, null );
         
@@ -180,21 +146,29 @@ public class DefaultAssemblyArchiverTest
         verify( configSource ).isIgnoreDirFormatExtensions();
         verify( configSource ).isIgnorePermissions();
         verify( configSource, times( 2 ) ).isUpdateOnly();
-
-        mm.verifyAll();
+        
+        verify( phase ).execute( eq( assembly ), any( Archiver.class ), eq( configSource ) );
+
+        verify( archiver ).createArchive();
+        verify( archiver ).setDestFile( new File( outDir, "full-name.zip" ) );
+        verify( archiver, times( 2 ) ).setForced( true );
+        verify( archiver ).setIgnorePermissions( false );
+        verify( archiver ).setOverrideUid( 0 );
+        verify( archiver ).setOverrideUserName( "root" );
+        verify( archiver ).setOverrideGid( 0 );
+        verify( archiver ).setOverrideGroupName( "root" );
+        
+        verify( archiverManager ).getArchiver( "zip" );
     }
 
     @Test
     public void testCreateArchiver_ShouldConfigureArchiver()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
         final TestArchiverWithConfig archiver = new TestArchiverWithConfig();
 
-        macArchiverManager.expectGetArchiver( "dummy", archiver );
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "dummy" ) ).thenReturn( archiver );
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
 
@@ -216,29 +190,25 @@ public class DefaultAssemblyArchiverTest
         when( configSource.getOverrideGid() ).thenReturn( 0 );
         when( configSource.getOverrideGroupName() ).thenReturn( "root" );
 
-        mm.replayAll();
-
         final DefaultAssemblyArchiver subject =
-            createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+            createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createArchiver( "dummy", false, "finalName", configSource, null, false, null, null );
 
         assertEquals( simpleConfig, archiver.getSimpleConfig() );
-
-        mm.verifyAll();
+        
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "dummy" );
     }
 
     @Test
     public void testCreateArchiver_ShouldCreateTarArchiverWithNoCompression()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final TestTarArchiver ttArchiver = new TestTarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( ttArchiver );
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getTarLongFileMode() ).thenReturn( TarLongFileMode.fail.toString() );
@@ -248,10 +218,8 @@ public class DefaultAssemblyArchiverTest
         when( configSource.getOverrideUserName() ).thenReturn( "root" );
         when( configSource.getOverrideGid() ).thenReturn( 0 );
         when( configSource.getOverrideGroupName() ).thenReturn( "root" );
-        
-        mm.replayAll();
 
-        final DefaultAssemblyArchiver subject = createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createArchiver( "tar", false, "finalName", configSource, null, false, null, null );
 
@@ -270,20 +238,17 @@ public class DefaultAssemblyArchiverTest
         verify( configSource ).isIgnorePermissions();
         verify( configSource, times( 2 ) ).isUpdateOnly();
 
-        mm.verifyAll();
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
     @Test
     public void testCreateArchiver_ShouldCreateWarArchiverWithIgnoreWebxmlSetToFalse()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final TestWarArchiver twArchiver = new TestWarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "war", twArchiver );
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "war" ) ).thenReturn( twArchiver );
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getOverrideGid() ).thenReturn( 0 );
@@ -294,9 +259,7 @@ public class DefaultAssemblyArchiverTest
         when( configSource.getWorkingDirectory() ).thenReturn( new File( "." ) );
         when( configSource.isIgnorePermissions() ).thenReturn( true );
         
-        mm.replayAll();
-        
-        final DefaultAssemblyArchiver subject = createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createArchiver( "war", false, null, configSource, null, false, null, null );
 
@@ -315,20 +278,18 @@ public class DefaultAssemblyArchiverTest
         verify( configSource ).isDryRun();
         verify( configSource ).isIgnorePermissions();
         verify( configSource, times( 2 ) ).isUpdateOnly();
-
+        
+        verify( archiverManager ).getArchiver( "war" );
     }
 
     @Test
     public void testCreateArchiver_ShouldCreateZipArchiver()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final ZipArchiver archiver = new ZipArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "zip", archiver );
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "zip" ) ).thenReturn( archiver );
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getOverrideGid() ).thenReturn( 0 );
@@ -338,10 +299,8 @@ public class DefaultAssemblyArchiverTest
         when( configSource.getWorkingDirectory() ).thenReturn( new File( "." ) );
         when( configSource.isIgnorePermissions() ).thenReturn( true );
 
-        mm.replayAll();
-
         final DefaultAssemblyArchiver subject =
-            createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+            createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createArchiver( "zip", false, null, configSource, null, false, null, null );
 
@@ -355,177 +314,180 @@ public class DefaultAssemblyArchiverTest
         verify( configSource ).isDryRun();
         verify( configSource ).isIgnorePermissions();
         verify( configSource, times( 2 ) ).isUpdateOnly();
+        
+        verify( archiverManager ).getArchiver( "zip" );
     }
 
     @Test
     public void testCreateWarArchiver_ShouldDisableIgnoreWebxmlOption()
-        throws NoSuchArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final TestWarArchiver twArchiver = new TestWarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "war", twArchiver );
-
-        mm.replayAll();
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "war" ) ).thenReturn( twArchiver );
 
         final DefaultAssemblyArchiver subject =
-            createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+            createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createWarArchiver();
 
         assertFalse( twArchiver.ignoreWebxml );
+
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "war" );
     }
 
     @Test
     public void testCreateTarArchiver_ShouldNotInitializeCompression()
-        throws NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
+        final TestTarArchiver archiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
 
-        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createTarArchiver( "tar", TarLongFileMode.fail );
 
-        assertNull( ttArchiver.compressionMethod );
-        assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
+        assertNull( new TestTarArchiver().compressionMethod );
+        assertEquals( TarLongFileMode.fail, archiver.longFileMode );
 
-        mm.verifyAll();
-    }
-
-    private DefaultAssemblyArchiver createSubject( EasyMockSupport mm, TestTarArchiver ttArchiver )
-        throws NoSuchArchiverException
-    {
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
-
-        mm.replayAll();
-
-        return createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
     @Test
     public void testCreateTarArchiver_TarGzFormat_ShouldInitializeGZipCompression()
-        throws NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
-
-        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+        final TestTarArchiver archiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
+        
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createTarArchiver( "tar.gz", TarLongFileMode.fail );
 
-        assertEquals( TarArchiver.TarCompressionMethod.gzip, ttArchiver.compressionMethod );
-        assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
+        assertEquals( TarArchiver.TarCompressionMethod.gzip, archiver.compressionMethod );
+        assertEquals( TarLongFileMode.fail, archiver.longFileMode );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
     @Test
     public void testCreateTarArchiver_TgzFormat_ShouldInitializeGZipCompression()
-        throws NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
-
-        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+        final TestTarArchiver archiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
+        
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createTarArchiver( "tgz", TarLongFileMode.fail );
 
-        assertEquals( TarArchiver.TarCompressionMethod.gzip, ttArchiver.compressionMethod );
-        assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
+        assertEquals( TarArchiver.TarCompressionMethod.gzip, archiver.compressionMethod );
+        assertEquals( TarLongFileMode.fail, archiver.longFileMode );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
     @Test
     public void testCreateTarArchiver_TarBz2Format_ShouldInitializeBZipCompression()
-        throws NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
+        final TestTarArchiver archiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
 
-        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createTarArchiver( "tar.bz2", TarLongFileMode.fail );
 
-        assertEquals( TarArchiver.TarCompressionMethod.bzip2, ttArchiver.compressionMethod );
-        assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
+        assertEquals( TarArchiver.TarCompressionMethod.bzip2, archiver.compressionMethod );
+        assertEquals( TarLongFileMode.fail, archiver.longFileMode );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
     @Test
     public void testCreateTarArchiver_Tbz2Format_ShouldInitializeBZipCompression()
-        throws NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
+        final TestTarArchiver archiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
 
-        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createTarArchiver( "tbz2", TarLongFileMode.fail );
 
-        assertEquals( TarArchiver.TarCompressionMethod.bzip2, ttArchiver.compressionMethod );
-        assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
+        assertEquals( TarArchiver.TarCompressionMethod.bzip2, archiver.compressionMethod );
+        assertEquals( TarLongFileMode.fail, archiver.longFileMode );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
     @Test
     public void testCreateTarArchiver_TarXzFormat_ShouldInitializeXzCompression()
-        throws NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
+        final TestTarArchiver archiver = new TestTarArchiver();
 
-        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
+        
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createTarArchiver( "tar.xz", TarLongFileMode.fail );
 
-        assertEquals( TarArchiver.TarCompressionMethod.xz, ttArchiver.compressionMethod );
-        assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
+        assertEquals( TarArchiver.TarCompressionMethod.xz, archiver.compressionMethod );
+        assertEquals( TarLongFileMode.fail, archiver.longFileMode );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
     @Test
     public void testCreateTarArchiver_TXzFormat_ShouldInitializeXzCompression()
-        throws NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
+        final TestTarArchiver archiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
 
-        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createTarArchiver( "txz", TarLongFileMode.fail );
 
-        assertEquals( TarArchiver.TarCompressionMethod.xz, ttArchiver.compressionMethod );
-        assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
+        assertEquals( TarArchiver.TarCompressionMethod.xz, archiver.compressionMethod );
+        assertEquals( TarLongFileMode.fail, archiver.longFileMode );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
     @Test
     public void testCreateTarArchiver_InvalidFormat_ShouldFailWithInvalidCompression()
-        throws NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final TestTarArchiver ttArchiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( ttArchiver );
 
-        final DefaultAssemblyArchiver subject = createSubject( mm, ttArchiver );
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         try
         {
@@ -537,14 +499,15 @@ public class DefaultAssemblyArchiverTest
         {
             // expected.
         }
-
-        mm.verifyAll();
+        
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
-    private DefaultAssemblyArchiver createSubject( final MockAndControlForAssemblyArchiver macMgr,
+    private DefaultAssemblyArchiver createSubject( final ArchiverManager archiverManager,
                                                    final List<AssemblyArchiverPhase> phases, Logger logger )
     {
-        final DefaultAssemblyArchiver subject = new DefaultAssemblyArchiver( macMgr.archiverManager, phases );
+        final DefaultAssemblyArchiver subject = new DefaultAssemblyArchiver( archiverManager, phases );
 
         subject.setContainer( container );
 
@@ -622,68 +585,4 @@ public class DefaultAssemblyArchiverTest
         }
     }
 
-    private final class MockAndControlForAssemblyArchiver
-    {
-        final ArchiverManager archiverManager;
-
-        final DependencyResolver dependencyResolver;
-
-        private final EasyMockSupport mm;
-
-        Archiver archiver;
-
-        public MockAndControlForAssemblyArchiver( final EasyMockSupport mm )
-        {
-            this.mm = mm;
-            archiverManager = mm.createControl().createMock( ArchiverManager.class );
-
-            dependencyResolver = mm.createControl().createMock( DependencyResolver.class );
-
-        }
-
-        void createArchiver( final Class<? extends Archiver> archiverClass )
-        {
-            archiver = mm.createControl().createMock( archiverClass );
-
-            archiver.setForced( anyBoolean() );
-            expectLastCall().times( 2 );
-
-            archiver.setIgnorePermissions( false );
-            expectLastCall();
-
-            archiver.setOverrideUid( anyInt() );
-            expectLastCall();
-
-            archiver.setOverrideUserName( EasyMock.<String>anyObject() );
-            expectLastCall();
-
-            archiver.setOverrideGid( anyInt() );
-            expectLastCall();
-
-            archiver.setOverrideGroupName( EasyMock.<String>anyObject() );
-            expectLastCall();
-        }
-
-        void expectGetArchiver( final String format, final Class<? extends Archiver> archiverClass )
-        {
-            createArchiver( archiverClass );
-
-            try
-            {
-                expect( archiverManager.getArchiver( format ) ).andReturn( archiver );
-            }
-            catch ( final NoSuchArchiverException e )
-            {
-                Assert.fail( "should never happen" );
-            }
-
-        }
-
-        void expectGetArchiver( final String format, final Archiver archiver )
-            throws NoSuchArchiverException
-        {
-            expect( archiverManager.getArchiver( format ) ).andReturn( archiver );
-        }
-    }
-
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizerTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizerTest.java
index c349898..6d332d4 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizerTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizerTest.java
@@ -37,10 +37,8 @@ import org.apache.maven.archiver.MavenArchiveConfiguration;
 import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.archiver.ArchiveFinalizer;
-import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.jar.JarArchiver;
 import org.codehaus.plexus.util.IOUtil;
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -65,18 +63,10 @@ public class ManifestCreationFinalizerTest
     public void testShouldDoNothingWhenArchiverIsNotJarArchiver()
         throws Exception
     {
-        EasyMockSupport mm = new EasyMockSupport();
-
-        MockAndControlForArchiver macArchiver = new MockAndControlForArchiver( mm );
-
         MavenProject project = new MavenProject( new Model() );
         MavenArchiveConfiguration config = new MavenArchiveConfiguration();
 
-        mm.replayAll();
-
-        new ManifestCreationFinalizer( null, project, config ).finalizeArchiveCreation( macArchiver.archiver );
-
-        mm.verifyAll();
+        new ManifestCreationFinalizer( null, project, config ).finalizeArchiveCreation( null );
     }
 
     @Test
@@ -150,24 +140,9 @@ public class ManifestCreationFinalizerTest
 
         IOUtil.copy( reader, writer );
 
-        System.out.println( "Test Manifest:\n\n" + writer );
-
         assertTrue( writer.toString().contains( testKey + ": " + testValue ) );
 
         // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4823678
         ( (JarURLConnection) resource.openConnection() ).getJarFile().close();
     }
-
-    private final class MockAndControlForArchiver
-    {
-        final Archiver archiver;
-
-
-        MockAndControlForArchiver( EasyMockSupport mm )
-        {
-
-            archiver = mm.createMock( Archiver.class );
-        }
-    }
-
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/DependencySetAssemblyPhaseTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
index 13e361a..24d755b 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
@@ -19,26 +19,30 @@ package org.apache.maven.plugins.assembly.archive.phase;
  * under the License.
  */
 
+import static org.mockito.ArgumentMatchers.anyListOf;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugins.assembly.archive.ArchiveCreationException;
-import org.apache.maven.plugins.assembly.archive.task.testutils.MockAndControlForAddDependencySetsTask;
 import org.apache.maven.plugins.assembly.artifact.DependencyResolutionException;
 import org.apache.maven.plugins.assembly.artifact.DependencyResolver;
 import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
 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.classextension.EasyMockSupport;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.junit.MockitoJUnitRunner;
@@ -46,8 +50,17 @@ import org.mockito.junit.MockitoJUnitRunner;
 @RunWith( MockitoJUnitRunner.class )
 public class DependencySetAssemblyPhaseTest
 {
-
-    final EasyMockSupport mm = new EasyMockSupport();
+    private DependencySetAssemblyPhase phase;
+    
+    private DependencyResolver dependencyResolver;
+    
+    @Before
+    public void setUp()
+    {
+        this.dependencyResolver = mock( DependencyResolver.class );
+        
+        this.phase = new DependencySetAssemblyPhase( null, dependencyResolver, null );
+    }
 
     @Test
     public void testExecute_ShouldAddOneDependencyFromProject()
@@ -75,64 +88,47 @@ public class DependencySetAssemblyPhaseTest
         assembly.setIncludeBaseDirectory( false );
         assembly.addDependencySet( ds );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mm, project );
-
         project.setArtifacts( Collections.singleton( artifact ) );
 
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        macTask.expectResolveDependencySets();
-
-        mm.replayAll();
-
-        createPhase( macTask, logger, macTask.dependencyResolver ).execute( assembly, macTask.archiver,
-                                                                            null );
-
-        mm.verifyAll();
-    }
+        when( dependencyResolver.resolveDependencySets( eq( assembly ),
+                                                        isNull(AssemblerConfigurationSource.class),
+                                                        anyListOf( DependencySet.class ) ) ).thenReturn( new LinkedHashMap<DependencySet, Set<Artifact>>() );
+        
+        this.phase.execute( assembly, null, null );
 
-    private MavenProject newMavenProject( final String groupId, final String artifactId, final String version )
-    {
-        final Model model = new Model();
-        model.setGroupId( groupId );
-        model.setArtifactId( artifactId );
-        model.setVersion( version );
-
-        return new MavenProject( model );
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( dependencyResolver ).resolveDependencySets( eq( assembly ),
+                                                            isNull(AssemblerConfigurationSource.class),
+                                                            anyListOf( DependencySet.class ) );
     }
 
     @Test
     public void testExecute_ShouldNotAddDependenciesWhenProjectHasNone()
-        throws AssemblyFormattingException, ArchiveCreationException, IOException,
-        InvalidAssemblerConfigurationException, DependencyResolutionException
+        throws Exception
     {
         final Assembly assembly = new Assembly();
-
         assembly.setId( "test" );
         assembly.setIncludeBaseDirectory( false );
+        
+        when( dependencyResolver.resolveDependencySets( eq( assembly ), 
+                                                        isNull( AssemblerConfigurationSource.class ),
+                                                        anyListOf( DependencySet.class ) ) ).thenReturn( new LinkedHashMap<DependencySet, Set<Artifact>>() );
 
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        final MockAndControlForAddDependencySetsTask macTask = new MockAndControlForAddDependencySetsTask( mm, null );
+        this.phase.execute( assembly, null, null );
 
-        macTask.expectResolveDependencySets();
-
-        mm.replayAll();
-
-        createPhase( macTask, logger, macTask.dependencyResolver ).execute( assembly, null, null );
-
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( dependencyResolver ).resolveDependencySets( eq( assembly ),
+                                                            isNull( AssemblerConfigurationSource.class ),
+                                                            anyListOf( DependencySet.class ) );        
     }
-
-    private DependencySetAssemblyPhase createPhase( final MockAndControlForAddDependencySetsTask macTask,
-                                                    final Logger logger, DependencyResolver dr )
+    
+    private MavenProject newMavenProject( final String groupId, final String artifactId, final String version )
     {
-        final DependencySetAssemblyPhase phase = new DependencySetAssemblyPhase( null, dr, null );
-
-        phase.enableLogging( logger );
+        final Model model = new Model();
+        model.setGroupId( groupId );
+        model.setArtifactId( artifactId );
+        model.setVersion( version );
 
-        return phase;
+        return new MavenProject( model );
     }
-
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileSetAssemblyPhaseTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileSetAssemblyPhaseTest.java
index b9cfc0d..05f53e5 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileSetAssemblyPhaseTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileSetAssemblyPhaseTest.java
@@ -19,7 +19,6 @@ package org.apache.maven.plugins.assembly.archive.phase;
  * under the License.
  */
 
-import static org.easymock.EasyMock.expect;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
@@ -28,12 +27,11 @@ import static org.mockito.Mockito.when;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
-import org.apache.maven.plugins.assembly.archive.task.testutils.MockAndControlForAddFileSetsTask;
 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.archiver.Archiver;
 import org.codehaus.plexus.logging.Logger;
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -44,8 +42,6 @@ public class FileSetAssemblyPhaseTest
 {
     private FileSetAssemblyPhase phase;
     
-    final EasyMockSupport mm = new EasyMockSupport();
-    
     @Before
     public void setUp() 
     {
@@ -61,16 +57,9 @@ public class FileSetAssemblyPhaseTest
         throws Exception
     {
         final Assembly assembly = new Assembly();
-
         assembly.setId( "test" );
 
-        final MockAndControlForAddFileSetsTask macTask = new MockAndControlForAddFileSetsTask( mm );
-
-        mm.replayAll();
-
-        this.phase.execute( assembly, macTask.archiver, null );
-
-        mm.verifyAll();
+        this.phase.execute( assembly, null, null );
     }
 
     @Test
@@ -90,8 +79,6 @@ public class FileSetAssemblyPhaseTest
 
         assembly.addFileSet( fs );
 
-        final MockAndControlForAddFileSetsTask macTask = new MockAndControlForAddFileSetsTask( mm );
-
         final MavenProject project = new MavenProject( new Model() );
 
         final int dirMode = Integer.parseInt( "777", 8 );
@@ -100,8 +87,9 @@ public class FileSetAssemblyPhaseTest
         final int[] modes = { -1, -1, dirMode, fileMode };
 
         // the logger sends a debug message with this info inside the addFileSet(..) method..
-        expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( modes[0] );
-        expect( macTask.archiver.getOverrideFileMode() ).andReturn( modes[1] );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( modes[0] );
+        when( archiver.getOverrideFileMode() ).thenReturn( modes[1] );
     
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getProject() ).thenReturn( project );
@@ -109,9 +97,7 @@ public class FileSetAssemblyPhaseTest
         
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
-
-        this.phase.execute( assembly, macTask.archiver, configSource );
+        this.phase.execute( assembly, archiver, configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getArchiveBaseDirectory();
@@ -119,6 +105,7 @@ public class FileSetAssemblyPhaseTest
         verify( configSource, atLeastOnce() ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
 
-        mm.verifyAll();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
index 35073d7..b215699 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
@@ -20,14 +20,17 @@ package org.apache.maven.plugins.assembly.archive.phase;
  */
 
 import static java.util.Collections.singleton;
-import static org.easymock.EasyMock.anyInt;
-import static org.easymock.EasyMock.expect;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyListOf;
 import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.isNull;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
 
@@ -36,6 +39,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Set;
 
@@ -45,22 +49,18 @@ import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugins.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
-import org.apache.maven.plugins.assembly.archive.task.testutils.MockAndControlForAddArtifactTask;
-import org.apache.maven.plugins.assembly.archive.task.testutils.MockAndControlForAddDependencySetsTask;
-import org.apache.maven.plugins.assembly.archive.task.testutils.MockAndControlForAddFileSetsTask;
 import org.apache.maven.plugins.assembly.artifact.DependencyResolver;
 import org.apache.maven.plugins.assembly.model.Assembly;
+import org.apache.maven.plugins.assembly.model.DependencySet;
 import org.apache.maven.plugins.assembly.model.FileSet;
 import org.apache.maven.plugins.assembly.model.ModuleBinaries;
 import org.apache.maven.plugins.assembly.model.ModuleSet;
 import org.apache.maven.plugins.assembly.model.ModuleSources;
-import org.apache.maven.plugins.assembly.utils.TypeConversionUtils;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectBuilder;
+import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.logging.console.ConsoleLogger;
-import org.easymock.classextension.EasyMock;
-import org.easymock.classextension.EasyMockSupport;
+import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -72,8 +72,24 @@ public class ModuleSetAssemblyPhaseTest
 {
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder();
-
-    private final Logger logger = new ConsoleLogger( Logger.LEVEL_INFO, "test" );
+    
+    private ModuleSetAssemblyPhase phase;
+    
+    private DependencyResolver dependencyResolver;
+    
+    private ProjectBuilder projectBuilder;
+
+    private Logger logger;
+    
+    @Before
+    public void setUp()
+    {
+        this.dependencyResolver = mock( DependencyResolver.class );
+        
+        this.logger = mock( Logger.class );
+        
+        this.phase = new ModuleSetAssemblyPhase( projectBuilder, dependencyResolver, logger );
+    }
 
     @Test
     public void testIsDeprecatedModuleSourcesConfigPresent_ShouldCatchOutputDir()
@@ -81,9 +97,7 @@ public class ModuleSetAssemblyPhaseTest
         final ModuleSources sources = new ModuleSources();
         sources.setOutputDirectory( "outdir" );
 
-        final ModuleSetAssemblyPhase phase = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null );
-
-        assertTrue( phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
+        assertTrue( this.phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
     }
 
     @Test
@@ -92,9 +106,7 @@ public class ModuleSetAssemblyPhaseTest
         final ModuleSources sources = new ModuleSources();
         sources.addInclude( "**/included.txt" );
 
-        final ModuleSetAssemblyPhase phase = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null );
-
-        assertTrue( phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
+        assertTrue( this.phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
     }
 
     @Test
@@ -103,9 +115,7 @@ public class ModuleSetAssemblyPhaseTest
         final ModuleSources sources = new ModuleSources();
         sources.addExclude( "**/excluded.txt" );
 
-        final ModuleSetAssemblyPhase phase = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null );
-
-        assertTrue( phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
+        assertTrue( this.phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
     }
 
     @Test
@@ -114,9 +124,7 @@ public class ModuleSetAssemblyPhaseTest
         final ModuleSources sources = new ModuleSources();
         sources.setFileMode( "777" );
 
-        final ModuleSetAssemblyPhase phase = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null );
-
-        assertFalse( phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
+        assertFalse( this.phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
     }
 
     @Test
@@ -125,17 +133,13 @@ public class ModuleSetAssemblyPhaseTest
         final ModuleSources sources = new ModuleSources();
         sources.setDirectoryMode( "777" );
 
-        final ModuleSetAssemblyPhase phase = createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null );
-
-        assertFalse( phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
+        assertFalse( this.phase.isDeprecatedModuleSourcesConfigPresent( sources ) );
     }
 
     @Test
     public void testCreateFileSet_ShouldUseModuleDirOnlyWhenOutDirIsNull()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final Model model = new Model();
         model.setArtifactId( "artifact" );
 
@@ -161,12 +165,7 @@ public class ModuleSetAssemblyPhaseTest
 
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
-
-        final FileSet result =
-            createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).createFileSet( fs, sources,
-                                                                                                artifactProject,
-                                                                                                configSource );
+        final FileSet result = this.phase.createFileSet( fs, sources, artifactProject, configSource );
 
         assertEquals( "artifact/", result.getOutputDirectory() );
 
@@ -174,16 +173,12 @@ public class ModuleSetAssemblyPhaseTest
         verify( configSource, atLeastOnce() ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mm.verifyAll();
     }
 
     @Test
     public void testCreateFileSet_ShouldPrependModuleDirWhenOutDirIsProvided()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final Model model = new Model();
         model.setArtifactId( "artifact" );
 
@@ -210,12 +205,7 @@ public class ModuleSetAssemblyPhaseTest
         artifactProject.setArtifact( artifact );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project /* or artifactProject */ );
 
-        mm.replayAll();
-
-        final FileSet result =
-            createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).createFileSet( fs, sources,
-                                                                                                artifactProject,
-                                                                                                configSource );
+        final FileSet result = this.phase.createFileSet( fs, sources, artifactProject, configSource );
 
         assertEquals( "artifact/out/", result.getOutputDirectory() );
 
@@ -223,16 +213,12 @@ public class ModuleSetAssemblyPhaseTest
         verify( configSource, atLeastOnce() ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mm.verifyAll();
     }
 
     @Test
     public void testCreateFileSet_ShouldAddExcludesForSubModulesWhenExcludeSubModDirsIsTrue()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
 
         final FileSet fs = new FileSet();
@@ -256,11 +242,7 @@ public class ModuleSetAssemblyPhaseTest
         project.setArtifact( artifact );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
-
-        final FileSet result =
-            createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).createFileSet( fs, sources, project,
-                                                                                                configSource );
+        final FileSet result = this.phase.createFileSet( fs, sources, project, configSource );
 
         assertEquals( 1, result.getExcludes().size() );
         assertEquals( "submodule/**", result.getExcludes().get( 0 ) );
@@ -269,8 +251,6 @@ public class ModuleSetAssemblyPhaseTest
         verify( configSource, atLeastOnce() ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mm.verifyAll();
     }
 
     @Test
@@ -280,19 +260,15 @@ public class ModuleSetAssemblyPhaseTest
         final Assembly assembly = new Assembly();
         assembly.setIncludeBaseDirectory( false );
 
-        createPhase( null, null ).execute( assembly, null, null );
+        this.phase.execute( assembly, null, null );
     }
 
     @Test
     public void testExecute_ShouldAddOneModuleSetWithOneModuleInIt()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
 
-        final MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
-
         final MavenProject module = createProject( "group", "module", "version", project );
 
         Artifact artifact = mock( Artifact.class );
@@ -301,7 +277,6 @@ public class ModuleSetAssemblyPhaseTest
         module.setArtifact( artifact );
 
         final List<MavenProject> projects = new ArrayList<>();
-
         projects.add( module );
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
@@ -309,42 +284,32 @@ public class ModuleSetAssemblyPhaseTest
         when( configSource.getFinalName() ).thenReturn( "final-name" );
         when( configSource.getProject() ).thenReturn( project );
         
-        macTask.expectGetDestFile( new File( "junk" ) );
-        expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( 0777 );
-        expect( macTask.archiver.getOverrideFileMode() ).andReturn( 0777 );
-        macTask.archiver.setFileMode( anyInt() );
-        org.easymock.EasyMock.expectLastCall().times( 2 );
-
-        final int mode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
-
-        macTask.expectAddFile( moduleArtifactFile, "out/artifact", mode );
-
-        final Assembly assembly = new Assembly();
-        assembly.setIncludeBaseDirectory( false );
-
-        final ModuleSet ms = new ModuleSet();
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0777 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0777 );
 
         final ModuleBinaries bin = new ModuleBinaries();
-
         bin.setOutputFileNameMapping( "artifact" );
         bin.setOutputDirectory( "out" );
         bin.setFileMode( "777" );
         bin.setUnpack( false );
         bin.setIncludeDependencies( false );
 
+        final ModuleSet ms = new ModuleSet();
         ms.setBinaries( bin );
 
+        final Assembly assembly = new Assembly();
+        assembly.setIncludeBaseDirectory( false );
         assembly.addModuleSet( ms );
 
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        macTask.expectResolveDependencySets();
+        when( dependencyResolver.resolveDependencySets( eq( assembly ), 
+                                                        eq( ms ),
+                                                        eq( configSource ),
+                                                        anyListOf( DependencySet.class ) ) ).thenReturn( new LinkedHashMap<DependencySet, Set<Artifact>>() );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, module );
 
-        mm.replayAll();
-
-        final ModuleSetAssemblyPhase phase = createPhase( logger, macTask.dependencyResolver, null );
-        phase.execute( assembly, macTask.archiver, configSource );
+        this.phase.execute( assembly, archiver, configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getFinalName();
@@ -352,24 +317,29 @@ public class ModuleSetAssemblyPhaseTest
         verify( configSource, atLeastOnce() ).getProject();
         verify( configSource, atLeastOnce() ).getReactorProjects();
 
-        mm.verifyAll();
+        verify( archiver ).addFile( moduleArtifactFile, "out/artifact", 511 );
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver, times( 2 ) ).setFileMode( 511 );
+
+        verify( dependencyResolver ).resolveDependencySets( eq( assembly ), 
+                                                            eq( ms ),
+                                                            eq( configSource ), 
+                                                            anyListOf( DependencySet.class ) );
     }
 
     @Test
     public void testAddModuleBinaries_ShouldReturnImmediatelyWhenBinariesIsNull()
         throws Exception
     {
-        createPhase( null, null ).addModuleBinaries( null, null, null, null, null, null );
+        this.phase.addModuleBinaries( null, null, null, null, null, null );
     }
 
     @Test
     public void testAddModuleBinaries_ShouldFilterPomModule()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
-
         final ModuleBinaries binaries = new ModuleBinaries();
 
         binaries.setUnpack( false );
@@ -384,24 +354,14 @@ public class ModuleSetAssemblyPhaseTest
         project.setArtifact( artifact );
 
         final Set<MavenProject> projects = singleton( project );
-
-        mm.replayAll();
-
-        createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addModuleBinaries( null, null, binaries,
-                                                                                                projects,
-                                                                                                macTask.archiver,
-                                                                                                null );
-
-        mm.verifyAll();
+        
+        this.phase.addModuleBinaries( null, null, binaries, projects, null, null );
     }
 
     @Test
     public void testAddModuleBinaries_ShouldAddOneModuleAttachmentArtifactAndNoDeps()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getFinalName() ).thenReturn( "final-name" );
 
@@ -410,14 +370,10 @@ public class ModuleSetAssemblyPhaseTest
         final File artifactFile = temporaryFolder.newFile();
         when( artifact.getFile() ).thenReturn( artifactFile );
 
-        macTask.expectGetDestFile( new File( "junk" ) );
-        expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( 0222 );
-        expect( macTask.archiver.getOverrideFileMode() ).andReturn( 0222 );
-        macTask.archiver.setFileMode( anyInt() );
-        org.easymock.EasyMock.expectLastCall().times( 2 );
-        macTask.expectAddFile( artifactFile, "out/artifact",
-                               TypeConversionUtils.modeToInt( "777",
-                                                              new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
 
         final ModuleBinaries binaries = new ModuleBinaries();
 
@@ -433,33 +389,36 @@ public class ModuleSetAssemblyPhaseTest
 
         final Set<MavenProject> projects = singleton( project );
 
-        macTask.expectResolveDependencySets();
+        when( dependencyResolver.resolveDependencySets( isNull( Assembly.class ), 
+                                                        isNull( ModuleSet.class ),
+                                                        eq( configSource ),
+                                                        anyListOf( DependencySet.class ) ) ).thenReturn( new LinkedHashMap<DependencySet, Set<Artifact>>() );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
-
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        createPhase( logger, macTask.dependencyResolver, null ).addModuleBinaries( null, null, binaries, projects,
-                                                                                   macTask.archiver,
-                                                                                   configSource );
+        this.phase.addModuleBinaries( null, null, binaries, projects, archiver, configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
 
-        mm.verifyAll();
+        verify( archiver ).addFile( artifactFile, "out/artifact", 511 );
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver ).setFileMode( 511 );
+        verify( archiver ).setFileMode( 146 );
+
+        verify( dependencyResolver ).resolveDependencySets( isNull( Assembly.class ), 
+                                                            isNull( ModuleSet.class ),
+                                                            eq( configSource ), 
+                                                            anyListOf( DependencySet.class ) );
     }
 
     @Test
     public void testAddModuleBinaries_ShouldFailWhenOneModuleDoesntHaveAttachmentWithMatchingClassifier()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
-        
         Artifact artifact = mock( Artifact.class );
 
         final ModuleBinaries binaries = new ModuleBinaries();
@@ -475,14 +434,10 @@ public class ModuleSetAssemblyPhaseTest
 
         final Set<MavenProject> projects = singleton( project );
 
-        mm.replayAll();
-
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
         try
         {
-            createPhase( logger, null ).addModuleBinaries( null, null, binaries, projects, macTask.archiver,
-                                                           null );
+            
+            this.phase.addModuleBinaries( null, null, binaries, projects, null, null );
 
             fail( "Should throw an invalid configuration exception because of module with missing attachment." );
         }
@@ -492,18 +447,12 @@ public class ModuleSetAssemblyPhaseTest
                 + "Please exclude this module from the module-set.", e.getMessage());
             // should throw this because of missing attachment.
         }
-
-        mm.verifyAll();
     }
 
     @Test
     public void testAddModuleBinaries_ShouldAddOneModuleArtifactAndNoDeps()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
-
         Artifact artifact = mock( Artifact.class );
         final File artifactFile = temporaryFolder.newFile();
         when( artifact.getFile() ).thenReturn( artifactFile );
@@ -511,14 +460,10 @@ public class ModuleSetAssemblyPhaseTest
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getFinalName() ).thenReturn( "final-name" );
         
-        macTask.expectGetDestFile( new File( "junk" ) );
-        macTask.expectAddFile( artifactFile, "out/artifact",
-                               TypeConversionUtils.modeToInt( "777",
-                                                              new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
-        expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( 0222 );
-        expect( macTask.archiver.getOverrideFileMode() ).andReturn( 0222 );
-        macTask.archiver.setFileMode( anyInt() );
-        org.easymock.EasyMock.expectLastCall().times( 2 );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
 
         final ModuleBinaries binaries = new ModuleBinaries();
 
@@ -533,23 +478,30 @@ public class ModuleSetAssemblyPhaseTest
 
         final Set<MavenProject> projects = singleton( project );
 
-        macTask.expectResolveDependencySets();
+        when( dependencyResolver.resolveDependencySets( isNull( Assembly.class ), 
+                                                        isNull( ModuleSet.class ),
+                                                        any( AssemblerConfigurationSource.class ),
+                                                        anyListOf( DependencySet.class ) ) ).thenReturn( new LinkedHashMap<DependencySet, Set<Artifact>>() );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
-
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        createPhase( logger, macTask.dependencyResolver, null ).addModuleBinaries( null, null, binaries, projects,
-                                                                                   macTask.archiver,
-                                                                                   configSource );
+        this.phase.addModuleBinaries( null, null, binaries, projects, archiver, configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mm.verifyAll();
+        
+        verify( dependencyResolver ).resolveDependencySets( isNull( Assembly.class ), 
+                                                            isNull( ModuleSet.class ),
+                                                            any( AssemblerConfigurationSource.class ),
+                                                            anyListOf( DependencySet.class ) );
+
+        verify( archiver ).addFile( artifactFile, "out/artifact", 511 );
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver ).setFileMode( 511 );
+        verify( archiver ).setFileMode( 146);
     }
 
     @Test
@@ -559,8 +511,7 @@ public class ModuleSetAssemblyPhaseTest
         Artifact artifact = mock( Artifact.class );
         try
         {
-            createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ),
-                         null ).addModuleArtifact( artifact, null, null, null, null );
+            this.phase.addModuleArtifact( artifact, null, null, null, null );
 
             fail( "Expected ArchiveCreationException since artifact file is null." );
         }
@@ -574,10 +525,6 @@ public class ModuleSetAssemblyPhaseTest
     public void testAddModuleArtifact_ShouldAddOneArtifact()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm );
-
         Artifact artifact = mock( Artifact.class );
         final File artifactFile = temporaryFolder.newFile();
         when( artifact.getFile() ).thenReturn( artifactFile );
@@ -588,15 +535,10 @@ public class ModuleSetAssemblyPhaseTest
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getFinalName() ).thenReturn( "final-name" );
         
-        macTask.expectGetDestFile( new File( "junk" ) );
-        expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( 0222 );
-        expect( macTask.archiver.getOverrideFileMode() ).andReturn( 0222 );
-        macTask.archiver.setFileMode( anyInt() );
-        org.easymock.EasyMock.expectLastCall().times( 2 );
-
-        macTask.expectAddFile( artifactFile, "out/artifact",
-                               TypeConversionUtils.modeToInt( "777",
-                                                              new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
 
         final ModuleBinaries binaries = new ModuleBinaries();
         binaries.setOutputDirectory( "out" );
@@ -605,36 +547,32 @@ public class ModuleSetAssemblyPhaseTest
         binaries.setFileMode( "777" );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
-
-        createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ),
-                     null ).addModuleArtifact( artifact, project, macTask.archiver,
-                                               configSource, binaries );
+        this.phase.addModuleArtifact( artifact, project, archiver, configSource, binaries );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
 
-        mm.verifyAll();
+        verify( archiver ).addFile( artifactFile, "out/artifact", 511 );
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver ).setFileMode( 511 );
+        verify( archiver ).setFileMode( 146 );
     }
 
     @Test
     public void testAddModuleSourceFileSets_ShouldReturnImmediatelyIfSourcesIsNull()
         throws Exception
     {
-        createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).addModuleSourceFileSets( null, null, null,
-                                                                                                      null );
+        this.phase.addModuleSourceFileSets( null, null, null, null );
     }
 
     @Test
     public void testAddModuleSourceFileSets_ShouldAddOneSourceDirectory()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAddFileSetsTask macTask = new MockAndControlForAddFileSetsTask( mm );
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
@@ -644,34 +582,24 @@ public class ModuleSetAssemblyPhaseTest
 
         final Set<MavenProject> projects = singleton( project );
 
-        final ModuleSources sources = new ModuleSources();
-
         final FileSet fs = new FileSet();
         fs.setDirectory( "/src" );
         fs.setDirectoryMode( "777" );
         fs.setFileMode( "777" );
 
+        final ModuleSources sources = new ModuleSources();
         sources.addFileSet( fs );
 
-        final int mode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
-        final int[] modes = { -1, -1, mode, mode };
-
         // the logger sends a debug message with this info inside the addFileSet(..) method..
-        if ( true )
-        {
-            expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( modes[0] );
-            expect( macTask.archiver.getOverrideFileMode() ).andReturn( modes[1] );
-        }
-        
-        
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( -1 );
+        when( archiver.getOverrideFileMode() ).thenReturn( -1 );
         
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
-
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
+        when( logger.isDebugEnabled() ).thenReturn( true );
 
-        createPhase( logger, null ).addModuleSourceFileSets( sources, projects, macTask.archiver,
+        this.phase.addModuleSourceFileSets( sources, projects, archiver,
                                                              configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
@@ -680,15 +608,14 @@ public class ModuleSetAssemblyPhaseTest
         verify( configSource, atLeastOnce() ).getProject();
         verify( configSource, atLeastOnce() ).getMavenSession();
 
-        mm.verifyAll();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
     }
 
     @Test
     public void testGetModuleProjects_ShouldReturnNothingWhenReactorContainsOnlyCurrentProject()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
 
         final List<MavenProject> projects = Collections.singletonList( project );
@@ -700,8 +627,6 @@ public class ModuleSetAssemblyPhaseTest
         final ModuleSet moduleSet = new ModuleSet();
         moduleSet.setIncludeSubModules( true );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
             ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
@@ -710,16 +635,12 @@ public class ModuleSetAssemblyPhaseTest
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getReactorProjects();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mm.verifyAll();
     }
 
     @Test
     public void testGetModuleProjects_ShouldReturnNothingWhenReactorContainsTwoSiblingProjects()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
         final MavenProject project2 = createProject( "group", "artifact2", "version", null );
 
@@ -734,8 +655,6 @@ public class ModuleSetAssemblyPhaseTest
         final ModuleSet moduleSet = new ModuleSet();
         moduleSet.setIncludeSubModules( true );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
             ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
@@ -744,16 +663,12 @@ public class ModuleSetAssemblyPhaseTest
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getReactorProjects();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mm.verifyAll();
     }
 
     @Test
     public void testGetModuleProjects_ShouldReturnModuleOfCurrentProject()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
         final MavenProject project2 = createProject( "group", "artifact2", "version", project );
 
@@ -768,8 +683,6 @@ public class ModuleSetAssemblyPhaseTest
         final ModuleSet moduleSet = new ModuleSet();
         moduleSet.setIncludeSubModules( true );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
             ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
@@ -782,16 +695,12 @@ public class ModuleSetAssemblyPhaseTest
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getReactorProjects();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mm.verifyAll();
     }
 
     @Test
     public void testGetModuleProjects_ShouldReturnDescendentModulesOfCurrentProject()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
         final MavenProject project2 = createProject( "group", "artifact2", "version", project );
         final MavenProject project3 = createProject( "group", "artifact3", "version", project2 );
@@ -808,8 +717,6 @@ public class ModuleSetAssemblyPhaseTest
         final ModuleSet moduleSet = new ModuleSet();
         moduleSet.setIncludeSubModules( true );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
             ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
@@ -824,16 +731,12 @@ public class ModuleSetAssemblyPhaseTest
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getReactorProjects();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mm.verifyAll();
     }
 
     @Test
     public void testGetModuleProjects_ShouldExcludeModuleAndDescendentsTransitively()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
 
         Artifact artifact1 = mock( Artifact.class );
@@ -870,8 +773,6 @@ public class ModuleSetAssemblyPhaseTest
 
         moduleSet.addExclude( "group:artifact2" );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
             ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
@@ -880,8 +781,6 @@ public class ModuleSetAssemblyPhaseTest
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getReactorProjects();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mm.verifyAll();
     }
 
     private void verifyResultIs( final List<MavenProject> check, final Set<MavenProject> moduleProjects )
@@ -953,24 +852,4 @@ public class ModuleSetAssemblyPhaseTest
 
         return project;
     }
-
-    private ModuleSetAssemblyPhase createPhase( final Logger logger,
-                                                final MockAndControlForAddDependencySetsTask macTask )
-    {
-        ProjectBuilder projectBuilder = null;
-
-        if ( macTask != null )
-        {
-            projectBuilder = macTask.projectBuilder;
-        }
-
-        DependencyResolver dr = EasyMock.createMock( DependencyResolver.class );
-        return new ModuleSetAssemblyPhase( projectBuilder, dr, logger );
-    }
-
-    private ModuleSetAssemblyPhase createPhase( final Logger logger, DependencyResolver dr,
-                                                ProjectBuilder projectBuilder1 )
-    {
-        return new ModuleSetAssemblyPhase( projectBuilder1, dr, logger );
-    }
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/RepositoryAssemblyPhaseTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/RepositoryAssemblyPhaseTest.java
index 830c1ca..74dd87f 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/RepositoryAssemblyPhaseTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/RepositoryAssemblyPhaseTest.java
@@ -19,12 +19,11 @@ package org.apache.maven.plugins.assembly.archive.phase;
  * under the License.
  */
 
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-import static org.junit.Assert.fail;
+import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
 import java.io.File;
@@ -34,20 +33,16 @@ import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.model.Assembly;
 import org.apache.maven.plugins.assembly.model.Repository;
 import org.apache.maven.plugins.assembly.repository.RepositoryAssembler;
-import org.apache.maven.plugins.assembly.repository.RepositoryAssemblyException;
 import org.apache.maven.plugins.assembly.repository.RepositoryBuilderConfigSource;
 import org.apache.maven.plugins.assembly.repository.model.RepositoryInfo;
 import org.apache.maven.plugins.assembly.utils.TypeConversionUtils;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.archiver.Archiver;
-import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.FileSet;
-import org.codehaus.plexus.archiver.util.DefaultFileSet;
 import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
-import org.easymock.classextension.EasyMock;
-import org.easymock.classextension.EasyMockSupport;
+import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -60,45 +55,40 @@ public class RepositoryAssemblyPhaseTest
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder();
     
+    private RepositoryAssemblyPhase phase;
+    
+    private RepositoryAssembler repositoryAssembler;
+    
+    @Before
+    public void setUp()
+    {
+        this.repositoryAssembler = mock( RepositoryAssembler.class );
+        this.phase = new RepositoryAssemblyPhase( repositoryAssembler );
+        this.phase.enableLogging( mock( Logger.class ) );
+    }
+    
     @Test
     public void testExecute_ShouldNotIncludeRepositoryIfNonSpecifiedInAssembly()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForRepositoryAssembler macRepo = new MockAndControlForRepositoryAssembler( mm );
-        final MockAndControlForArchiver macArchiver = new MockAndControlForArchiver( mm );
-
-        final File tempRoot = temporaryFolder.getRoot();
-
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
-        when( configSource.getTemporaryRootDirectory() ).thenReturn( tempRoot );
+        when( configSource.getTemporaryRootDirectory() ).thenReturn( temporaryFolder.getRoot() );
 
         final Assembly assembly = new Assembly();
-
         assembly.setId( "test" );
 
-        mm.replayAll();
-
-        createPhase( macRepo.repositoryAssembler, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ).execute( assembly,
-                                                                                                             macArchiver.archiver,
-                                                                                                             configSource );
+        this.phase.execute( assembly, null, configSource );
         
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getTemporaryRootDirectory();
-
-        mm.verifyAll();
+        
+        verifyZeroInteractions( repositoryAssembler );
     }
 
     @Test
     public void testExecute_ShouldIncludeOneRepository()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForRepositoryAssembler macRepo = new MockAndControlForRepositoryAssembler( mm );
-        final MockAndControlForArchiver macArchiver = new MockAndControlForArchiver( mm );
-
         final File tempRoot = temporaryFolder.getRoot();
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
@@ -110,31 +100,24 @@ public class RepositoryAssemblyPhaseTest
         when( configSource.getTemporaryRootDirectory() ).thenReturn( tempRoot );
 
         final Assembly assembly = new Assembly();
-
         assembly.setId( "test" );
 
         final Repository repo = new Repository();
-
         repo.setOutputDirectory( "out" );
         repo.setDirectoryMode( "777" );
         repo.setFileMode( "777" );
+        assembly.addRepository( repo );
 
         final int mode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
 
-        final File outDir = new File( tempRoot, "out" );
-
-        macArchiver.expectModeChange( -1, -1, mode, mode, true );
-        macArchiver.expectAddDirectory( outDir, "out/", null, null );
-
-        macRepo.expectAssemble();
-
-        assembly.addRepository( repo );
+        final int defaultDirMode = -1;
+        final int defaultFileMode = -1;
 
-        mm.replayAll();
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( defaultDirMode );
+        when( archiver.getOverrideFileMode() ).thenReturn( defaultFileMode );
 
-        createPhase( macRepo.repositoryAssembler, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ).execute( assembly,
-                                                                                                             macArchiver.archiver,
-                                                                                                             configSource );
+        this.phase.execute( assembly, archiver, configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getCommandLinePropsInterpolator();
@@ -144,90 +127,16 @@ public class RepositoryAssemblyPhaseTest
         verify( configSource ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
         verify( configSource, atLeastOnce() ).getTemporaryRootDirectory();
-
-        mm.verifyAll();
-    }
-
-    private RepositoryAssemblyPhase createPhase( final RepositoryAssembler repositoryAssembler, final Logger logger )
-    {
-        final RepositoryAssemblyPhase phase = new RepositoryAssemblyPhase( repositoryAssembler );
-        phase.enableLogging( logger );
-
-        return phase;
-    }
-
-    private final class MockAndControlForArchiver
-    {
-        final Archiver archiver;
-
-        public MockAndControlForArchiver( final EasyMockSupport mockManager )
-        {
-
-            archiver = mockManager.createMock( Archiver.class );
-        }
-
-        public void expectAddDirectory( final File outDir, final String location, final String[] includes,
-                                        final String[] excludes )
-        {
-            try
-            {
-                final DefaultFileSet fs = new DefaultFileSet();
-                fs.setDirectory( outDir );
-                fs.setPrefix( location );
-                fs.setIncludes( includes );
-                fs.setExcludes( excludes );
-
-                archiver.addFileSet( (FileSet) anyObject() );
-            }
-            catch ( final ArchiverException e )
-            {
-                fail( "Should never happen." );
-            }
-
-            EasyMock.expectLastCall().atLeastOnce();
-        }
-
-        void expectModeChange( final int defaultDirMode, final int defaultFileMode, final int dirMode,
-                               final int fileMode, final boolean expectTwoSets )
-        {
-            expect( archiver.getOverrideDirectoryMode() ).andReturn( defaultDirMode );
-
-            expect( archiver.getOverrideFileMode() ).andReturn( defaultFileMode );
-
-            if ( expectTwoSets )
-            {
-                archiver.setDirectoryMode( dirMode );
-                archiver.setFileMode( fileMode );
-            }
-
-            archiver.setDirectoryMode( defaultDirMode );
-            archiver.setFileMode( defaultFileMode );
-        }
-    }
-
-    private final class MockAndControlForRepositoryAssembler
-    {
-        final RepositoryAssembler repositoryAssembler;
-
-        MockAndControlForRepositoryAssembler( final EasyMockSupport mockManager )
-        {
-            repositoryAssembler = mockManager.createMock( RepositoryAssembler.class );
-        }
-
-        public void expectAssemble()
-        {
-            try
-            {
-                repositoryAssembler.buildRemoteRepository( (File) anyObject(), (RepositoryInfo) anyObject(),
-                                                           (RepositoryBuilderConfigSource) anyObject() );
-                EasyMock.expectLastCall().atLeastOnce();
-            }
-            catch ( final RepositoryAssemblyException e )
-            {
-                fail( "Should never happen" );
-            }
-
-        }
+        
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver ).setDirectoryMode( mode );
+        verify( archiver ).setFileMode( mode );
+        verify( archiver ).setDirectoryMode( defaultDirMode );
+        verify( archiver ).setFileMode( defaultFileMode );
+        verify( archiver ).addFileSet( any( FileSet.class ) );        
+
+        verify( repositoryAssembler ).buildRemoteRepository( any( File.class ), any( RepositoryInfo.class ),
+                                                             any( RepositoryBuilderConfigSource.class ) );
     }
-
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTaskTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTaskTest.java
index 3e44596..a9b8af8 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTaskTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTaskTest.java
@@ -19,10 +19,9 @@ package org.apache.maven.plugins.assembly.archive.task;
  * under the License.
  */
 
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-import static org.junit.Assert.fail;
+import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.isNull;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -38,16 +37,14 @@ import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
-import org.apache.maven.plugins.assembly.archive.task.testutils.MockAndControlForAddArtifactTask;
 import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugins.assembly.model.DependencySet;
 import org.apache.maven.plugins.assembly.utils.TypeConversionUtils;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.archiver.ArchivedFileSet;
-import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -62,10 +59,6 @@ public class AddArtifactTaskTest
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder();
 
-    private EasyMockSupport mockManager;
-
-    private MockAndControlForAddArtifactTask mac;
-    
     private MavenProject mainProject;
     
     private AssemblerConfigurationSource configSource;
@@ -74,8 +67,6 @@ public class AddArtifactTaskTest
     public void setUp()
         throws IOException
     {
-        mockManager = new EasyMockSupport();
-
         Model model = new Model();
         model.setGroupId( "group" );
         model.setArtifactId( "main" );
@@ -83,8 +74,6 @@ public class AddArtifactTaskTest
 
         this.mainProject = new MavenProject( model );
 
-        mac = new MockAndControlForAddArtifactTask( mockManager );
-        
         this.configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getFinalName() ).thenReturn( "final-name" );
     }
@@ -107,24 +96,25 @@ public class AddArtifactTaskTest
         File artifactFile = temporaryFolder.newFile();
         when( artifact.getFile() ).thenReturn( artifactFile );
 
-        expect( mac.archiver.getOverrideDirectoryMode() ).andReturn( 0222 );
-        expect( mac.archiver.getOverrideFileMode() ).andReturn( 0222 );
-        mac.expectGetDestFile( new File( "junk" ) );
-        mac.expectAddFile( artifactFile, outputLocation );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
         
         when( configSource.getProject() ).thenReturn( mainProject );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, mainProject );
 
-        mockManager.replayAll();
-
         AddArtifactTask task = createTask( artifact );
 
-        task.execute( mac.archiver, configSource );
+        task.execute( archiver, configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getProject();
 
-        mockManager.verifyAll();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).addFile( artifactFile, outputLocation );
     }
 
     @Test
@@ -143,17 +133,16 @@ public class AddArtifactTaskTest
         File artifactFile = temporaryFolder.newFile();
         when( artifact.getFile() ).thenReturn( artifactFile );
 
-        expect( mac.archiver.getOverrideDirectoryMode() ).andReturn( 0222 );
-        expect( mac.archiver.getOverrideFileMode() ).andReturn( 0222 );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
 
-        mac.expectGetDestFile( new File( "junk" ) );
-        mac.expectAddFile( artifactFile, outputDir + artifactId + "-" + version + "." + ext );
         when( configSource.getProject() ).thenReturn( mainProject );
+
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, mainProject );
-        mockManager.replayAll();
 
-        AddArtifactTask task =
-            new AddArtifactTask( artifact, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null );
+        AddArtifactTask task = new AddArtifactTask( artifact, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null );
         task.setOutputDirectory( outputDir );
         task.setFileNameMapping( new DependencySet().getOutputFileNameMapping() );
 
@@ -164,12 +153,15 @@ public class AddArtifactTaskTest
         MavenProject project = new MavenProject( model );
         task.setProject( project );
 
-        task.execute( mac.archiver, configSource );
+        task.execute( archiver, configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getProject();
-
-        mockManager.verifyAll();
+        
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).addFile( artifactFile, outputDir + artifactId + "-" + version + "." + ext );
     }
 
     private AddArtifactTask createTask( Artifact artifact )
@@ -185,75 +177,79 @@ public class AddArtifactTaskTest
     public void testShouldAddArchiveFileWithUnpack()
         throws ArchiveCreationException, AssemblyFormattingException, IOException
     {
-        mac.expectModeChange( -1, -1, -1, -1, 1 );
+        final int originalDirMode = -1;
+        final int originalFileMode = -1;
+
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( originalDirMode );
+        when( archiver.getOverrideFileMode() ).thenReturn( originalFileMode );
+        
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, mainProject );
 
         Artifact artifact = mock( Artifact.class );
         when( artifact.getFile() ).thenReturn( temporaryFolder.newFile() );
         
-        mac.expectGetDestFile( new File( "junk" ) );
-        try
-        {
-            mac.archiver.addArchivedFileSet( (ArchivedFileSet) anyObject(), (Charset) anyObject() );
-        }
-        catch ( ArchiverException e )
-        {
-            fail( "Should never happen." );
-        }
-
-        mockManager.replayAll();
-
         AddArtifactTask task = createTask( artifact );
-
         task.setUnpack( true );
 
-        task.execute( mac.archiver, configSource );
-
-        mockManager.verifyAll();
+        task.execute( archiver, configSource );
+        
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiver ).addArchivedFileSet( any( ArchivedFileSet.class ), isNull( Charset.class ) );
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
     }
 
     @Test
     public void testShouldAddArchiveFileWithUnpackAndModes()
         throws ArchiveCreationException, AssemblyFormattingException, IOException
     {
-        int directoryMode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
-        int fileMode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
-
-        mac.expectModeChange( -1, -1, directoryMode, fileMode, 2 );
+        final int directoryMode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
+        final int fileMode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
+        final int originalDirMode = -1;
+        final int originalFileMode = -1;
+        
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( originalDirMode );
+        when( archiver.getOverrideFileMode() ).thenReturn( originalFileMode );
+        
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, mainProject );
 
         Artifact artifact = mock( Artifact.class );
         when( artifact.getFile() ).thenReturn( temporaryFolder.newFile() );
-        
-        mac.expectGetDestFile( new File( "junk" ) );
-        try
-        {
-            mac.archiver.addArchivedFileSet( (ArchivedFileSet) anyObject(), (Charset) anyObject() );
-        }
-        catch ( ArchiverException e )
-        {
-            fail( "Should never happen." );
-        }
-
-        mockManager.replayAll();
 
         AddArtifactTask task = createTask( artifact );
-
         task.setUnpack( true );
-
         task.setDirectoryMode( directoryMode );
         task.setFileMode( fileMode );
 
-        task.execute( mac.archiver, configSource );
+        task.execute( archiver, configSource );
 
-        mockManager.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiver ).addArchivedFileSet( any( ArchivedFileSet.class ), isNull( Charset.class ) );
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver ).setDirectoryMode( directoryMode );
+        verify( archiver ).setFileMode( fileMode );
+        verify( archiver ).setDirectoryMode( originalDirMode );
+        verify( archiver ).setFileMode( originalFileMode );
     }
 
     @Test
     public void testShouldAddArchiveFileWithUnpackIncludesAndExcludes()
         throws ArchiveCreationException, AssemblyFormattingException, IOException
     {
-        mac.expectModeChange( -1, -1, -1, -1, 1 );
+        final int originalDirMode = -1;
+        final int originalFileMode = -1;
+        
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( originalDirMode );
+        when( archiver.getOverrideFileMode() ).thenReturn( originalFileMode );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
 
         String[] includes = { "**/*.txt" };
         String[] excludes = { "**/README.txt" };
@@ -261,21 +257,19 @@ public class AddArtifactTaskTest
         Artifact artifact = mock( Artifact.class );
         when( artifact.getFile() ).thenReturn( temporaryFolder.newFile() );
 
-        mac.expectGetDestFile( new File( "junk" ) );
-        mac.expectAddArchivedFileSet();
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, mainProject );
 
-        mockManager.replayAll();
-
         AddArtifactTask task = createTask( artifact );
-
         task.setUnpack( true );
         task.setIncludes( Arrays.asList( includes ) );
         task.setExcludes( Arrays.asList( excludes ) );
 
-        task.execute( mac.archiver, configSource );
+        task.execute( archiver, configSource );
 
-        mockManager.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiver ).addArchivedFileSet( any( ArchivedFileSet.class ), isNull( Charset.class ) );
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
     }
-
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java
index e03ad81..654ffba 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java
@@ -19,13 +19,14 @@ package org.apache.maven.plugins.assembly.archive.task;
  * under the License.
  */
 
-import static org.easymock.EasyMock.anyInt;
-import static org.easymock.EasyMock.expect;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.isNull;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -37,16 +38,18 @@ import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugins.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
-import org.apache.maven.plugins.assembly.archive.task.testutils.MockAndControlForAddDependencySetsTask;
 import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugins.assembly.model.DependencySet;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.project.ProjectBuildingResult;
+import org.codehaus.plexus.archiver.ArchivedFileSet;
+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.EasyMock;
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -55,6 +58,7 @@ import org.mockito.junit.MockitoJUnitRunner;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.Charset;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Properties;
@@ -66,8 +70,6 @@ public class AddDependencySetsTaskTest
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder();
 
-    private final EasyMockSupport mockManager = new EasyMockSupport();
-
     @Test
     public void testAddDependencySet_ShouldInterpolateDefaultOutputFileNameMapping()
         throws Exception
@@ -113,49 +115,54 @@ public class AddDependencySetsTaskTest
 
         depProject.setArtifact( depArtifact );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mockManager, mainProject );
-
-        macTask.expectBuildFromRepository( depProject );
+        ProjectBuildingResult pbr = mock( ProjectBuildingResult.class );
+        when( pbr.getProject() ).thenReturn( depProject );
+        
+        final ProjectBuilder projectBuilder = mock( ProjectBuilder.class );
+        when( projectBuilder.build( any( Artifact.class ), any( ProjectBuildingRequest.class ) ) ).thenReturn( pbr );
 
-        final MavenSession session = mockManager.createMock( MavenSession.class );
-        final ProjectBuildingRequest projectBuildingRequest = mockManager.createMock( ProjectBuildingRequest.class );
-        expect( session.getProjectBuildingRequest() ).andReturn( projectBuildingRequest );
-        expect( session.getExecutionProperties() ).andReturn( new Properties() ).times( 2 );
+        final MavenSession session = mock( MavenSession.class );
+        when( session.getProjectBuildingRequest() ).thenReturn( mock( ProjectBuildingRequest.class ) );
+        when( session.getExecutionProperties() ).thenReturn( new Properties() );
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getFinalName() ).thenReturn( mainAid + "-" + mainVer );
         when( configSource.getProject() ).thenReturn( mainProject );
         when( configSource.getMavenSession() ).thenReturn( session );
 
-        macTask.expectGetDestFile( new File( "junk" ) );
-        macTask.expectAddFile( newFile, outDir + depAid + "-" + depVer + "." + depExt, 10 );
-
-        macTask.archiver.setFileMode( anyInt() );
-        EasyMock.expectLastCall().times( 2 );
-        expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( 0222 );
-        expect( macTask.archiver.getOverrideFileMode() ).andReturn( 0222 );
-        macTask.archiver.setDirectoryMode( anyInt() );
-        EasyMock.expectLastCall().times( 2 );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
 
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, mainProject );
 
-        mockManager.replayAll();
-
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
         final AddDependencySetsTask task =
             new AddDependencySetsTask( Collections.singletonList( ds ), Collections.singleton( depArtifact ),
-                                       depProject, macTask.projectBuilder, logger );
+                                       depProject, projectBuilder, logger );
 
-        task.addDependencySet( ds, macTask.archiver, configSource );
+        task.addDependencySet( ds, archiver, configSource );
         
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
-
-        mockManager.verifyAll();
+        
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).addFile( newFile, outDir + depAid + "-" + depVer + "." + depExt, 10 );
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver ).setDirectoryMode( 10 );
+        verify( archiver ).setDirectoryMode( 146 );
+        verify( archiver ).setFileMode( 10 );
+        verify( archiver ).setFileMode( 146 );
+
+        verify( session ).getProjectBuildingRequest();
+        verify( session, times( 2 ) ).getExecutionProperties();
+        
+        verify( projectBuilder ).build( any( Artifact.class ), any( ProjectBuildingRequest.class ) );
     }
 
     @Test
@@ -164,22 +171,15 @@ public class AddDependencySetsTaskTest
     {
         final MavenProject project = new MavenProject( new Model() );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mockManager );
-
         final DependencySet ds = new DependencySet();
         ds.setOutputDirectory( "/out" );
 
-        mockManager.replayAll();
-
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
         final AddDependencySetsTask task =
-            new AddDependencySetsTask( Collections.singletonList( ds ), null, project, macTask.projectBuilder, logger );
+            new AddDependencySetsTask( Collections.singletonList( ds ), null, project, null, logger );
 
         task.addDependencySet( ds, null, null );
-
-        mockManager.verifyAll();
     }
 
     // TODO: Find a better way of testing the project-stubbing behavior when a ProjectBuildingException takes place.
@@ -191,9 +191,6 @@ public class AddDependencySetsTaskTest
 
         final ProjectBuildingException pbe = new ProjectBuildingException( "test", "Test error.", new Throwable() );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mockManager, project );
-
         final String aid = "test-dep";
         final String version = "2.0-SNAPSHOT";
         final String type = "jar";
@@ -210,52 +207,56 @@ public class AddDependencySetsTaskTest
 
         final File destFile = new File( "assembly-dep-set.zip" );
 
-        macTask.expectGetDestFile( destFile );
-        macTask.expectBuildFromRepository( pbe );
-        final MavenSession session = mockManager.createMock( MavenSession.class );
-        final ProjectBuildingRequest projectBuildingRequest = mockManager.createMock( ProjectBuildingRequest.class );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( destFile );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
 
-        expect( session.getProjectBuildingRequest() ).andReturn( projectBuildingRequest );
-        expect( session.getExecutionProperties() ).andReturn( new Properties() ).times( 2 );
+        final ProjectBuilder projectBuilder = mock( ProjectBuilder.class );
+        when( projectBuilder.build( any(Artifact.class), any(ProjectBuildingRequest.class) ) ).thenThrow( pbe );
+        
+        final MavenSession session = mock( MavenSession.class );
+        when( session.getProjectBuildingRequest() ).thenReturn( mock( ProjectBuildingRequest.class ) );
+        when( session.getExecutionProperties() ).thenReturn( new Properties() );
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getFinalName() ).thenReturn( "final-name" );
         when( configSource.getMavenSession() ).thenReturn( session );
         when( configSource.getProject() ).thenReturn( project );
         
-        macTask.expectAddFile( file, "out/" + aid + "-" + version + "." + type );
-
-        expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( 0222 );
-        expect( macTask.archiver.getOverrideFileMode() ).andReturn( 0222 );
 
         final DependencySet ds = new DependencySet();
         ds.setOutputDirectory( "/out" );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mockManager.replayAll();
-
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
         final AddDependencySetsTask task =
             new AddDependencySetsTask( Collections.singletonList( ds ), Collections.singleton( depArtifact ),
-                                       project, macTask.projectBuilder, logger );
+                                       project, projectBuilder, logger );
 
-        task.addDependencySet( ds, macTask.archiver, configSource );
+        task.addDependencySet( ds, archiver, configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
         verify( configSource, atLeastOnce() ).getProject();
+        
+        verify( archiver ).addFile( file, "out/" + aid + "-" + version + "." + type );
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+
+        verify( session ).getProjectBuildingRequest();
+        verify( session, times( 2 ) ).getExecutionProperties();
 
-        mockManager.verifyAll();
+        verify( projectBuilder ).build( any(Artifact.class), any(ProjectBuildingRequest.class) );
     }
 
     @Test
     public void testAddDependencySet_ShouldAddOneDependencyFromProjectWithoutUnpacking()
-        throws AssemblyFormattingException, ArchiveCreationException, IOException,
-        InvalidAssemblerConfigurationException
+        throws Exception
     {
-        
         verifyOneDependencyAdded( "out", false );
     }
 
@@ -267,8 +268,8 @@ public class AddDependencySetsTaskTest
     }
 
     private void verifyOneDependencyAdded( final String outputLocation, final boolean unpack )
-        throws AssemblyFormattingException, ArchiveCreationException, IOException,
-        InvalidAssemblerConfigurationException
+        throws AssemblyFormattingException, ArchiverException, ArchiveCreationException, IOException,
+        InvalidAssemblerConfigurationException, ProjectBuildingException
     {
         final MavenProject project = new MavenProject( new Model() );
 
@@ -281,13 +282,9 @@ public class AddDependencySetsTaskTest
         ds.setDirectoryMode( Integer.toString( 10, 8 ) );
         ds.setFileMode( Integer.toString( 10, 8 ) );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mockManager, project );
-        
-        final MavenSession session = mockManager.createMock( MavenSession.class );
-        final ProjectBuildingRequest projectBuildingRequest = mockManager.createMock( ProjectBuildingRequest.class );
-
-        expect( session.getProjectBuildingRequest() ).andReturn( projectBuildingRequest );
+        final MavenSession session = mock( MavenSession.class );
+        when( session.getProjectBuildingRequest() ).thenReturn( mock( ProjectBuildingRequest.class ) );
+        when( session.getExecutionProperties() ).thenReturn( new Properties() );
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getMavenSession() ).thenReturn( session );
@@ -297,52 +294,65 @@ public class AddDependencySetsTaskTest
         final File artifactFile = temporaryFolder.newFile();
         when( artifact.getFile() ).thenReturn( artifactFile );
 
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
+
         if ( unpack )
         {
-            macTask.expectAddArchivedFileSet();
-            expect( session.getExecutionProperties() ).andReturn( new Properties() );
+            
         }
         else
         {
-            expect( session.getExecutionProperties() ).andReturn( new Properties() ).times( 2 );
             when( configSource.getProject() ).thenReturn( project );
-            macTask.expectAddFile( artifactFile, outputLocation + "/artifact", 10 );
         }
 
-        macTask.expectGetDestFile( new File( "junk" ) );
 
         final MavenProject depProject = new MavenProject( new Model() );
 
-        macTask.expectBuildFromRepository( depProject );
-        macTask.archiver.setFileMode( anyInt() );
-        EasyMock.expectLastCall().times( 2 );
-        expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( 0222 );
-        expect( macTask.archiver.getOverrideFileMode() ).andReturn( 0222 );
-        macTask.archiver.setDirectoryMode( anyInt() );
-        EasyMock.expectLastCall().times( 2 );
+        ProjectBuildingResult pbr = mock( ProjectBuildingResult.class );
+        when( pbr.getProject() ).thenReturn( depProject );
+        
+        final ProjectBuilder projectBuilder = mock( ProjectBuilder.class );
+        when( projectBuilder.build( any( Artifact.class ), any( ProjectBuildingRequest.class ) ) ).thenReturn( pbr );
 
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
         final AddDependencySetsTask task = new AddDependencySetsTask( Collections.singletonList( ds ),
                                                                       Collections.singleton(
                                                                           artifact ), project,
-                                                                      macTask.projectBuilder, logger );
+                                                                      projectBuilder, logger );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mockManager.replayAll();
-
-        task.addDependencySet( ds, macTask.archiver, configSource );
+        task.addDependencySet( ds, archiver, configSource );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
         
-        if ( !unpack )
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver ).setFileMode( 10 );
+        verify( archiver ).setFileMode( 146 );
+        verify( archiver ).setDirectoryMode( 10 );
+        verify( archiver ).setDirectoryMode( 146 );
+        
+        verify( session ).getProjectBuildingRequest();
+        verify( session, atLeastOnce() ).getExecutionProperties();
+        
+        verify( projectBuilder ).build( any( Artifact.class ), any( ProjectBuildingRequest.class ) );
+        
+        if ( unpack )
         {
+            verify( archiver ).addArchivedFileSet( any( ArchivedFileSet.class ), isNull( Charset.class ) );
+        }
+        else
+        {
+            verify( archiver ).addFile( artifactFile, outputLocation + "/artifact", 10 );
             verify( configSource, atLeastOnce() ).getProject();
         }
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -351,9 +361,6 @@ public class AddDependencySetsTaskTest
     {
         final MavenProject project = new MavenProject( new Model() );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mockManager );
-
         Artifact artifact = mock( Artifact.class );
         project.setArtifacts( Collections.singleton( artifact ) );
 
@@ -361,20 +368,16 @@ public class AddDependencySetsTaskTest
 
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
-        mockManager.replayAll();
-
         final AddDependencySetsTask task = new AddDependencySetsTask( Collections.singletonList( dependencySet ),
                                                                       Collections.singleton(
                                                                       artifact ), project,
-                                                                      macTask.projectBuilder, logger );
+                                                                      null, logger );
 
         final Set<Artifact> result = task.resolveDependencyArtifacts( dependencySet );
 
         assertNotNull( result );
         assertEquals( 1, result.size() );
         assertSame( artifact, result.iterator().next() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -405,8 +408,6 @@ public class AddDependencySetsTaskTest
 
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
-        mockManager.replayAll();
-
         final AddDependencySetsTask task =
             new AddDependencySetsTask( Collections.singletonList( dependencySet ), artifacts, project, null, logger );
 
@@ -415,8 +416,6 @@ public class AddDependencySetsTaskTest
         assertNotNull( result );
         assertEquals( 1, result.size() );
         assertSame( am1, result.iterator().next() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -447,8 +446,6 @@ public class AddDependencySetsTaskTest
 
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
-        mockManager.replayAll();
-
         final AddDependencySetsTask task =
             new AddDependencySetsTask( Collections.singletonList( dependencySet ), artifacts, project, null, logger );
 
@@ -457,8 +454,6 @@ public class AddDependencySetsTaskTest
         assertNotNull( result );
         assertEquals( 1, result.size() );
         assertSame( am1, result.iterator().next() );
-
-        mockManager.verifyAll();
     }
 
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDirectoryTaskTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDirectoryTaskTest.java
index f41775d..11fcbd1 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDirectoryTaskTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDirectoryTaskTest.java
@@ -1,5 +1,6 @@
 package org.apache.maven.plugins.assembly.archive.task;
 
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -19,10 +20,16 @@ package org.apache.maven.plugins.assembly.archive.task;
  * under the License.
  */
 
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.util.Collections;
+
 import org.codehaus.plexus.archiver.Archiver;
-import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.FileSet;
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -30,46 +37,37 @@ import org.junit.rules.TemporaryFolder;
 import org.junit.runner.RunWith;
 import org.mockito.junit.MockitoJUnitRunner;
 
-import java.io.File;
-import java.util.Collections;
-
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-import static org.junit.Assert.fail;
-
 @RunWith( MockitoJUnitRunner.class )
 public class AddDirectoryTaskTest
 {
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder();
 
-    private EasyMockSupport mockManager;
-
     private Archiver archiver;
 
     @Before
     public void setUp()
     {
-        mockManager = new EasyMockSupport();
-
-        archiver = mockManager.createMock( Archiver.class );
+        this.archiver = mock( Archiver.class );
     }
 
     @Test
     public void testAddDirectory_ShouldNotAddDirectoryIfNonExistent()
         throws Exception
     {
-        File dir = new File( temporaryFolder.getRoot(), "non-existent." + System.currentTimeMillis() );
-
-        configureModeExpectations( -1, -1, -1, -1, false );
+        final int defaultDirMode = -1;
+        final int defaultFileMode = -1;
 
-        mockManager.replayAll();
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( defaultDirMode );
+        when( archiver.getOverrideFileMode() ).thenReturn( defaultFileMode );
 
-        AddDirectoryTask task = new AddDirectoryTask( dir );
+        AddDirectoryTask task = new AddDirectoryTask( new File( temporaryFolder.getRoot(), "non-existent" ) );
 
         task.execute( archiver );
 
-        mockManager.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
     }
 
     @Test
@@ -77,121 +75,70 @@ public class AddDirectoryTaskTest
     public void testAddDirectory_ShouldAddDirectory()
         throws Exception
     {
-        File dir = temporaryFolder.getRoot();
-
-        try
-        {
-            archiver.addFileSet( (FileSet) anyObject() );
-        }
-        catch ( ArchiverException e )
-        {
-            fail( "Should never happen." );
-        }
-
-        configureModeExpectations( -1, -1, -1, -1, false );
-
-        mockManager.replayAll();
+        final int defaultDirMode = -1;
+        final int defaultFileMode = -1;
 
-        AddDirectoryTask task = new AddDirectoryTask( dir );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( defaultDirMode );
+        when( archiver.getOverrideFileMode() ).thenReturn( defaultFileMode );
 
+        AddDirectoryTask task = new AddDirectoryTask( temporaryFolder.getRoot() );
         task.setOutputDirectory( "dir" );
 
         task.execute( archiver );
 
-        mockManager.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiver ).addFileSet( any( FileSet.class ) );
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
     }
 
     @Test
     public void testAddDirectory_ShouldAddDirectoryWithDirMode()
         throws Exception
     {
-        File dir = temporaryFolder.getRoot();
-
-        try
-        {
-            archiver.addFileSet( (FileSet) anyObject() );
-        }
-        catch ( ArchiverException e )
-        {
-            fail( "Should never happen." );
-        }
-
-        int dirMode = Integer.parseInt( "777", 8 );
-        int fileMode = Integer.parseInt( "777", 8 );
-
-        configureModeExpectations( -1, -1, dirMode, fileMode, true );
-
-        mockManager.replayAll();
-
-        AddDirectoryTask task = new AddDirectoryTask( dir );
-
+        final int dirMode = Integer.parseInt( "777", 8 );
+        final int fileMode = Integer.parseInt( "777", 8 );
+        final int defaultDirMode = -1;
+        final int defaultFileMode = -1;
+
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( defaultDirMode );
+        when( archiver.getOverrideFileMode() ).thenReturn( defaultFileMode );
+        
+        AddDirectoryTask task = new AddDirectoryTask( temporaryFolder.getRoot() );
         task.setDirectoryMode( dirMode );
         task.setFileMode( fileMode );
         task.setOutputDirectory( "dir" );
 
         task.execute( archiver );
-
-        mockManager.verifyAll();
+        
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiver ).addFileSet( any( FileSet.class ) );
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver ).setDirectoryMode( dirMode );
+        verify( archiver ).setFileMode( fileMode );
+        verify( archiver ).setDirectoryMode( defaultDirMode );
+        verify( archiver ).setFileMode( defaultFileMode );
     }
 
     @Test
     public void testAddDirectory_ShouldAddDirectoryWithIncludesAndExcludes()
         throws Exception
     {
-        File dir = temporaryFolder.getRoot();
-
-        try
-        {
-            archiver.addFileSet( (FileSet) anyObject() );
-        }
-        catch ( ArchiverException e )
-        {
-            fail( "Should never happen." );
-        }
-
-        configureModeExpectations( -1, -1, -1, -1, false );
-
-        mockManager.replayAll();
-
-        AddDirectoryTask task = new AddDirectoryTask( dir );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( -1 );
+        when( archiver.getOverrideFileMode() ).thenReturn( -1 );
 
+        AddDirectoryTask task = new AddDirectoryTask( temporaryFolder.getRoot() );
         task.setIncludes( Collections.singletonList( "**/*.txt" ) );
         task.setExcludes( Collections.singletonList( "**/README.txt" ) );
         task.setOutputDirectory( "dir" );
 
         task.execute( archiver );
 
-        mockManager.verifyAll();
-    }
-
-    private void configureModeExpectations( int defaultDirMode, int defaultFileMode, int dirMode, int fileMode,
-                                            boolean expectTwoSets )
-    {
-        expect( archiver.getOverrideDirectoryMode() ).andReturn( defaultDirMode );
-        expect( archiver.getOverrideFileMode() ).andReturn( defaultFileMode );
-
-        if ( expectTwoSets )
-        {
-            if ( dirMode > -1 )
-            {
-                archiver.setDirectoryMode( dirMode );
-            }
-
-            if ( fileMode > -1 )
-            {
-                archiver.setFileMode( fileMode );
-            }
-        }
-
-        if ( dirMode > -1 )
-        {
-            archiver.setDirectoryMode( defaultDirMode );
-        }
-
-        if ( fileMode > -1 )
-        {
-            archiver.setFileMode( defaultFileMode );
-        }
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( archiver ).addFileSet( any( FileSet.class ) );
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
     }
 
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
index df9042a..ee46b1b 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTaskTest.java
@@ -19,12 +19,12 @@ package org.apache.maven.plugins.assembly.archive.task;
  * under the License.
  */
 
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.anyObject;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
+import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -35,14 +35,11 @@ import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
-import org.apache.maven.plugins.assembly.archive.task.testutils.MockAndControlForAddFileSetsTask;
 import org.apache.maven.plugins.assembly.model.FileSet;
 import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
-import org.easymock.EasyMock;
-import org.easymock.classextension.EasyMockSupport;
-import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -55,18 +52,6 @@ public class AddFileSetsTaskTest
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder();
 
-    private EasyMockSupport mockManager;
-
-    private MockAndControlForAddFileSetsTask macTask;
-
-    @Before
-    public void setUp()
-    {
-        mockManager = new EasyMockSupport();
-
-        macTask = new MockAndControlForAddFileSetsTask( mockManager );
-    }
-
     @Test
     public void testGetFileSetDirectory_ShouldReturnAbsoluteSourceDir()
         throws Exception
@@ -138,49 +123,34 @@ public class AddFileSetsTaskTest
         throws Exception
     {
         final FileSet fs = new FileSet();
-
-        final String dirname = "dir";
-
-        fs.setDirectory( dirname );
+        fs.setDirectory( "dir" );
         fs.setOutputDirectory( "dir2" );
 
-        // ensure this exists, so the directory addition will proceed.
-        final File srcDir = new File( dirname );
-        srcDir.mkdirs();
-
-        final int[] modes = { -1, -1, -1, -1 };
-
         // the logger sends a debug message with this info inside the addFileSet(..) method..
-        if ( true )
-        {
-            expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( modes[0] );
-            expect( macTask.archiver.getOverrideFileMode() ).andReturn( modes[1] );
-        }
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( -1 );
+        when( archiver.getOverrideFileMode() ).thenReturn( -1 );
         
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
-        
-        macTask.expectModeChanges( modes, 1 );
-    
-        macTask.archiver.addFileSet( (org.codehaus.plexus.archiver.FileSet) anyObject() );
-        EasyMock.expectLastCall().atLeastOnce();
 
         final MavenProject project = new MavenProject( new Model() );
 
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
-        mockManager.replayAll();
 
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
 
         task.setLogger( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
         task.setProject( project );
 
-        task.addFileSet( fs, macTask.archiver, configSource, null );
+        task.addFileSet( fs, archiver, configSource, null );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
-
-        mockManager.verifyAll();
+        
+        verify( archiver, times( 2 ) ).getOverrideDirectoryMode();
+        verify( archiver, times( 2 ) ).getOverrideFileMode();
+        verify( archiver, atLeastOnce() ) .addFileSet( any( org.codehaus.plexus.archiver.FileSet.class ) );
     }
 
     @Test
@@ -188,9 +158,7 @@ public class AddFileSetsTaskTest
         throws Exception
     {
         final FileSet fs = new FileSet();
-
         final String dirname = "dir";
-
         fs.setDirectory( dirname );
 
         final File archiveBaseDir = temporaryFolder.newFolder();
@@ -199,39 +167,29 @@ public class AddFileSetsTaskTest
         final File srcDir = new File( archiveBaseDir, dirname );
         srcDir.mkdirs();
 
-        final int[] modes = { -1, -1, -1, -1 };
-
         // the logger sends a debug message with this info inside the addFileSet(..) method..
-        if ( true )
-        {
-            expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( modes[0] );
-            expect( macTask.archiver.getOverrideFileMode() ).andReturn( modes[1] );
-        }
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( -1 );
+        when( archiver.getOverrideFileMode() ).thenReturn( -1 );
         
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
-        
-        macTask.expectModeChanges( modes, 1 );
-    
-        macTask.archiver.addFileSet( (org.codehaus.plexus.archiver.FileSet) anyObject() );
-        EasyMock.expectLastCall().atLeastOnce();
 
         final MavenProject project = new MavenProject( new Model() );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mockManager.replayAll();
-
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
-
         task.setLogger( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
         task.setProject( project );
 
-        task.addFileSet( fs, macTask.archiver, configSource, archiveBaseDir );
+        task.addFileSet( fs, archiver, configSource, archiveBaseDir );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
-
-        mockManager.verifyAll();
+        
+        verify( archiver, times( 2 ) ).getOverrideDirectoryMode();
+        verify( archiver, times( 2 ) ).getOverrideFileMode();
+        verify( archiver ).addFileSet( any( org.codehaus.plexus.archiver.FileSet.class ) );
     }
 
     @Test
@@ -240,37 +198,32 @@ public class AddFileSetsTaskTest
     {
         final FileSet fs = new FileSet();
 
-        final String dirname = "dir";
-
-        fs.setDirectory( dirname );
-
+        fs.setDirectory( "dir" );
         final File archiveBaseDir = temporaryFolder.newFolder();
 
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getFinalName() ).thenReturn( "finalName" );
 
-        //macTask.expectGetProject( null );
-
-        expect( macTask.archiver.getOverrideDirectoryMode() ).andReturn( -1 );
-        expect( macTask.archiver.getOverrideFileMode() ).andReturn( -1 );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( -1 );
+        when( archiver.getOverrideFileMode() ).thenReturn( -1 );
 
         final MavenProject project = new MavenProject( new Model() );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mockManager.replayAll();
-
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
 
         task.setLogger( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
         task.setProject( project );
 
-        task.addFileSet( fs, macTask.archiver, configSource, archiveBaseDir );
+        task.addFileSet( fs, archiver, configSource, archiveBaseDir );
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource, atLeastOnce() ).getFinalName();
         verify( configSource, atLeastOnce() ).getMavenSession();
 
-        mockManager.verifyAll();
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
     }
 
     @Test
@@ -281,13 +234,11 @@ public class AddFileSetsTaskTest
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getArchiveBaseDirectory() ).thenReturn( archiveBaseDir );
 
-        mockManager.replayAll();
-
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
 
         try
         {
-            task.execute( macTask.archiver, configSource );
+            task.execute( null, configSource );
 
             fail( "Should throw exception due to non-existent archiveBasedir location that was provided." );
         }
@@ -298,8 +249,6 @@ public class AddFileSetsTaskTest
 
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( configSource ).getArchiveBaseDirectory();
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -310,13 +259,11 @@ public class AddFileSetsTaskTest
         final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
         when( configSource.getArchiveBaseDirectory() ).thenReturn( archiveBaseDir );
 
-        mockManager.replayAll();
-
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
 
         try
         {
-            task.execute( macTask.archiver, configSource );
+            task.execute( null, configSource );
 
             fail( "Should throw exception due to non-directory archiveBasedir location that was provided." );
         }
@@ -324,8 +271,6 @@ public class AddFileSetsTaskTest
         {
             // should do this, because it cannot use the provide archiveBasedir.
         }
-
-        mockManager.verifyAll();
         
         verify( configSource ).getArchiveBaseDirectory();
     }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
deleted file mode 100644
index e7c969a..0000000
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package org.apache.maven.plugins.assembly.archive.task.testutils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import junit.framework.Assert;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugins.assembly.artifact.DependencyResolutionException;
-import org.apache.maven.plugins.assembly.artifact.DependencyResolver;
-import org.apache.maven.plugins.assembly.model.Assembly;
-import org.apache.maven.plugins.assembly.model.DependencySet;
-import org.apache.maven.plugins.assembly.model.ModuleSet;
-import org.codehaus.plexus.archiver.ArchivedFileSet;
-import org.codehaus.plexus.archiver.Archiver;
-import org.codehaus.plexus.archiver.ArchiverException;
-import org.easymock.EasyMock;
-import org.easymock.classextension.EasyMockSupport;
-
-import java.io.File;
-import java.nio.charset.Charset;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Set;
-
-import static org.easymock.EasyMock.anyInt;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-
-public class MockAndControlForAddArtifactTask
-{
-
-    public final Archiver archiver;
-
-    public final DependencyResolver dependencyResolver;
-
-    public MockAndControlForAddArtifactTask( final EasyMockSupport mockManager )
-    {
-        archiver = mockManager.createMock( Archiver.class );
-        dependencyResolver = mockManager.createMock( DependencyResolver.class );
-    }
-
-    public void expectGetDestFile( final File destFile )
-    {
-        expect( archiver.getDestFile() ).andReturn( destFile ).atLeastOnce();
-    }
-
-    public void expectAddArchivedFileSet()
-    {
-        try
-        {
-            archiver.addArchivedFileSet( (ArchivedFileSet) anyObject(), (Charset) anyObject() );
-            EasyMock.expectLastCall();
-
-        }
-        catch ( final ArchiverException e )
-        {
-            Assert.fail( "Should never happen." );
-        }
-    }
-
-    public void expectModeChange( final int originalDirMode, final int originalFileMode, final int dirMode,
-                                  final int fileMode, final int numberOfChanges )
-    {
-        expect( archiver.getOverrideDirectoryMode() ).andReturn( originalDirMode );
-        expect( archiver.getOverrideFileMode() ).andReturn( originalFileMode );
-
-        // one of the changes will occur below, when we restore the original mode.
-        if ( numberOfChanges > 1 )
-        {
-            for ( int i = 1; i < numberOfChanges; i++ )
-            {
-                if ( dirMode > -1 )
-                {
-                    archiver.setDirectoryMode( dirMode );
-                }
-
-                if ( fileMode > -1 )
-                {
-                    archiver.setFileMode( fileMode );
-                }
-            }
-        }
-
-        if ( dirMode > -1 )
-        {
-            archiver.setDirectoryMode( originalDirMode );
-        }
-
-        if ( fileMode > -1 )
-        {
-            archiver.setFileMode( originalFileMode );
-        }
-    }
-
-    public void expectAddFile( final File file, final String outputLocation, final int fileMode )
-    {
-        try
-        {
-            archiver.addFile( (File) anyObject(), (String) anyObject(), anyInt() );
-            EasyMock.expectLastCall();
-        }
-        catch ( final ArchiverException e )
-        {
-            Assert.fail( "Should never happen." );
-        }
-    }
-
-
-    public void expectAddFile( final File file, final String outputLocation )
-    {
-        try
-        {
-            archiver.addFile( file, outputLocation );
-            EasyMock.expectLastCall().atLeastOnce();
-        }
-        catch ( final ArchiverException e )
-        {
-            Assert.fail( "Should never happen." );
-        }
-    }
-
-    public void expectResolveDependencySets()
-        throws DependencyResolutionException
-    {
-        expect( dependencyResolver.resolveDependencySets( (Assembly) anyObject(), (ModuleSet) anyObject(),
-                                                          (AssemblerConfigurationSource) anyObject(),
-                                                          (List<DependencySet>) anyObject() ) ).andReturn(
-            new LinkedHashMap<DependencySet, Set<Artifact>>() );
-
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
deleted file mode 100644
index 7fd1068..0000000
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
+++ /dev/null
@@ -1,231 +0,0 @@
-package org.apache.maven.plugins.assembly.archive.task.testutils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import junit.framework.Assert;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.building.ModelProblem;
-import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
-import org.apache.maven.plugins.assembly.artifact.DependencyResolutionException;
-import org.apache.maven.plugins.assembly.artifact.DependencyResolver;
-import org.apache.maven.plugins.assembly.model.Assembly;
-import org.apache.maven.plugins.assembly.model.DependencySet;
-import org.apache.maven.project.DependencyResolutionResult;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.ProjectBuilder;
-import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.project.ProjectBuildingResult;
-import org.codehaus.plexus.archiver.ArchivedFileSet;
-import org.codehaus.plexus.archiver.Archiver;
-import org.codehaus.plexus.archiver.ArchiverException;
-import org.codehaus.plexus.archiver.manager.ArchiverManager;
-import org.easymock.EasyMock;
-import org.easymock.classextension.EasyMockSupport;
-
-import java.io.File;
-import java.nio.charset.Charset;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Set;
-
-import static org.easymock.EasyMock.anyInt;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-
-public class MockAndControlForAddDependencySetsTask
-{
-
-    public final Archiver archiver;
-
-    
-
-    public final ProjectBuilder projectBuilder;
-
-    public final ArchiverManager archiverManager;
-
-    public final DependencyResolver dependencyResolver;
-
-    public MockAndControlForAddDependencySetsTask( final EasyMockSupport mockManager )
-    {
-        this( mockManager, null );
-    }
-
-    public MockAndControlForAddDependencySetsTask( final EasyMockSupport mockManager, final MavenProject project )
-    {
-        archiver = mockManager.createMock( Archiver.class );
-
-        projectBuilder = mockManager.createMock( ProjectBuilder.class );
-
-        archiverManager = mockManager.createMock( ArchiverManager.class );
-
-        dependencyResolver = mockManager.createMock( DependencyResolver.class );
-    }
-
-    public void expectAddArchivedFileSet()
-    {
-        try
-        {
-            archiver.addArchivedFileSet( (ArchivedFileSet) anyObject(), (Charset) anyObject() );
-            EasyMock.expectLastCall();
-
-        }
-        catch ( final ArchiverException e )
-        {
-            Assert.fail( "Should never happen." );
-        }
-    }
-
-    public void expectModeChange( final int originalDirMode, final int originalFileMode, final int dirMode,
-                                  final int fileMode, final int numberOfChanges )
-    {
-        archiver.setFileMode( anyInt() );
-        EasyMock.expectLastCall();
-        expect( archiver.getOverrideDirectoryMode() ).andReturn( originalDirMode );
-        expect( archiver.getOverrideFileMode() ).andReturn( originalFileMode );
-        archiver.setDirectoryMode( anyInt() );
-        EasyMock.expectLastCall();
-        // one of the changes will occur below, when we restore the original mode.
-        if ( numberOfChanges > 1 )
-        {
-            for ( int i = 1; i < numberOfChanges; i++ )
-            {
-                archiver.setDirectoryMode( dirMode );
-                archiver.setFileMode( fileMode );
-            }
-        }
-
-        archiver.setDirectoryMode( originalDirMode );
-        archiver.setFileMode( originalFileMode );
-    }
-
-    public void expectAddFile( final File file, final String outputLocation )
-    {
-        try
-        {
-            archiver.addFile( file, outputLocation );
-        }
-        catch ( final ArchiverException e )
-        {
-            Assert.fail( "Should never happen." );
-        }
-    }
-
-    public void expectAddFile( final File file, final String outputLocation, final int fileMode )
-    {
-        try
-        {
-            archiver.addFile( file, outputLocation, fileMode );
-        }
-        catch ( final ArchiverException e )
-        {
-            Assert.fail( "Should never happen." );
-        }
-    }
-
-    public void expectAddAnyFile()
-    {
-        try
-        {
-            archiver.addFile( (File) anyObject(), (String) anyObject(), anyInt() );
-        }
-        catch ( final ArchiverException e )
-        {
-            Assert.fail( "Should never happen." );
-        }
-    }
-
-    public void expectGetDestFile( final File destFile )
-    {
-        expect( archiver.getDestFile() ).andReturn( destFile ).atLeastOnce();
-    }
-
-    public void expectBuildFromRepository( final ProjectBuildingException error )
-    {
-        try
-        {
-            expect( projectBuilder.build( (Artifact) anyObject(), (ProjectBuildingRequest) anyObject() ) ).andThrow(
-                error );
-//            projectBuilderCtl.setThrowable( error, MockControl.ONE_OR_MORE );
-        }
-        catch ( final ProjectBuildingException e )
-        {
-            Assert.fail( "should never happen" );
-        }
-    }
-
-    public void expectBuildFromRepository( final MavenProject project )
-    {
-        ProjectBuildingResult pbr = new ProjectBuildingResult()
-        {
-            @Override
-            public String getProjectId()
-            {
-                return null;
-            }
-
-            @Override
-            public File getPomFile()
-            {
-                return null;
-            }
-
-            @Override
-            public MavenProject getProject()
-            {
-                return project;
-            }
-
-            @Override
-            public List<ModelProblem> getProblems()
-            {
-                return null;
-            }
-
-            @Override
-            public DependencyResolutionResult getDependencyResolutionResult()
-            {
-                return null;
-            }
-        };
-
-        try
-        {
-            expect( projectBuilder.build( (Artifact) anyObject(), (ProjectBuildingRequest) anyObject() ) ).andReturn(
-                pbr );
-        }
-        catch ( final ProjectBuildingException e )
-        {
-            Assert.fail( "should never happen" );
-        }
-    }
-
-    public void expectResolveDependencySets()
-        throws DependencyResolutionException
-    {
-        expect( dependencyResolver.resolveDependencySets( (Assembly) anyObject(),
-                                                          (AssemblerConfigurationSource) anyObject(),
-                                                          (List<DependencySet>) anyObject() ) ).andReturn(
-            new LinkedHashMap<DependencySet, Set<Artifact>>() );
-
-    }
-
-
-}
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java
deleted file mode 100644
index 9dd5f30..0000000
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.apache.maven.plugins.assembly.archive.task.testutils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.codehaus.plexus.archiver.Archiver;
-import org.easymock.classextension.EasyMockSupport;
-
-import static org.easymock.EasyMock.expect;
-
-public class MockAndControlForAddFileSetsTask
-{
-    public final Archiver archiver;
-
-    public MockAndControlForAddFileSetsTask( EasyMockSupport mockManager )
-    {
-        
-        archiver = mockManager.createMock( Archiver.class );
-    }
-
-    public void expectModeChanges( int[] modes, int modeChangeCount )
-    {
-        expect( archiver.getOverrideDirectoryMode() ).andReturn( modes[0] );
-        expect( archiver.getOverrideFileMode() ).andReturn( modes[1] );
-
-        if ( modeChangeCount > 1 )
-        {
-            for ( int i = 1; i < modeChangeCount; i++ )
-            {
-                if ( modes[2] > -1 )
-                {
-                    archiver.setDirectoryMode( modes[2] );
-                }
-
-                if ( modes[3] > -1 )
-                {
-                    archiver.setFileMode( modes[3] );
-                }
-            }
-        }
-
-        if ( modes[2] > -1 )
-        {
-            archiver.setDirectoryMode( modes[0] );
-        }
-
-        if ( modes[3] > -1 )
-        {
-            archiver.setFileMode( modes[1] );
-        }
-    }
-
-}
diff --git a/src/test/java/org/apache/maven/plugins/assembly/interpolation/AssemblyInterpolatorTest.java b/src/test/java/org/apache/maven/plugins/assembly/interpolation/AssemblyInterpolatorTest.java
index 5ae020e..dfab534 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/interpolation/AssemblyInterpolatorTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/interpolation/AssemblyInterpolatorTest.java
@@ -19,9 +19,15 @@ package org.apache.maven.plugins.assembly.interpolation;
  * under the License.
  */
 
-import junit.framework.TestCase;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.execution.MavenSession;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.List;
+import java.util.Properties;
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
@@ -35,17 +41,14 @@ import org.apache.maven.plugins.assembly.testutils.PojoConfigSource;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
 import org.codehaus.plexus.interpolation.fixed.PropertiesBasedValueSource;
-import org.easymock.classextension.EasyMockSupport;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.List;
-import java.util.Properties;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
+@RunWith( MockitoJUnitRunner.class )
 public class AssemblyInterpolatorTest
-    extends TestCase
 {
-
+    @Test
     public void testDependencySetOutputFileNameMappingsAreNotInterpolated()
         throws IOException, AssemblyInterpolationException, AssemblyReadException,
         InvalidAssemblerConfigurationException
@@ -84,6 +87,7 @@ public class AssemblyInterpolatorTest
         assertEquals( "${artifactId}.${packaging}", outputSet.getOutputFileNameMapping() );
     }
 
+    @Test
     public void testDependencySetOutputDirectoryIsNotInterpolated()
         throws IOException, AssemblyInterpolationException, AssemblyReadException,
         InvalidAssemblerConfigurationException
@@ -120,13 +124,14 @@ public class AssemblyInterpolatorTest
         assertEquals( "${artifactId}.${packaging}", outputSet.getOutputDirectory() );
     }
 
-    public Assembly roundTripInterpolation( Assembly assembly, AssemblerConfigurationSource configSource )
+    private Assembly roundTripInterpolation( Assembly assembly, AssemblerConfigurationSource configSource )
         throws IOException, AssemblyReadException, InvalidAssemblerConfigurationException
     {
         final StringReader stringReader = DefaultAssemblyReaderTest.writeToStringReader( assembly );
         return new DefaultAssemblyReader().readAssembly( stringReader, "testLocation", null, configSource );
     }
 
+    @Test
     public void testShouldResolveModelGroupIdInAssemblyId()
         throws AssemblyInterpolationException, InvalidAssemblerConfigurationException, AssemblyReadException,
         IOException
@@ -151,6 +156,7 @@ public class AssemblyInterpolatorTest
         assertEquals( "assembly.group.id", outputAssembly.getId() );
     }
 
+    @Test
     public void testShouldResolveModelPropertyBeforeModelGroupIdInAssemblyId()
         throws AssemblyInterpolationException, InvalidAssemblerConfigurationException, AssemblyReadException,
         IOException
@@ -182,9 +188,9 @@ public class AssemblyInterpolatorTest
         assertEquals( "assembly.other.id", result.getId() );
     }
 
+    @Test
     public void testShouldResolveContextValueBeforeModelPropertyOrModelGroupIdInAssemblyId()
-        throws AssemblyInterpolationException, InvalidAssemblerConfigurationException, AssemblyReadException,
-        IOException
+        throws Exception
     {
         final Model model = new Model();
         model.setArtifactId( "artifact-id" );
@@ -201,36 +207,23 @@ public class AssemblyInterpolatorTest
 
         assembly.setId( "assembly.${groupId}" );
 
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MavenSession session = mm.createMock( MavenSession.class );
-
         final Properties execProps = new Properties();
         execProps.setProperty( "groupId", "still.another.id" );
 
-        final PojoConfigSource cs = new PojoConfigSource();
-
-        final ArtifactRepository lr = mm.createMock( ArtifactRepository.class );
-
-        cs.setLocalRepository( lr );
-        cs.setMavenSession( session );
-        cs.setRootInterpolator( FixedStringSearchInterpolator.create() );
-        cs.setEnvironmentInterpolator(
-            FixedStringSearchInterpolator.create( new PropertiesBasedValueSource( execProps ) ) );
-        cs.setEnvInterpolator( FixedStringSearchInterpolator.empty() );
-
-        mm.replayAll();
+        final AssemblerConfigurationSource cs = mock( AssemblerConfigurationSource.class );
+        when( cs.getRepositoryInterpolator() ).thenReturn( FixedStringSearchInterpolator.create() );
+        when( cs.getCommandLinePropsInterpolator() ).thenReturn( FixedStringSearchInterpolator.create( new PropertiesBasedValueSource( execProps ) ) );
+        when( cs.getEnvInterpolator() ).thenReturn( FixedStringSearchInterpolator.empty() );
 
         final MavenProject project = new MavenProject( model );
-        cs.setMavenProject( project );
+        when( cs.getProject() ) .thenReturn( project );
+
         final Assembly result = roundTripInterpolation( assembly, cs );
 
         assertEquals( "assembly.still.another.id", result.getId() );
-
-        mm.verifyAll();
-        mm.resetAll();
     }
 
+    @Test
     public void testShouldNotTouchUnresolvedExpression()
         throws AssemblyInterpolationException, InvalidAssemblerConfigurationException, AssemblyReadException,
         IOException
@@ -256,6 +249,7 @@ public class AssemblyInterpolatorTest
         assertEquals( "assembly.${unresolved}", result.getId() );
     }
 
+    @Test
     public void testShouldInterpolateMultiDotProjectExpression()
         throws AssemblyInterpolationException, InvalidAssemblerConfigurationException, AssemblyReadException,
         IOException
diff --git a/src/test/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtilsTest.java b/src/test/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtilsTest.java
index 4fe72fb..40eb100 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtilsTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtilsTest.java
@@ -19,13 +19,12 @@ package org.apache.maven.plugins.assembly.utils;
  * under the License.
  */
 
-import static org.easymock.EasyMock.expect;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.atLeast;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import java.util.Properties;
 
@@ -39,7 +38,6 @@ import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
 import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugins.assembly.model.Assembly;
 import org.apache.maven.project.MavenProject;
-import org.easymock.classextension.EasyMockSupport;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.junit.MockitoJUnitRunner;
@@ -47,9 +45,6 @@ import org.mockito.junit.MockitoJUnitRunner;
 @RunWith( MockitoJUnitRunner.class )
 public class AssemblyFormatUtilsTest
 {
-
-    private final EasyMockSupport mockManager = new EasyMockSupport();
-
     @Test
     public void testFixRelativePathRefs_ShouldRemoveRelativeRefToCurrentDir()
         throws Exception
@@ -352,8 +347,6 @@ public class AssemblyFormatUtilsTest
         when( cs.getMavenSession() ).thenReturn( session );
         DefaultAssemblyArchiverTest.setupInterpolators( cs, mainProject );
 
-        mockManager.replayAll();
-
         final String result =
             AssemblyFormatUtils.evaluateFileNameMapping( "${artifact.artifactId}-${artifact.baseVersion}",
                                                          artifact, mainProject, null, cs,
@@ -361,11 +354,6 @@ public class AssemblyFormatUtilsTest
                                                          AssemblyFormatUtils.artifactProjectInterpolator( artifactProject ) );
 
         assertEquals( "artifact-2-SNAPSHOT", result );
-
-        mockManager.verifyAll();
-
-        // clear out for next call.
-        mockManager.resetAll();
         
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( cs ).getMavenSession();
@@ -693,8 +681,6 @@ public class AssemblyFormatUtilsTest
         
         DefaultAssemblyArchiverTest.setupInterpolators( cs, mainProject );
 
-        mockManager.replayAll();
-
         final String result =
             AssemblyFormatUtils.evaluateFileNameMapping( expression, artifactMock, mainProject,
                                                          moduleArtifactMock, cs,
@@ -703,11 +689,6 @@ public class AssemblyFormatUtilsTest
 
         assertEquals( checkValue, result );
 
-        mockManager.verifyAll();
-
-        // clear out for next call.
-        mockManager.resetAll();
-
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( cs ).getMavenSession();
     }
@@ -799,20 +780,13 @@ public class AssemblyFormatUtilsTest
         
         DefaultAssemblyArchiverTest.setupInterpolators( cs, mainProject );
 
-        String result;
-
-        mockManager.replayAll();
-        result =
+        String result =
             AssemblyFormatUtils.getOutputDirectory( outDir, finalName, cs,
                                                     AssemblyFormatUtils.moduleProjectInterpolator( moduleProject ),
                                                     AssemblyFormatUtils.artifactProjectInterpolator( artifactProject ) );
 
         assertEquals( checkValue, result );
 
-        mockManager.verifyAll();
-
-        mockManager.resetAll();
-
         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
         verify( cs ).getMavenSession();
     }