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/26 10:25:13 UTC

[maven-assembly-plugin] branch master updated: Replace EasyMock with Mockito

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2c44462  Replace EasyMock with Mockito
2c44462 is described below

commit 2c444621a769aea94554b9b087266f25f058a318
Author: rfscholte <rf...@apache.org>
AuthorDate: Sun Apr 26 12:25:03 2020 +0200

    Replace EasyMock with Mockito
---
 pom.xml                                            |  12 -
 .../archive/DefaultAssemblyArchiverTest.java       | 634 +++++++++------------
 .../archive/ManifestCreationFinalizerTest.java     |  30 +-
 .../archiver/AssemblyProxyArchiverTest.java        |  24 +-
 .../phase/DependencySetAssemblyPhaseTest.java      | 110 ++--
 .../archive/phase/FileItemAssemblyPhaseTest.java   |   7 +-
 .../archive/phase/FileSetAssemblyPhaseTest.java    | 119 ++--
 .../archive/phase/ModuleSetAssemblyPhaseTest.java  | 514 ++++++++---------
 .../archive/phase/RepositoryAssemblyPhaseTest.java | 259 +++------
 .../assembly/archive/task/AddArtifactTaskTest.java | 188 +++---
 .../archive/task/AddDependencySetsTaskTest.java    | 222 +++++---
 .../archive/task/AddDirectoryTaskTest.java         | 160 ++----
 .../assembly/archive/task/AddFileSetsTaskTest.java | 156 +++--
 .../MockAndControlForAddArtifactTask.java          | 199 -------
 .../MockAndControlForAddDependencySetsTask.java    | 292 ----------
 .../MockAndControlForAddFileSetsTask.java          | 142 -----
 .../artifact/DefaultDependencyResolverTest.java    |  35 +-
 .../AssemblyExpressionEvaluatorTest.java           |  61 +-
 .../interpolation/AssemblyInterpolatorTest.java    |  70 +--
 .../assembly/io/DefaultAssemblyReaderTest.java     | 249 ++------
 .../assembly/utils/AssemblyFormatUtilsTest.java    | 118 ++--
 .../plugins/assembly/utils/FilterUtilsTest.java    | 218 +++----
 22 files changed, 1279 insertions(+), 2540 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 4294b66..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,14 +19,28 @@ package org.apache.maven.plugins.assembly.archive;
  * under the License.
  */
 
-import org.apache.maven.artifact.repository.ArtifactRepository;
+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;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 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.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.mojos.AbstractAssemblyMojo;
 import org.apache.maven.project.MavenProject;
@@ -37,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;
@@ -45,30 +58,14 @@ 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;
 import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-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;
-
+@RunWith( MockitoJUnitRunner.class )
 public class DefaultAssemblyArchiverTest
 {
     @Rule
@@ -78,462 +75,419 @@ public class DefaultAssemblyArchiverTest
 
     public static void setupInterpolators( AssemblerConfigurationSource configSource )
     {
-        expect( configSource.getRepositoryInterpolator() ).andReturn(
-            FixedStringSearchInterpolator.create() ).anyTimes();
-        expect( configSource.getCommandLinePropsInterpolator() ).andReturn(
-            FixedStringSearchInterpolator.create() ).anyTimes();
-        expect( configSource.getEnvInterpolator() ).andReturn( FixedStringSearchInterpolator.create() ).anyTimes();
-        expect( configSource.getMainProjectInterpolator() ).andReturn(
-            FixedStringSearchInterpolator.create() ).anyTimes();
-
+        when( configSource.getRepositoryInterpolator() ).thenReturn( FixedStringSearchInterpolator.create() );
+        when( configSource.getCommandLinePropsInterpolator() ).thenReturn( FixedStringSearchInterpolator.create() );
+        when( configSource.getEnvInterpolator() ).thenReturn( FixedStringSearchInterpolator.create() );
     }
 
     public static void setupInterpolators( AssemblerConfigurationSource configSource, MavenProject mavenProject )
     {
-        expect( configSource.getRepositoryInterpolator() ).andReturn(
-            FixedStringSearchInterpolator.create() ).anyTimes();
-        expect( configSource.getCommandLinePropsInterpolator() ).andReturn(
-            FixedStringSearchInterpolator.create() ).anyTimes();
-        expect( configSource.getEnvInterpolator() ).andReturn( FixedStringSearchInterpolator.create() ).anyTimes();
-        expect( configSource.getMainProjectInterpolator() ).andReturn(
-            AbstractAssemblyMojo.mainProjectInterpolator( mavenProject ) ).anyTimes();
-
+        when( configSource.getCommandLinePropsInterpolator() ).thenReturn( FixedStringSearchInterpolator.create() );
+        when( configSource.getEnvInterpolator() ).thenReturn( FixedStringSearchInterpolator.create() );
+        when( configSource.getMainProjectInterpolator() ).thenReturn( AbstractAssemblyMojo.mainProjectInterpolator( mavenProject ) );
     }
 
     @Before
     public void setup()
         throws PlexusContainerException
     {
-        container = new DefaultPlexusContainer();
+        this.container = new DefaultPlexusContainer();
     }
 
     @Test( expected = InvalidAssemblerConfigurationException.class )
     public void failWhenAssemblyIdIsNull()
-        throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAssemblyArchiver macMgr = new MockAndControlForAssemblyArchiver( mm );
-
-        final AssemblerConfigurationSource configSource =
-            mm.createControl().createMock( AssemblerConfigurationSource.class );
-
-        mm.replayAll();
-
-        final DefaultAssemblyArchiver archiver = createSubject( macMgr, null, null );
-        archiver.createArchive( new Assembly(), "full-name", "zip", configSource, false, null, null );
-
-        mm.verifyAll();
+        final DefaultAssemblyArchiver archiver = createSubject( null, null, null );
+        archiver.createArchive( new Assembly(), "full-name", "zip", null, false, null, null );
     }
 
     @Test
     public void testCreateArchive()
-        throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException,
-        IOException, DependencyResolutionException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAssemblyArchiver macMgr = new MockAndControlForAssemblyArchiver( mm );
-
-        macMgr.expectGetArchiver( "zip", Archiver.class );
-        macMgr.expectGetDestFile( new File( "test" ) );
-
-        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 AssemblerConfigurationSource configSource =
-            mm.createControl().createMock( AssemblerConfigurationSource.class );
-
-        final File tempDir = new File ( temporaryFolder.getRoot(), "temp" );
-
-        expect( configSource.getTemporaryRootDirectory() ).andReturn( tempDir ).anyTimes();
-        expect( configSource.isDryRun() ).andReturn( false ).anyTimes();
-        expect( configSource.isIgnoreDirFormatExtensions() ).andReturn( false ).anyTimes();
+        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" );
-        }
-
-        expect( configSource.getOverrideUid() ).andReturn( 0 ).atLeastOnce();
-        expect( configSource.getOverrideUserName() ).andReturn( "root" ).atLeastOnce();
-        expect( configSource.getOverrideGid() ).andReturn( 0 ).atLeastOnce();
-        expect( configSource.getOverrideGroupName() ).andReturn( "root" ).atLeastOnce();
-        expect( configSource.getOutputDirectory() ).andReturn( outDir );
-        expect( configSource.getFinalName() ).andReturn( "finalName" );
-        expect( configSource.getArchiverConfig() ).andReturn( null ).anyTimes();
-        expect( configSource.getWorkingDirectory() ).andReturn( new File( "." ) ).anyTimes();
-        expect( configSource.isUpdateOnly() ).andReturn( false ).anyTimes();
-        expect( configSource.isIgnorePermissions() ).andReturn( false ).anyTimes();
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getTemporaryRootDirectory() ).thenReturn( new File ( temporaryFolder.getRoot(), "temp" ) );
+        when( configSource.getOverrideUid() ).thenReturn( 0 );
+        when( configSource.getOverrideUserName() ).thenReturn( "root" );
+        when( configSource.getOverrideGid() ).thenReturn( 0 );
+        when( configSource.getOverrideGroupName() ).thenReturn( "root" );
+        when( configSource.getOutputDirectory() ).thenReturn( outDir );
+        when( configSource.getFinalName() ).thenReturn( "finalName" );
+        when( configSource.getWorkingDirectory() ).thenReturn( new File( "." ) );
 
         final Assembly assembly = new Assembly();
         assembly.setId( "id" );
 
-        // try
-        // {
-        //         expect( macMgr.dependencyResolver.resolve( (Assembly) anyObject(), (AssemblerConfigurationSource)
-        // anyObject() )).andReturn( new HashSet<Artifact>(  ) );
-//            macMgr.dependencyResolverControl.setMatcher( MockControl.ALWAYS_MATCHER );
-        //     }
-        //  catch ( final DependencyResolutionException e )
-        // {
-        //    fail( "Should never happen" );
-        // }
-
-        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 );
-
-        mm.verifyAll();
+        
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getArchiverConfig();
+        verify( configSource ).getFinalName();
+        verify( configSource ).getOutputDirectory();
+        verify( configSource, atLeastOnce() ).getOverrideUid();
+        verify( configSource, atLeastOnce() ).getOverrideUserName();
+        verify( configSource, atLeastOnce() ).getOverrideGid();
+        verify( configSource, atLeastOnce() ).getOverrideGroupName();
+        verify( configSource ).getTemporaryRootDirectory();
+        verify( configSource ).getWorkingDirectory();
+        verify( configSource ).isDryRun();
+        verify( configSource ).isIgnoreDirFormatExtensions();
+        verify( configSource ).isIgnorePermissions();
+        verify( configSource, times( 2 ) ).isUpdateOnly();
+        
+        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 NoSuchArchiverException, ArchiverException
+        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 = mm.createMock( AssemblerConfigurationSource.class );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
 
         final String simpleConfig = "value";
 
-        expect( configSource.getArchiverConfig() ).andReturn(
-            "<configuration><simpleConfig>" + simpleConfig + "</simpleConfig></configuration>" ).anyTimes();
+        when( configSource.getArchiverConfig() ).thenReturn(
+            "<configuration><simpleConfig>" + simpleConfig + "</simpleConfig></configuration>" );
 
         final MavenProject project = new MavenProject( new Model() );
 
-        expect( configSource.getProject() ).andReturn( project ).anyTimes();
-
-        expect( configSource.getMavenSession() ).andReturn( null ).anyTimes();
-
-        expect( configSource.isDryRun() ).andReturn( false ).anyTimes();
-
-        expect( configSource.getWorkingDirectory() ).andReturn( new File( "." ) ).anyTimes();
-
-        expect( configSource.isUpdateOnly() ).andReturn( false ).anyTimes();
+        when( configSource.getProject() ).thenReturn( project );
+        when( configSource.getWorkingDirectory() ).thenReturn( new File( "." ) );
 
-        final ArtifactRepository lr = mm.createMock( ArtifactRepository.class );
+        when( configSource.isIgnorePermissions() ).thenReturn( true );
+        setupInterpolators( configSource );
 
-        expect( lr.getBasedir() ).andReturn( "/path/to/local/repo" ).anyTimes();
-
-        expect( configSource.getLocalRepository() ).andReturn( lr ).anyTimes();
-        expect( configSource.isIgnorePermissions() ).andReturn( true );
-        setupInterpolators( configSource, project );
-
-        expect( configSource.getOverrideUid() ).andReturn( 0 ).atLeastOnce();
-        expect( configSource.getOverrideUserName() ).andReturn( "root" ).atLeastOnce();
-        expect( configSource.getOverrideGid() ).andReturn( 0 ).atLeastOnce();
-        expect( configSource.getOverrideGroupName() ).andReturn( "root" ).atLeastOnce();
-
-        mm.replayAll();
+        when( configSource.getOverrideUid() ).thenReturn( 0 );
+        when( configSource.getOverrideUserName() ).thenReturn( "root" );
+        when( configSource.getOverrideGid() ).thenReturn( 0 );
+        when( configSource.getOverrideGroupName() ).thenReturn( "root" );
 
         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 NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final TestTarArchiver ttArchiver = new TestTarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
-
-        final AssemblerConfigurationSource configSource = mm.createMock( AssemblerConfigurationSource.class );
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( ttArchiver );
 
-        expect( configSource.getTarLongFileMode() ).andReturn( TarLongFileMode.fail.toString() ).anyTimes();
-        expect( configSource.isDryRun() ).andReturn( false ).anyTimes();
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getTarLongFileMode() ).thenReturn( TarLongFileMode.fail.toString() );
+        when( configSource.getWorkingDirectory() ).thenReturn( new File( "." ) );
+        when( configSource.isIgnorePermissions() ).thenReturn( true );
+        when( configSource.getOverrideUid() ).thenReturn( 0 );
+        when( configSource.getOverrideUserName() ).thenReturn( "root" );
+        when( configSource.getOverrideGid() ).thenReturn( 0 );
+        when( configSource.getOverrideGroupName() ).thenReturn( "root" );
 
-        expect( configSource.getArchiverConfig() ).andReturn( null ).anyTimes();
-
-        final DefaultAssemblyArchiver subject = setupStdExpectations( mm, macArchiverManager, configSource );
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createArchiver( "tar", false, "finalName", configSource, null, false, null, null );
 
         assertNull( ttArchiver.compressionMethod );
         assertEquals( TarLongFileMode.fail, ttArchiver.longFileMode );
 
-        mm.verifyAll();
-    }
-
-    private DefaultAssemblyArchiver setupStdExpectations( EasyMockSupport mm,
-                                                          MockAndControlForAssemblyArchiver macArchiverManager,
-                                                          AssemblerConfigurationSource configSource )
-    {
-        expect( configSource.getProject() ).andReturn( new MavenProject( new Model() ) ).anyTimes();
-
-        expect( configSource.getJarArchiveConfiguration() ).andReturn( null ).anyTimes();
-
-        expect( configSource.getWorkingDirectory() ).andReturn( new File( "." ) ).anyTimes();
-
-        expect( configSource.isUpdateOnly() ).andReturn( false ).anyTimes();
-
-        expect( configSource.isIgnorePermissions() ).andReturn( true ).anyTimes();
-
-        expect( configSource.getOverrideUid() ).andReturn( 0 ).atLeastOnce();
-        expect( configSource.getOverrideUserName() ).andReturn( "root" ).atLeastOnce();
-        expect( configSource.getOverrideGid() ).andReturn( 0 ).atLeastOnce();
-        expect( configSource.getOverrideGroupName() ).andReturn( "root" ).atLeastOnce();
-
-        mm.replayAll();
-
-        return createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getArchiverConfig();
+        verify( configSource, times( 2 ) ).getOverrideGid();
+        verify( configSource, times( 2 ) ).getOverrideGroupName();
+        verify( configSource, times( 2 ) ).getOverrideUid();
+        verify( configSource, times( 2 ) ).getOverrideUserName();
+        verify( configSource ).getTarLongFileMode();
+        verify( configSource ).getWorkingDirectory();
+        verify( configSource ).isDryRun();
+        verify( configSource ).isIgnorePermissions();
+        verify( configSource, times( 2 ) ).isUpdateOnly();
+
+        verify( archiverManager ).getArchiver( "tar" );
     }
 
     @Test
     public void testCreateArchiver_ShouldCreateWarArchiverWithIgnoreWebxmlSetToFalse()
-        throws NoSuchArchiverException, ArchiverException
+        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 = mm.createMock( AssemblerConfigurationSource.class );
-
-        expect( configSource.isDryRun() ).andReturn( false ).anyTimes();
-        expect( configSource.getArchiverConfig() ).andReturn( null ).anyTimes();
-        expect( configSource.getMavenSession() ).andReturn( null ).anyTimes();
-        final DefaultAssemblyArchiver subject = setupStdExpectations( mm, macArchiverManager, configSource );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getOverrideGid() ).thenReturn( 0 );
+        when( configSource.getOverrideGroupName() ).thenReturn( "root" );
+        when( configSource.getOverrideUid() ).thenReturn( 0 );
+        when( configSource.getOverrideUserName() ).thenReturn( "root" );
+        when( configSource.getProject() ).thenReturn( new MavenProject( new Model() ) );
+        when( configSource.getWorkingDirectory() ).thenReturn( new File( "." ) );
+        when( configSource.isIgnorePermissions() ).thenReturn( true );
+        
+        final DefaultAssemblyArchiver subject = createSubject( archiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
 
         subject.createArchiver( "war", false, null, configSource, null, false, null, null );
 
         assertFalse( twArchiver.ignoreWebxml );
+        
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getArchiverConfig();
+        verify( configSource ).getJarArchiveConfiguration();
+        verify( configSource ).getMavenSession();
+        verify( configSource, times( 2 ) ).getOverrideGid();
+        verify( configSource, times( 2 ) ).getOverrideGroupName();
+        verify( configSource, times( 2 ) ).getOverrideUid();
+        verify( configSource, times( 2 ) ).getOverrideUserName();
+        verify( configSource ).getProject();
+        verify( configSource ).getWorkingDirectory();
+        verify( configSource ).isDryRun();
+        verify( configSource ).isIgnorePermissions();
+        verify( configSource, times( 2 ) ).isUpdateOnly();
+        
+        verify( archiverManager ).getArchiver( "war" );
     }
 
     @Test
     public void testCreateArchiver_ShouldCreateZipArchiver()
-        throws NoSuchArchiverException, ArchiverException
+        throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final ZipArchiver archiver = new ZipArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "zip" ) ).thenReturn( archiver );
 
-        macArchiverManager.expectGetArchiver( "zip", archiver );
-
-        final AssemblerConfigurationSource configSource = mm.createMock( AssemblerConfigurationSource.class );
-
-        expect( configSource.isDryRun() ).andReturn( false ).anyTimes();
-        expect( configSource.getArchiverConfig() ).andReturn( null ).anyTimes();
-        expect( configSource.getWorkingDirectory() ).andReturn( new File( "." ) ).anyTimes();
-        expect( configSource.isUpdateOnly() ).andReturn( false ).anyTimes();
-        expect( configSource.getJarArchiveConfiguration() ).andReturn( null ).anyTimes();
-        expect( configSource.isIgnorePermissions() ).andReturn( true ).anyTimes();
-
-        expect( configSource.getOverrideUid() ).andReturn( 0 ).atLeastOnce();
-        expect( configSource.getOverrideUserName() ).andReturn( "root" ).atLeastOnce();
-        expect( configSource.getOverrideGid() ).andReturn( 0 ).atLeastOnce();
-        expect( configSource.getOverrideGroupName() ).andReturn( "root" ).atLeastOnce();
-
-        mm.replayAll();
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getOverrideGid() ).thenReturn( 0 );
+        when( configSource.getOverrideGroupName() ).thenReturn( "root" );
+        when( configSource.getOverrideUid() ).thenReturn( 0 );
+        when( configSource.getOverrideUserName() ).thenReturn( "root" );
+        when( configSource.getWorkingDirectory() ).thenReturn( new File( "." ) );
+        when( configSource.isIgnorePermissions() ).thenReturn( true );
 
         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 );
+
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getArchiverConfig();
+        verify( configSource, times( 2 ) ).getOverrideGid();
+        verify( configSource, times( 2 ) ).getOverrideGroupName();
+        verify( configSource, times( 2 ) ).getOverrideUid();
+        verify( configSource, times( 2 ) ).getOverrideUserName();
+        verify( configSource ).getWorkingDirectory();
+        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 archiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
 
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
-
-        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 );
-
-        mm.verifyAll();
-    }
-
-    private DefaultAssemblyArchiver createSubject( EasyMockSupport mm, TestTarArchiver ttArchiver )
-        throws NoSuchArchiverException
-    {
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
+        assertNull( new TestTarArchiver().compressionMethod );
+        assertEquals( TarLongFileMode.fail, archiver.longFileMode );
 
-        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 archiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
 
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
-
-        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 archiver = new TestTarArchiver();
+        
+        final ArchiverManager archiverManager = mock( ArchiverManager.class );
+        when( archiverManager.getArchiver( "tar" ) ).thenReturn( archiver );
 
-        final TestTarArchiver ttArchiver = new TestTarArchiver();
-
-        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
         {
@@ -545,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 );
 
@@ -630,73 +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 expectGetDestFile( final File file )
-        {
-            expect( archiver.getDestFile() ).andReturn( file ).anyTimes();
-        }
-
-        void createArchiver( final Class<? extends Archiver> archiverClass )
-        {
-            archiver = mm.createControl().createMock( archiverClass );
-
-            archiver.setForced( anyBoolean() );
-            expectLastCall().anyTimes();
-
-            archiver.setIgnorePermissions( false );
-            expectLastCall().anyTimes();
-
-            archiver.setOverrideUid( anyInt() );
-            expectLastCall().anyTimes();
-
-            archiver.setOverrideUserName( EasyMock.<String>anyObject() );
-            expectLastCall().anyTimes();
-
-            archiver.setOverrideGid( anyInt() );
-            expectLastCall().anyTimes();
-
-            archiver.setOverrideGroupName( EasyMock.<String>anyObject() );
-            expectLastCall().anyTimes();
-        }
-
-        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 6e7e9e3..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,14 +37,15 @@ 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;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
+@RunWith( MockitoJUnitRunner.class )
 public class ManifestCreationFinalizerTest
 {
 
@@ -62,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
@@ -147,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/archiver/AssemblyProxyArchiverTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
index b823c93..6e2d7a3 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
@@ -22,12 +22,22 @@ package org.apache.maven.plugins.assembly.archive.archiver;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.annotation.Nonnull;
+
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.FileSet;
@@ -42,17 +52,11 @@ import org.codehaus.plexus.logging.console.ConsoleLogger;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
+import org.mockito.junit.MockitoJUnitRunner;
 
-import javax.annotation.Nonnull;
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
+@RunWith( MockitoJUnitRunner.class )
 public class AssemblyProxyArchiverTest
 {
     @Rule
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 c37b404..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,32 +19,48 @@ 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.File;
 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;
 
+@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()
@@ -72,75 +88,47 @@ public class DependencySetAssemblyPhaseTest
         assembly.setIncludeBaseDirectory( false );
         assembly.addDependencySet( ds );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mm, project );
-
-        macTask.expectCSGetRepositories( null, null );
-
-        macTask.expectGetDestFile( new File( "junk" ) );
-//        macTask.expectAddFile( artifactFile, "out/dep", 10 );
-
         project.setArtifacts( Collections.singleton( artifact ) );
 
-        macTask.expectCSGetFinalName( "final-name" );
-
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        final MavenProject depProject = newMavenProject( "group", "dep", "1" );
-
-        macTask.expectBuildFromRepository( depProject );
-
-        macTask.expectResolveDependencySets();
-
-        mm.replayAll();
-
-        createPhase( macTask, logger, macTask.dependencyResolver ).execute( assembly, macTask.archiver,
-                                                                            macTask.configSource );
-
-        mm.verifyAll();
-    }
-
-    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 );
+        when( dependencyResolver.resolveDependencySets( eq( assembly ),
+                                                        isNull(AssemblerConfigurationSource.class),
+                                                        anyListOf( DependencySet.class ) ) ).thenReturn( new LinkedHashMap<DependencySet, Set<Artifact>>() );
+        
+        this.phase.execute( assembly, null, null );
 
-        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 );
-
-        macTask.expectResolveDependencySets();
-
-        mm.replayAll();
-
-        createPhase( macTask, logger, macTask.dependencyResolver ).execute( assembly, null, macTask.configSource );
+        this.phase.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/FileItemAssemblyPhaseTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
index 3be332b..62d4ac5 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
@@ -19,8 +19,8 @@ package org.apache.maven.plugins.assembly.archive.phase;
  * under the License.
  */
 
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -44,7 +44,10 @@ import org.codehaus.plexus.logging.console.ConsoleLogger;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
+@RunWith( MockitoJUnitRunner.class )
 public class FileItemAssemblyPhaseTest
 {
     @Rule
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 eb43fb5..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,46 +19,52 @@ package org.apache.maven.plugins.assembly.archive.phase;
  * under the License.
  */
 
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import org.apache.maven.model.Model;
-import org.apache.maven.plugins.assembly.archive.ArchiveCreationException;
+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.format.AssemblyFormattingException;
 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.EasyMock;
-import org.easymock.classextension.EasyMockSupport;
+import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-
+@RunWith( MockitoJUnitRunner.class )
 public class FileSetAssemblyPhaseTest
 {
-    final EasyMockSupport mm = new EasyMockSupport();
+    private FileSetAssemblyPhase phase;
+    
+    @Before
+    public void setUp() 
+    {
+        Logger logger = mock( Logger.class );
+        when( logger.isDebugEnabled() ).thenReturn( true );
+
+        this.phase = new FileSetAssemblyPhase();
+        phase.enableLogging( logger );
+    }
 
     @Test
     public void testShouldNotFailWhenNoFileSetsSpecified()
         throws Exception
     {
         final Assembly assembly = new Assembly();
-
         assembly.setId( "test" );
 
-        final MockAndControlForLogger macLogger = new MockAndControlForLogger();
-        final MockAndControlForAddFileSetsTask macTask = new MockAndControlForAddFileSetsTask( mm );
-
-        mm.replayAll();
-
-        createPhase( macLogger ).execute( assembly, macTask.archiver, macTask.configSource );
-
-        mm.verifyAll();
+        this.phase.execute( assembly, null, null );
     }
 
-    @Test public void testShouldAddOneFileSet()
-        throws ArchiveCreationException, AssemblyFormattingException
+    @Test
+    public void testShouldAddOneFileSet()
+        throws Exception
     {
         final Assembly assembly = new Assembly();
 
@@ -73,64 +79,33 @@ public class FileSetAssemblyPhaseTest
 
         assembly.addFileSet( fs );
 
-        final MockAndControlForLogger macLogger = new MockAndControlForLogger();
-        final MockAndControlForAddFileSetsTask macTask = new MockAndControlForAddFileSetsTask( mm );
-
-        macTask.expectGetArchiveBaseDirectory();
-
         final MavenProject project = new MavenProject( new Model() );
 
-        macLogger.expectError( true, true );
-
         final int dirMode = Integer.parseInt( "777", 8 );
         final int fileMode = Integer.parseInt( "777", 8 );
 
         final int[] modes = { -1, -1, dirMode, fileMode };
 
-        macTask.expectAdditionOfSingleFileSet( project, "final-name", false, modes, 1, true );
-
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
-
-        mm.replayAll();
-
-        createPhase( macLogger ).execute( assembly, macTask.archiver, macTask.configSource );
-
-        mm.verifyAll();
-    }
-
-    private FileSetAssemblyPhase createPhase( final MockAndControlForLogger macLogger )
-    {
-        final FileSetAssemblyPhase phase = new FileSetAssemblyPhase();
-
-        phase.enableLogging( macLogger.logger );
-
-        return phase;
+        // the logger sends a debug message with this info inside the addFileSet(..) method..
+        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 );
+        when( configSource.getFinalName() ).thenReturn( "final-name" );
+        
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
+
+        this.phase.execute( assembly, archiver, configSource );
+
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getArchiveBaseDirectory();
+        verify( configSource, atLeastOnce() ).getFinalName();
+        verify( configSource, atLeastOnce() ).getMavenSession();
+        verify( configSource, atLeastOnce() ).getProject();
+
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
     }
-
-    private final class MockAndControlForLogger
-    {
-        final Logger logger;
-
-        MockAndControlForLogger()
-        {
-            logger = mm.createMock( Logger.class );
-        }
-
-        public void expectError( final boolean debugCheck, final boolean debugEnabled )
-        {
-            if ( debugCheck )
-            {
-                expect( logger.isDebugEnabled() ).andReturn( debugEnabled ).anyTimes();
-            }
-
-            logger.debug( (String) anyObject() );
-            EasyMock.expectLastCall().anyTimes();
-            logger.warn( (String) anyObject() );
-            EasyMock.expectLastCall().anyTimes();
-            logger.error( (String) anyObject() );
-            EasyMock.expectLastCall().anyTimes();
-        }
-
-    }
-
 }
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 297ac95..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
@@ -24,49 +24,72 @@ 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;
 
 import java.io.File;
 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;
 
 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.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;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
+@RunWith( MockitoJUnitRunner.class )
 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()
@@ -74,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
@@ -85,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
@@ -96,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
@@ -107,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
@@ -118,25 +133,20 @@ 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" );
 
         final MavenProject project = new MavenProject( model );
 
-        final MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, project );
-
-        macTask.expectGetFinalName( null );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getProject() ).thenReturn( project );
 
         final FileSet fs = new FileSet();
 
@@ -153,34 +163,29 @@ public class ModuleSetAssemblyPhaseTest
 
         artifactProject.setArtifact( artifact );
 
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
-
-        final FileSet result =
-            createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).createFileSet( fs, sources,
-                                                                                                artifactProject,
-                                                                                                macTask.configSource );
+        final FileSet result = this.phase.createFileSet( fs, sources, artifactProject, configSource );
 
         assertEquals( "artifact/", result.getOutputDirectory() );
 
-        mm.verifyAll();
+        // 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();
     }
 
     @Test
     public void testCreateFileSet_ShouldPrependModuleDirWhenOutDirIsProvided()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final Model model = new Model();
         model.setArtifactId( "artifact" );
 
         final MavenProject project = new MavenProject( model );
 
-        final MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, project );
-
-        macTask.expectGetFinalName( null );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getProject() ).thenReturn( project );
 
         final FileSet fs = new FileSet();
         fs.setOutputDirectory( "out" );
@@ -198,29 +203,23 @@ public class ModuleSetAssemblyPhaseTest
         when( artifact.getArtifactId() ).thenReturn( "artifact" );
 
         artifactProject.setArtifact( artifact );
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
-
-        mm.replayAll();
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project /* or artifactProject */ );
 
-        final FileSet result =
-            createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).createFileSet( fs, sources,
-                                                                                                artifactProject,
-                                                                                                macTask.configSource );
+        final FileSet result = this.phase.createFileSet( fs, sources, artifactProject, configSource );
 
         assertEquals( "artifact/out/", result.getOutputDirectory() );
 
-        mm.verifyAll();
+        // 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();
     }
 
     @Test
     public void testCreateFileSet_ShouldAddExcludesForSubModulesWhenExcludeSubModDirsIsTrue()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mm, null );
-
-        macTask.expectGetFinalName( null );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
 
         final FileSet fs = new FileSet();
 
@@ -241,18 +240,17 @@ public class ModuleSetAssemblyPhaseTest
         Artifact artifact = mock( Artifact.class );
 
         project.setArtifact( artifact );
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
-
-        mm.replayAll();
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        final FileSet result =
-            createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null ).createFileSet( fs, sources, project,
-                                                                                                macTask.configSource );
+        final FileSet result = this.phase.createFileSet( fs, sources, project, configSource );
 
         assertEquals( 1, result.getExcludes().size() );
         assertEquals( "submodule/**", result.getExcludes().get( 0 ) );
 
-        mm.verifyAll();
+        // 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();
     }
 
     @Test
@@ -262,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, project );
-
         final MavenProject module = createProject( "group", "module", "version", project );
 
         Artifact artifact = mock( Artifact.class );
@@ -283,63 +277,69 @@ public class ModuleSetAssemblyPhaseTest
         module.setArtifact( artifact );
 
         final List<MavenProject> projects = new ArrayList<>();
-
         projects.add( module );
 
-        macTask.expectGetReactorProjects( projects );
-        macTask.expectGetFinalName( "final-name" );
-        macTask.expectGetDestFile( new File( "junk" ) );
-        macTask.expectGetMode( 0777, 0777 );
-
-        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 AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getReactorProjects() ).thenReturn( projects );
+        when( configSource.getFinalName() ).thenReturn( "final-name" );
+        when( configSource.getProject() ).thenReturn( project );
+        
+        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();
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
-
-        mm.replayAll();
-
-        final ModuleSetAssemblyPhase phase = createPhase( logger, macTask.dependencyResolver, null );
-        phase.execute( assembly, macTask.archiver, macTask.configSource );
-
-        mm.verifyAll();
+        when( dependencyResolver.resolveDependencySets( eq( assembly ), 
+                                                        eq( ms ),
+                                                        eq( configSource ),
+                                                        anyListOf( DependencySet.class ) ) ).thenReturn( new LinkedHashMap<DependencySet, Set<Artifact>>() );
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, module );
+
+        this.phase.execute( assembly, 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();
+        verify( configSource, atLeastOnce() ).getReactorProjects();
+
+        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 );
@@ -354,36 +354,26 @@ 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,
-                                                                                                macTask.configSource );
-
-        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, null );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getFinalName() ).thenReturn( "final-name" );
 
         Artifact artifact = mock( Artifact.class );
         when( artifact.getClassifier() ).thenReturn( "test" );
         final File artifactFile = temporaryFolder.newFile();
         when( artifact.getFile() ).thenReturn( artifactFile );
 
-        macTask.expectGetFinalName( "final-name" );
-        macTask.expectGetDestFile( new File( "junk" ) );
-        macTask.expectGetMode( 0222, 0222 );
-        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();
 
@@ -399,30 +389,37 @@ public class ModuleSetAssemblyPhaseTest
 
         final Set<MavenProject> projects = singleton( project );
 
-        macTask.expectResolveDependencySets();
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
-
-        mm.replayAll();
-
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        createPhase( logger, macTask.dependencyResolver, null ).addModuleBinaries( null, null, binaries, projects,
-                                                                                   macTask.archiver,
-                                                                                   macTask.configSource );
-
-        mm.verifyAll();
+        when( dependencyResolver.resolveDependencySets( isNull( Assembly.class ), 
+                                                        isNull( ModuleSet.class ),
+                                                        eq( configSource ),
+                                                        anyListOf( DependencySet.class ) ) ).thenReturn( new LinkedHashMap<DependencySet, Set<Artifact>>() );
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
+
+        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();
+
+        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 );
-        when( artifact.getClassifier() ).thenReturn( "test" );
 
         final ModuleBinaries binaries = new ModuleBinaries();
 
@@ -437,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,
-                                                           macTask.configSource );
+            
+            this.phase.addModuleBinaries( null, null, binaries, projects, null, null );
 
             fail( "Should throw an invalid configuration exception because of module with missing attachment." );
         }
@@ -454,28 +447,23 @@ 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 );
 
-        macTask.expectGetFinalName( "final-name" );
-        macTask.expectGetDestFile( new File( "junk" ) );
-        macTask.expectAddFile( artifactFile, "out/artifact",
-                               TypeConversionUtils.modeToInt( "777",
-                                                              new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
-        macTask.expectGetMode( 0222, 0222 );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getFinalName() ).thenReturn( "final-name" );
+        
+        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();
 
@@ -490,18 +478,30 @@ public class ModuleSetAssemblyPhaseTest
 
         final Set<MavenProject> projects = singleton( project );
 
-        macTask.expectResolveDependencySets();
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
+        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();
+        this.phase.addModuleBinaries( null, null, binaries, projects, archiver, configSource );
 
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
-
-        createPhase( logger, macTask.dependencyResolver, null ).addModuleBinaries( null, null, binaries, projects,
-                                                                                   macTask.archiver,
-                                                                                   macTask.configSource );
-
-        mm.verifyAll();
+        // 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();
+        
+        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
@@ -511,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." );
         }
@@ -526,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 );
@@ -537,167 +532,159 @@ public class ModuleSetAssemblyPhaseTest
         final MavenProject project = createProject( "group", "artifact", "version", null );
         project.setArtifact( artifact );
 
-        macTask.expectGetFinalName( "final-name" );
-        macTask.expectGetDestFile( new File( "junk" ) );
-        macTask.expectGetMode( 0222, 0222 );
-
-        macTask.expectAddFile( artifactFile, "out/artifact",
-                               TypeConversionUtils.modeToInt( "777",
-                                                              new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getFinalName() ).thenReturn( "final-name" );
+        
+        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" );
         binaries.setOutputFileNameMapping( "artifact" );
         binaries.setUnpack( false );
         binaries.setFileMode( "777" );
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
+        this.phase.addModuleArtifact( artifact, project, archiver, configSource, binaries );
 
-        createPhase( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ),
-                     null ).addModuleArtifact( artifact, project, macTask.archiver,
-                                               macTask.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 );
 
-        macTask.expectGetProject( project );
-
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getFinalName() ).thenReturn( "final-name" );
+        when( configSource.getProject() ).thenReturn( project );
         project.setArtifact( mock( Artifact.class ) );
 
         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 );
 
-        macTask.expectGetArchiveBaseDirectory();
-
-        final int mode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
-        final int[] modes = { -1, -1, mode, mode };
-
-        macTask.expectAdditionOfSingleFileSet( project, "final-name", false, modes, 1, true, false );
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
+        // the logger sends a debug message with this info inside the addFileSet(..) method..
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( -1 );
+        when( archiver.getOverrideFileMode() ).thenReturn( -1 );
+        
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        mm.replayAll();
+        when( logger.isDebugEnabled() ).thenReturn( true );
 
-        final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
+        this.phase.addModuleSourceFileSets( sources, projects, archiver,
+                                                             configSource );
 
-        createPhase( logger, null ).addModuleSourceFileSets( sources, projects, macTask.archiver,
-                                                             macTask.configSource );
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getArchiveBaseDirectory();
+        verify( configSource, atLeastOnce() ).getFinalName();
+        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 MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mm, project );
-
         final List<MavenProject> projects = Collections.singletonList( project );
 
-        macTask.expectGetReactorProjects( projects );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getProject() ).thenReturn( project );
+        when( configSource.getReactorProjects() ).thenReturn( projects );
 
         final ModuleSet moduleSet = new ModuleSet();
         moduleSet.setIncludeSubModules( true );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
-            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, macTask.configSource, logger );
+            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
         assertTrue( moduleProjects.isEmpty() );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getReactorProjects();
+        verify( configSource, atLeastOnce() ).getProject();
     }
 
     @Test
     public void testGetModuleProjects_ShouldReturnNothingWhenReactorContainsTwoSiblingProjects()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
-
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mm, project );
-
         final MavenProject project2 = createProject( "group", "artifact2", "version", null );
 
         final List<MavenProject> projects = new ArrayList<>();
         projects.add( project );
         projects.add( project2 );
 
-        macTask.expectGetReactorProjects( projects );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getReactorProjects() ).thenReturn( projects );
+        when( configSource.getProject() ).thenReturn( project );
 
         final ModuleSet moduleSet = new ModuleSet();
         moduleSet.setIncludeSubModules( true );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
-            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, macTask.configSource, logger );
+            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
         assertTrue( moduleProjects.isEmpty() );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getReactorProjects();
+        verify( configSource, atLeastOnce() ).getProject();
     }
 
     @Test
     public void testGetModuleProjects_ShouldReturnModuleOfCurrentProject()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
-
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mm, project );
-
         final MavenProject project2 = createProject( "group", "artifact2", "version", project );
 
         final List<MavenProject> projects = new ArrayList<>();
         projects.add( project );
         projects.add( project2 );
 
-        macTask.expectGetReactorProjects( projects );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getReactorProjects() ).thenReturn( projects );
+        when( configSource.getProject() ).thenReturn( project );
 
         final ModuleSet moduleSet = new ModuleSet();
         moduleSet.setIncludeSubModules( true );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
-            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, macTask.configSource, logger );
+            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
         assertFalse( moduleProjects.isEmpty() );
 
@@ -705,20 +692,16 @@ public class ModuleSetAssemblyPhaseTest
 
         assertEquals( "artifact2", result.getArtifactId() );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getReactorProjects();
+        verify( configSource, atLeastOnce() ).getProject();
     }
 
     @Test
     public void testGetModuleProjects_ShouldReturnDescendentModulesOfCurrentProject()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
-
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mm, project );
-
         final MavenProject project2 = createProject( "group", "artifact2", "version", project );
         final MavenProject project3 = createProject( "group", "artifact3", "version", project2 );
 
@@ -727,15 +710,15 @@ public class ModuleSetAssemblyPhaseTest
         projects.add( project2 );
         projects.add( project3 );
 
-        macTask.expectGetReactorProjects( projects );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getReactorProjects() ).thenReturn( projects );
+        when( configSource.getProject() ).thenReturn( project );
 
         final ModuleSet moduleSet = new ModuleSet();
         moduleSet.setIncludeSubModules( true );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
-            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, macTask.configSource, logger );
+            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
         assertEquals( 2, moduleProjects.size() );
 
@@ -745,20 +728,17 @@ public class ModuleSetAssemblyPhaseTest
 
         verifyResultIs( check, moduleProjects );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getReactorProjects();
+        verify( configSource, atLeastOnce() ).getProject();
     }
 
     @Test
     public void testGetModuleProjects_ShouldExcludeModuleAndDescendentsTransitively()
         throws Exception
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
         final MavenProject project = createProject( "group", "artifact", "version", null );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mm, project );
-
         Artifact artifact1 = mock( Artifact.class );
         project.setArtifact( artifact1 );
 
@@ -784,21 +764,23 @@ public class ModuleSetAssemblyPhaseTest
         projects.add( project2 );
         projects.add( project3 );
 
-        macTask.expectGetReactorProjects( projects );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getReactorProjects() ).thenReturn( projects );
+        when( configSource.getProject() ).thenReturn( project );
 
         final ModuleSet moduleSet = new ModuleSet();
         moduleSet.setIncludeSubModules( true );
 
         moduleSet.addExclude( "group:artifact2" );
 
-        mm.replayAll();
-
         final Set<MavenProject> moduleProjects =
-            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, macTask.configSource, logger );
+            ModuleSetAssemblyPhase.getModuleProjects( moduleSet, configSource, logger );
 
         assertTrue( moduleProjects.isEmpty() );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getReactorProjects();
+        verify( configSource, atLeastOnce() ).getProject();
     }
 
     private void verifyResultIs( final List<MavenProject> check, final Set<MavenProject> moduleProjects )
@@ -870,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 3f38c97..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,9 +19,12 @@ 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;
 
@@ -30,240 +33,110 @@ 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;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
+@RunWith( MockitoJUnitRunner.class )
 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 MockAndControlForConfigSource macCS = new MockAndControlForConfigSource( mm );
-
-        final File tempRoot = temporaryFolder.getRoot();
-
-        macCS.expectGetTemporaryRootDirectory( tempRoot );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        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,
-                                                                                                             macCS
-                                                                                                                 .configSource );
-
-        mm.verifyAll();
+        this.phase.execute( assembly, null, configSource );
+        
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource, atLeastOnce() ).getTemporaryRootDirectory();
+        
+        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 MockAndControlForConfigSource macCS = new MockAndControlForConfigSource( mm );
-
         final File tempRoot = temporaryFolder.getRoot();
 
-        macCS.expectGetTemporaryRootDirectory( tempRoot );
-        macCS.expectGetProject( new MavenProject( new Model() ) );
-        macCS.expectGetFinalName( "final-name" );
-        macCS.expectInterpolators();
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getCommandLinePropsInterpolator() ).thenReturn( FixedStringSearchInterpolator.empty() );
+        when( configSource.getEnvInterpolator() ).thenReturn( FixedStringSearchInterpolator.empty() );
+        when( configSource.getFinalName() ).thenReturn( "final-name" );
+        when( configSource.getMainProjectInterpolator() ).thenReturn( FixedStringSearchInterpolator.empty() );
+        when( configSource.getProject() ).thenReturn( new MavenProject( new Model() ) );
+        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" );
-
-        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 );
 
-        mm.replayAll();
-
-        createPhase( macRepo.repositoryAssembler, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ).execute( assembly,
-                                                                                                             macArchiver.archiver,
-                                                                                                             macCS
-                                                                                                                 .configSource );
-
-        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 );
-        }
-
-        // public void expectAddFile( File file, String outputLocation, int fileMode )
-        // {
-        // try
-        // {
-        // archiver.addFile( file, outputLocation, fileMode );
-        // }
-        // catch ( ArchiverException e )
-        // {
-        // Assert.fail( "Should never happen." );
-        // }
-        // }
-    }
-
-    private final class MockAndControlForConfigSource
-    {
-        final AssemblerConfigurationSource configSource;
-
-        public MockAndControlForConfigSource( final EasyMockSupport mockManager )
-        {
-            configSource = mockManager.createMock( AssemblerConfigurationSource.class );
-
-            expect( configSource.getMavenSession() ).andReturn( null ).anyTimes();
-        }
-
-        public void expectGetProject( final MavenProject project )
-        {
-            expect( configSource.getProject() ).andReturn( project ).atLeastOnce();
-        }
-
-        public void expectGetFinalName( final String finalName )
-        {
-            expect( configSource.getFinalName() ).andReturn( finalName ).atLeastOnce();
-        }
-
-        public void expectInterpolators()
-        {
-            expect( configSource.getCommandLinePropsInterpolator() ).andReturn(
-                FixedStringSearchInterpolator.empty() ).anyTimes();
-            expect( configSource.getEnvInterpolator() ).andReturn( FixedStringSearchInterpolator.empty() ).anyTimes();
-            expect( configSource.getMainProjectInterpolator() ).andReturn(
-                FixedStringSearchInterpolator.empty() ).anyTimes();
-        }
-
-        public void expectGetTemporaryRootDirectory( final File tempRoot )
-        {
-            expect( configSource.getTemporaryRootDirectory() ).andReturn( tempRoot ).atLeastOnce();
-        }
-
-        //
-        // public void expectGetBasedir( File basedir )
-        // {
-        // configSource.getBasedir();
-        // control.setReturnValue( basedir, MockControl.ONE_OR_MORE );
-        // }
-    }
-
-    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" );
-            }
+        final int mode = TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
 
-        }
+        final int defaultDirMode = -1;
+        final int defaultFileMode = -1;
+
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( defaultDirMode );
+        when( archiver.getOverrideFileMode() ).thenReturn( defaultFileMode );
+
+        this.phase.execute( assembly, archiver, configSource );
+
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getCommandLinePropsInterpolator();
+        verify( configSource ).getEnvInterpolator();
+        verify( configSource, atLeastOnce() ).getFinalName();
+        verify( configSource ).getMainProjectInterpolator();
+        verify( configSource ).getMavenSession();
+        verify( configSource, atLeastOnce() ).getProject();
+        verify( configSource, atLeastOnce() ).getTemporaryRootDirectory();
+        
+        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 32d13fa..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,12 @@ package org.apache.maven.plugins.assembly.archive.task;
  * under the License.
  */
 
-import static org.easymock.EasyMock.anyObject;
+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;
-import static org.junit.Assert.fail;
 
 import java.io.File;
 import java.io.IOException;
@@ -32,46 +34,56 @@ import java.util.Arrays;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
 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.task.testutils.MockAndControlForAddArtifactTask;
+import org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiverTest;
 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;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
+@RunWith( MockitoJUnitRunner.class )
 public class AddArtifactTaskTest
 {
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder();
 
-    private EasyMockSupport mockManager;
-
-    private MockAndControlForAddArtifactTask mac;
+    private MavenProject mainProject;
+    
+    private AssemblerConfigurationSource configSource;
 
     @Before
     public void setUp()
         throws IOException
     {
-        mockManager = new EasyMockSupport();
-
         Model model = new Model();
         model.setGroupId( "group" );
         model.setArtifactId( "main" );
         model.setVersion( "1000" );
 
-        MavenProject mainProject = new MavenProject( model );
+        this.mainProject = new MavenProject( model );
 
-        mac = new MockAndControlForAddArtifactTask( mockManager, mainProject );
-        mac.expectGetFinalName( "final-name" );
+        this.configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getFinalName() ).thenReturn( "final-name" );
+    }
+    
+    @After
+    public void tearDown()
+    {
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource, atLeastOnce() ).getFinalName();
+        verify( configSource, atLeastOnce() ).getMavenSession();
     }
 
     @Test
@@ -84,18 +96,25 @@ public class AddArtifactTaskTest
         File artifactFile = temporaryFolder.newFile();
         when( artifact.getFile() ).thenReturn( artifactFile );
 
-        mac.expectGetMode( 0222, 0222 );
-        mac.expectGetDestFile( new File( "junk" ) );
-        mac.expectAddFile( artifactFile, outputLocation );
-        mac.expectInterpolators();
-
-        mockManager.replayAll();
+        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 );
 
         AddArtifactTask task = createTask( artifact );
 
-        task.execute( mac.archiver, mac.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
@@ -114,15 +133,16 @@ public class AddArtifactTaskTest
         File artifactFile = temporaryFolder.newFile();
         when( artifact.getFile() ).thenReturn( artifactFile );
 
-        mac.expectGetMode( 0222, 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 );
-        mac.expectInterpolators();
-        mockManager.replayAll();
+        when( configSource.getProject() ).thenReturn( mainProject );
 
-        AddArtifactTask task =
-            new AddArtifactTask( artifact, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null );
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, mainProject );
+
+        AddArtifactTask task = new AddArtifactTask( artifact, new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ), null );
         task.setOutputDirectory( outputDir );
         task.setFileNameMapping( new DependencySet().getOutputFileNameMapping() );
 
@@ -133,9 +153,15 @@ public class AddArtifactTaskTest
         MavenProject project = new MavenProject( model );
         task.setProject( project );
 
-        task.execute( mac.archiver, mac.configSource );
+        task.execute( archiver, configSource );
 
-        mockManager.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource, atLeastOnce() ).getProject();
+        
+        verify( archiver ).getOverrideDirectoryMode();
+        verify( archiver ).getOverrideFileMode();
+        verify( archiver, atLeastOnce() ).getDestFile();
+        verify( archiver ).addFile( artifactFile, outputDir + artifactId + "-" + version + "." + ext );
     }
 
     private AddArtifactTask createTask( Artifact artifact )
@@ -151,75 +177,79 @@ public class AddArtifactTaskTest
     public void testShouldAddArchiveFileWithUnpack()
         throws ArchiveCreationException, AssemblyFormattingException, IOException
     {
-        mac.expectModeChange( -1, -1, -1, -1, 1 );
-        mac.expectInterpolators();
+        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, mac.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 );
-        mac.expectInterpolators();
+        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, mac.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();
+        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" };
@@ -227,21 +257,19 @@ public class AddArtifactTaskTest
         Artifact artifact = mock( Artifact.class );
         when( artifact.getFile() ).thenReturn( temporaryFolder.newFile() );
 
-        mac.expectGetDestFile( new File( "junk" ) );
-        mac.expectAddArchivedFileSet();
-        mac.expectInterpolators();
-
-        mockManager.replayAll();
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, mainProject );
 
         AddArtifactTask task = createTask( artifact );
-
         task.setUnpack( true );
         task.setIncludes( Arrays.asList( includes ) );
         task.setExcludes( Arrays.asList( excludes ) );
 
-        task.execute( mac.archiver, mac.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 464de0a..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
@@ -22,40 +22,54 @@ package org.apache.maven.plugins.assembly.archive.task;
 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;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.execution.MavenSession;
 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.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.classextension.EasyMockSupport;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+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;
 import java.util.Set;
 
+@RunWith( MockitoJUnitRunner.class )
 public class AddDependencySetsTaskTest
 {
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder();
 
-    private final EasyMockSupport mockManager = new EasyMockSupport();
-
     @Test
     public void testAddDependencySet_ShouldInterpolateDefaultOutputFileNameMapping()
         throws Exception
@@ -101,32 +115,54 @@ public class AddDependencySetsTaskTest
 
         depProject.setArtifact( depArtifact );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mockManager, mainProject );
-
-        macTask.expectBuildFromRepository( depProject );
-        macTask.expectCSGetFinalName( mainAid + "-" + mainVer );
-
-        macTask.expectCSGetRepositories( null, null );
+        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 );
 
-        macTask.expectGetDestFile( new File( "junk" ) );
-        macTask.expectAddFile( newFile, outDir + depAid + "-" + depVer + "." + depExt, 10 );
+        final MavenSession session = mock( MavenSession.class );
+        when( session.getProjectBuildingRequest() ).thenReturn( mock( ProjectBuildingRequest.class ) );
+        when( session.getExecutionProperties() ).thenReturn( new Properties() );
 
-        macTask.expectGetMode( 0222, 0222 );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getFinalName() ).thenReturn( mainAid + "-" + mainVer );
+        when( configSource.getProject() ).thenReturn( mainProject );
+        when( configSource.getMavenSession() ).thenReturn( session );
 
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( new File( "junk" ) );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
 
-        mockManager.replayAll();
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, mainProject );
 
         final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
         final AddDependencySetsTask task =
             new AddDependencySetsTask( Collections.singletonList( ds ), Collections.singleton( depArtifact ),
-                                       depProject, macTask.projectBuilder, logger );
-
-        task.addDependencySet( ds, macTask.archiver, macTask.configSource );
+                                       depProject, projectBuilder, logger );
 
-        mockManager.verifyAll();
+        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, 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
@@ -135,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, macTask.configSource );
-
-        mockManager.verifyAll();
+        task.addDependencySet( ds, null, null );
     }
 
     // TODO: Find a better way of testing the project-stubbing behavior when a ProjectBuildingException takes place.
@@ -162,9 +191,6 @@ public class AddDependencySetsTaskTest
 
         final ProjectBuildingException pbe = new ProjectBuildingException( "test", "Test error.", new Throwable() );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mockManager, new MavenProject( new Model() ) );
-
         final String aid = "test-dep";
         final String version = "2.0-SNAPSHOT";
         final String type = "jar";
@@ -181,35 +207,55 @@ public class AddDependencySetsTaskTest
 
         final File destFile = new File( "assembly-dep-set.zip" );
 
-        macTask.expectGetDestFile( destFile );
-        macTask.expectBuildFromRepository( pbe );
-        macTask.expectCSGetRepositories( null, null );
-        macTask.expectCSGetFinalName( "final-name" );
-        macTask.expectAddFile( file, "out/" + aid + "-" + version + "." + type );
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getDestFile() ).thenReturn( destFile );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( 0222 );
+        when( archiver.getOverrideFileMode() ).thenReturn( 0222 );
 
-        macTask.expectGetMode( 0222, 0222 );
+        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 );
+        
 
         final DependencySet ds = new DependencySet();
         ds.setOutputDirectory( "/out" );
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
-
-        mockManager.replayAll();
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
         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, macTask.configSource );
+        task.addDependencySet( ds, archiver, configSource );
 
-        mockManager.verifyAll();
+        // 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();
+
+        verify( projectBuilder ).build( any(Artifact.class), any(ProjectBuildingRequest.class) );
     }
 
     @Test
     public void testAddDependencySet_ShouldAddOneDependencyFromProjectWithoutUnpacking()
-        throws AssemblyFormattingException, ArchiveCreationException, IOException,
-        InvalidAssemblerConfigurationException
+        throws Exception
     {
         verifyOneDependencyAdded( "out", false );
     }
@@ -222,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() );
 
@@ -236,44 +282,77 @@ public class AddDependencySetsTaskTest
         ds.setDirectoryMode( Integer.toString( 10, 8 ) );
         ds.setFileMode( Integer.toString( 10, 8 ) );
 
-        final MockAndControlForAddDependencySetsTask macTask =
-            new MockAndControlForAddDependencySetsTask( mockManager, new MavenProject( new Model() ) );
+        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 );
+        when( configSource.getFinalName() ).thenReturn( "final-name" );
+        
         Artifact artifact = mock( Artifact.class );
         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();
+            
         }
         else
         {
-            macTask.expectAddFile( artifactFile, outputLocation + "/artifact", 10 );
+            when( configSource.getProject() ).thenReturn( project );
         }
 
-        macTask.expectGetDestFile( new File( "junk" ) );
-        macTask.expectCSGetFinalName( "final-name" );
-        macTask.expectCSGetRepositories( null, null );
 
         final MavenProject depProject = new MavenProject( new Model() );
 
-        macTask.expectBuildFromRepository( depProject );
-        macTask.expectGetMode( 0222, 0222 );
+        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 );
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
-
-        mockManager.replayAll();
+                                                                      projectBuilder, logger );
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
-        task.addDependencySet( ds, macTask.archiver, macTask.configSource );
+        task.addDependencySet( ds, archiver, configSource );
 
-        mockManager.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getFinalName();
+        verify( configSource, atLeastOnce() ).getMavenSession();
+        
+        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();
+        }
     }
 
     @Test
@@ -282,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 ) );
 
@@ -292,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
@@ -336,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 );
 
@@ -346,8 +416,6 @@ public class AddDependencySetsTaskTest
         assertNotNull( result );
         assertEquals( 1, result.size() );
         assertSame( am1, result.iterator().next() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -378,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 );
 
@@ -388,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 2a534e6..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,54 +20,54 @@ 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;
 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
@@ -74,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 98d861f..b6a4dc0 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,44 +19,39 @@ package org.apache.maven.plugins.assembly.archive.task;
  * under the License.
  */
 
+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;
+
+import java.io.File;
+import java.util.ArrayList;
+
 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.classextension.EasyMockSupport;
-import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
-import java.io.File;
-import java.util.ArrayList;
-
-import static org.easymock.EasyMock.expect;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
+@RunWith( MockitoJUnitRunner.class )
 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
@@ -127,36 +122,38 @@ public class AddFileSetsTaskTest
     public void testAddFileSet_ShouldAddDirectory()
         throws Exception
     {
+        File basedir = temporaryFolder.getRoot();
+        
         final FileSet fs = new FileSet();
-
-        final String dirname = "dir";
-
-        fs.setDirectory( dirname );
+        fs.setDirectory( temporaryFolder.newFolder( "dir" ).getName() );
         fs.setOutputDirectory( "dir2" );
 
-        // ensure this exists, so the directory addition will proceed.
-        final File srcDir = new File( macTask.archiveBaseDir, dirname );
-        srcDir.mkdirs();
-
-        final int[] modes = { -1, -1, -1, -1 };
-
-        macTask.expectAdditionOfSingleFileSet( null, null, true, modes, 1, true, false );
-
-//        macTask.expectGetProject( null );
+        // the logger sends a debug message with this info inside the addFileSet(..) method..
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( -1 );
+        when( archiver.getOverrideFileMode() ).thenReturn( -1 );
+        
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
 
         final MavenProject project = new MavenProject( new Model() );
+        project.setFile( new File( basedir, "pom.xml" ) );
 
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
-        mockManager.replayAll();
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
 
         task.setLogger( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
         task.setProject( project );
 
-        task.addFileSet( fs, macTask.archiver, macTask.configSource, macTask.archiveBaseDir );
+        task.addFileSet( fs, archiver, configSource, null );
 
-        mockManager.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource, atLeastOnce() ).getFinalName();
+        verify( configSource, atLeastOnce() ).getMavenSession();
+        
+        verify( archiver, times( 2 ) ).getOverrideDirectoryMode();
+        verify( archiver, times( 2 ) ).getOverrideFileMode();
+        verify( archiver, atLeastOnce() ) .addFileSet( any( org.codehaus.plexus.archiver.FileSet.class ) );
     }
 
     @Test
@@ -164,9 +161,7 @@ public class AddFileSetsTaskTest
         throws Exception
     {
         final FileSet fs = new FileSet();
-
         final String dirname = "dir";
-
         fs.setDirectory( dirname );
 
         final File archiveBaseDir = temporaryFolder.newFolder();
@@ -175,25 +170,29 @@ public class AddFileSetsTaskTest
         final File srcDir = new File( archiveBaseDir, dirname );
         srcDir.mkdirs();
 
-        final int[] modes = { -1, -1, -1, -1 };
-
-        macTask.expectAdditionOfSingleFileSet( null, null, true, modes, 1, true, false );
-
-        //macTask.expectGetProject( null );
+        // the logger sends a debug message with this info inside the addFileSet(..) method..
+        final Archiver archiver = mock( Archiver.class );
+        when( archiver.getOverrideDirectoryMode() ).thenReturn( -1 );
+        when( archiver.getOverrideFileMode() ).thenReturn( -1 );
+        
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
 
         final MavenProject project = new MavenProject( new Model() );
-        DefaultAssemblyArchiverTest.setupInterpolators( macTask.configSource );
-
-        mockManager.replayAll();
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
-
         task.setLogger( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
         task.setProject( project );
 
-        task.addFileSet( fs, macTask.archiver, macTask.configSource, archiveBaseDir );
+        task.addFileSet( fs, archiver, configSource, archiveBaseDir );
 
-        mockManager.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource, atLeastOnce() ).getFinalName();
+        verify( configSource, atLeastOnce() ).getMavenSession();
+        
+        verify( archiver, times( 2 ) ).getOverrideDirectoryMode();
+        verify( archiver, times( 2 ) ).getOverrideFileMode();
+        verify( archiver ).addFileSet( any( org.codehaus.plexus.archiver.FileSet.class ) );
     }
 
     @Test
@@ -202,48 +201,47 @@ public class AddFileSetsTaskTest
     {
         final FileSet fs = new FileSet();
 
-        final String dirname = "dir";
-
-        fs.setDirectory( dirname );
-
+        fs.setDirectory( "dir" );
         final File archiveBaseDir = temporaryFolder.newFolder();
 
-        macTask.expectGetFinalName( "finalName" );
-
-        //macTask.expectGetProject( null );
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getFinalName() ).thenReturn( "finalName" );
 
-        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( macTask.configSource );
-
-        mockManager.replayAll();
+        DefaultAssemblyArchiverTest.setupInterpolators( configSource, project );
 
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
 
         task.setLogger( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
         task.setProject( project );
 
-        task.addFileSet( fs, macTask.archiver, macTask.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
     public void testExecute_ShouldThrowExceptionIfArchiveBasedirProvidedIsNonExistent()
         throws Exception
     {
-        macTask.archiveBaseDir = new File( temporaryFolder.getRoot(), "archive");
-        macTask.expectGetArchiveBaseDirectory();
-
-        mockManager.replayAll();
+        File archiveBaseDir = new File( temporaryFolder.getRoot(), "archive");
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getArchiveBaseDirectory() ).thenReturn( archiveBaseDir );
 
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
 
         try
         {
-            task.execute( macTask.archiver, macTask.configSource );
+            task.execute( null, configSource );
 
             fail( "Should throw exception due to non-existent archiveBasedir location that was provided." );
         }
@@ -252,23 +250,23 @@ public class AddFileSetsTaskTest
             // should do this, because it cannot use the provide archiveBasedir.
         }
 
-        mockManager.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( configSource ).getArchiveBaseDirectory();
     }
 
     @Test
     public void testExecute_ShouldThrowExceptionIfArchiveBasedirProvidedIsNotADirectory()
         throws Exception
     {
-        macTask.archiveBaseDir = temporaryFolder.newFile();
-        macTask.expectGetArchiveBaseDirectory();
-
-        mockManager.replayAll();
+        File archiveBaseDir = temporaryFolder.newFile();
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.getArchiveBaseDirectory() ).thenReturn( archiveBaseDir );
 
         final AddFileSetsTask task = new AddFileSetsTask( new ArrayList<FileSet>() );
 
         try
         {
-            task.execute( macTask.archiver, macTask.configSource );
+            task.execute( null, configSource );
 
             fail( "Should throw exception due to non-directory archiveBasedir location that was provided." );
         }
@@ -276,8 +274,8 @@ 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 d5c8f51..0000000
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
+++ /dev/null
@@ -1,199 +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.archive.DefaultAssemblyArchiverTest;
-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.apache.maven.project.MavenProject;
-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 AssemblerConfigurationSource configSource;
-
-    public final DependencyResolver dependencyResolver;
-
-    private MavenProject project = null;
-
-    public MockAndControlForAddArtifactTask( final EasyMockSupport mockManager )
-    {
-        this( mockManager, null );
-    }
-
-    public MockAndControlForAddArtifactTask( final EasyMockSupport mockManager, final MavenProject project )
-    {
-        this.project = project;
-
-        archiver = mockManager.createMock( Archiver.class );
-        configSource = mockManager.createMock( AssemblerConfigurationSource.class );
-        dependencyResolver = mockManager.createMock( DependencyResolver.class );
-
-        enableDefaultExpectations();
-    }
-
-    private void enableDefaultExpectations()
-    {
-        expect( configSource.getProject() ).andReturn( project ).anyTimes();
-        expect( configSource.getMavenSession() ).andReturn( null ).anyTimes();
-    }
-
-    public void expectGetFinalName( final String finalName )
-    {
-        expect( configSource.getFinalName() ).andReturn( finalName ).atLeastOnce();
-    }
-
-    public void expectGetDestFile( final File destFile )
-    {
-        expect( archiver.getDestFile() ).andReturn( destFile ).atLeastOnce();
-    }
-
-    public void expectGetMode( final int originalDirMode, final int originalFileMode )
-    {
-        expect( archiver.getOverrideDirectoryMode() ).andReturn( originalDirMode );
-        expect( archiver.getOverrideFileMode() ).andReturn( originalFileMode );
-        archiver.setFileMode( anyInt() );
-        EasyMock.expectLastCall().anyTimes();
-    }
-
-
-    public void expectAddArchivedFileSet()
-    {
-        try
-        {
-            archiver.addArchivedFileSet( (File) anyObject(), (String) anyObject(), (String[]) anyObject(),
-                                         (String[]) anyObject() );
-            EasyMock.expectLastCall().anyTimes();
-            archiver.addArchivedFileSet( (ArchivedFileSet) anyObject(), (Charset) anyObject() );
-            EasyMock.expectLastCall().anyTimes();
-
-        }
-        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().anyTimes();
-        }
-        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 expectGetReactorProjects( final List<MavenProject> projects )
-    {
-        expect( configSource.getReactorProjects() ).andReturn( projects ).atLeastOnce();
-    }
-
-
-    public void expectResolveDependencySets()
-        throws DependencyResolutionException
-    {
-        expect( dependencyResolver.resolveDependencySets( (Assembly) anyObject(), (ModuleSet) anyObject(),
-                                                          (AssemblerConfigurationSource) anyObject(),
-                                                          (List<DependencySet>) anyObject() ) ).andReturn(
-            new LinkedHashMap<DependencySet, Set<Artifact>>() ).anyTimes();
-
-    }
-
-    public void expectInterpolators()
-    {
-        DefaultAssemblyArchiverTest.setupInterpolators( configSource );
-
-    }
-}
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 4989f0b..0000000
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
+++ /dev/null
@@ -1,292 +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.artifact.repository.ArtifactRepository;
-import org.apache.maven.execution.MavenSession;
-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.Properties;
-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 AssemblerConfigurationSource configSource;
-
-    public final ProjectBuilder projectBuilder;
-
-    public final ArchiverManager archiverManager;
-
-    public final DependencyResolver dependencyResolver;
-
-    private final MavenProject project;
-
-    private final MavenSession session;
-    
-    private final ProjectBuildingRequest projectBuildingRequest;
-
-    public MockAndControlForAddDependencySetsTask( final EasyMockSupport mockManager )
-    {
-        this( mockManager, null );
-    }
-
-    public MockAndControlForAddDependencySetsTask( final EasyMockSupport mockManager, final MavenProject project )
-    {
-        this.project = project;
-
-        this.session = mockManager.createMock( MavenSession.class );
-        
-        this.projectBuildingRequest = mockManager.createMock( ProjectBuildingRequest.class );
-
-        archiver = mockManager.createMock( Archiver.class );
-        
-        configSource = mockManager.createMock( AssemblerConfigurationSource.class );
-
-        projectBuilder = mockManager.createMock( ProjectBuilder.class );
-
-        archiverManager = mockManager.createMock( ArchiverManager.class );
-
-        dependencyResolver = mockManager.createMock( DependencyResolver.class );
-
-        enableDefaultExpectations();
-    }
-
-    private void enableDefaultExpectations()
-    {
-        expect( configSource.getProject() ).andReturn( project ).anyTimes();
-        expect( session.getProjectBuildingRequest() ).andReturn( projectBuildingRequest ).anyTimes();
-        expect( session.getSystemProperties() ).andReturn( new Properties() ).anyTimes();
-        expect( session.getUserProperties() ).andReturn( new Properties() ).anyTimes();
-        expect( session.getExecutionProperties() ).andReturn( new Properties() ).anyTimes();
-
-        expectGetSession( session );
-    }
-
-    public void expectAddArchivedFileSet()
-    {
-        try
-        {
-            archiver.addArchivedFileSet( (File) anyObject(), (String) anyObject(), (String[]) anyObject(),
-                                         (String[]) anyObject() );
-            EasyMock.expectLastCall().anyTimes();
-            archiver.addArchivedFileSet( (ArchivedFileSet) anyObject(), (Charset) anyObject() );
-            EasyMock.expectLastCall().anyTimes();
-
-        }
-        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 )
-    {
-        expectGetMode( originalDirMode, originalFileMode );
-        // one of the changes will occur below, when we restore the original mode.
-        if ( numberOfChanges > 1 )
-        {
-            for ( int i = 1; i < numberOfChanges; i++ )
-            {
-                archiver.setDirectoryMode( dirMode );
-                archiver.setFileMode( fileMode );
-            }
-        }
-
-        archiver.setDirectoryMode( originalDirMode );
-        archiver.setFileMode( originalFileMode );
-    }
-
-    public void expectGetMode( final int originalDirMode, final int originalFileMode )
-    {
-        archiver.setFileMode( anyInt() );
-        EasyMock.expectLastCall().anyTimes();
-        expect( archiver.getOverrideDirectoryMode() ).andReturn( originalDirMode );
-        expect( archiver.getOverrideFileMode() ).andReturn( originalFileMode );
-        archiver.setDirectoryMode( anyInt() );
-        EasyMock.expectLastCall().anyTimes();
-
-    }
-
-    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 expectGetReactorProjects( final List<MavenProject> projects )
-    {
-        expect( configSource.getReactorProjects() ).andReturn( projects ).anyTimes();
-    }
-
-    public void expectCSGetFinalName( final String finalName )
-    {
-        expect( configSource.getFinalName() ).andReturn( finalName ).anyTimes();
-    }
-
-    public void expectGetDestFile( final File destFile )
-    {
-        expect( archiver.getDestFile() ).andReturn( destFile ).anyTimes();
-    }
-
-    public void expectCSGetRepositories( final ArtifactRepository localRepo,
-                                         final List<ArtifactRepository> remoteRepos )
-    {
-        expect( configSource.getLocalRepository() ).andReturn( localRepo ).anyTimes();
-        expect( configSource.getRemoteRepositories() ).andReturn( remoteRepos ).anyTimes();
-    }
-
-    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 ).anyTimes();
-        }
-        catch ( final ProjectBuildingException e )
-        {
-            Assert.fail( "should never happen" );
-        }
-    }
-
-    public void expectGetSession( final MavenSession session )
-    {
-        expect( configSource.getMavenSession() ).andReturn( session ).anyTimes();
-    }
-
-    public void expectResolveDependencySets()
-        throws DependencyResolutionException
-    {
-        expect( dependencyResolver.resolveDependencySets( (Assembly) anyObject(),
-                                                          (AssemblerConfigurationSource) anyObject(),
-                                                          (List<DependencySet>) anyObject() ) ).andReturn(
-            new LinkedHashMap<DependencySet, Set<Artifact>>() ).anyTimes();
-
-    }
-
-
-}
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 3d4b573..0000000
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java
+++ /dev/null
@@ -1,142 +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.plugins.assembly.AssemblerConfigurationSource;
-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.easymock.EasyMock;
-import org.easymock.classextension.EasyMockSupport;
-
-import java.io.File;
-
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-
-public class MockAndControlForAddFileSetsTask
-{
-
-    public final AssemblerConfigurationSource configSource;
-
-    public final Archiver archiver;
-
-    public File archiveBaseDir;
-
-    public MockAndControlForAddFileSetsTask( EasyMockSupport mockManager )
-    {
-        configSource = mockManager.createMock( AssemblerConfigurationSource.class );
-        archiver = mockManager.createMock( Archiver.class );
-
-        expect( configSource.getMavenSession() ).andReturn( null ).anyTimes();
-    }
-
-    public void expectGetArchiveBaseDirectory()
-    {
-        expect( configSource.getArchiveBaseDirectory() ).andReturn( archiveBaseDir ).anyTimes();
-    }
-
-    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] );
-        }
-    }
-
-    public void expectAdditionOfSingleFileSet( MavenProject project, String finalName, boolean shouldAddDir,
-                                               int[] modes, int modeChangeCount, boolean isDebugEnabled )
-    {
-        expectAdditionOfSingleFileSet( project, finalName, shouldAddDir, modes, modeChangeCount, isDebugEnabled, true );
-
-    }
-
-    public void expectAdditionOfSingleFileSet( MavenProject project, String finalName, boolean shouldAddDir,
-                                               int[] modes, int modeChangeCount, boolean isDebugEnabled,
-                                               boolean isProjectUsed )
-    {
-        // the logger sends a debug message with this info inside the addFileSet(..) method..
-        if ( isDebugEnabled )
-        {
-            expect( archiver.getOverrideDirectoryMode() ).andReturn( modes[0] );
-            expect( archiver.getOverrideFileMode() ).andReturn( modes[1] );
-        }
-
-        if ( isProjectUsed )
-        {
-            expect( configSource.getProject() ).andReturn( project ).atLeastOnce();
-        }
-
-        expect( configSource.getFinalName() ).andReturn( finalName ).atLeastOnce();
-
-        if ( shouldAddDir )
-        {
-            expectModeChanges( modes, modeChangeCount );
-
-            try
-            {
-                archiver.addFileSet( (FileSet) anyObject() );
-                EasyMock.expectLastCall().atLeastOnce();
-            }
-            catch ( ArchiverException e )
-            {
-                Assert.fail( "Should never happen." );
-            }
-        }
-
-    }
-
-    public void expectGetProject( MavenProject project )
-    {
-        expect( configSource.getProject() ).andReturn( project ).atLeastOnce();
-    }
-
-    public void expectGetFinalName( String finalName )
-    {
-        expect( configSource.getFinalName() ).andReturn( finalName ).atLeastOnce();
-    }
-
-}
diff --git a/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java b/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
index 7b238c2..66e8ecb 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
@@ -19,7 +19,9 @@ package org.apache.maven.plugins.assembly.artifact;
  * under the License.
  */
 
-import static org.easymock.EasyMock.expect;
+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.Arrays;
@@ -46,7 +48,6 @@ import org.apache.maven.plugins.assembly.model.ModuleSet;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.codehaus.plexus.PlexusTestCase;
-import org.easymock.classextension.EasyMockSupport;
 
 public class DefaultDependencyResolverTest
     extends PlexusTestCase
@@ -124,10 +125,6 @@ public class DefaultDependencyResolverTest
     public void test_getModuleSetResolutionRequirements_withoutBinaries()
         throws DependencyResolutionException
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final AssemblerConfigurationSource cs = mm.createMock( AssemblerConfigurationSource.class );
-
         final File rootDir = new File( "root" );
         final MavenProject project = createMavenProject( "main-group", "main-artifact", "1", rootDir );
         final MavenProject module1 =
@@ -138,30 +135,18 @@ public class DefaultDependencyResolverTest
         project.getModel().addModule( module1.getArtifactId() );
         project.getModel().addModule( module2.getArtifactId() );
 
-        expect( cs.getReactorProjects() ).andReturn( Arrays.asList( project, module1, module2 ) ).anyTimes();
-        expect( cs.getProject() ).andReturn( project ).anyTimes();
-        expect( cs.getMavenSession() ).andReturn( newMavenSession( project ) ).anyTimes();
-
         final ResolutionManagementInfo info = new ResolutionManagementInfo();
 
         final ModuleSet ms = new ModuleSet();
         ms.setBinaries( null );
 
-        mm.replayAll();
-
-        resolver.updateModuleSetResolutionRequirements( ms, new DependencySet(), info, cs );
+        resolver.updateModuleSetResolutionRequirements( ms, new DependencySet(), info, null );
         assertTrue( info.getArtifacts().isEmpty() );
-
-        mm.verifyAll();
     }
 
     public void test_getModuleSetResolutionRequirements_includeDeps()
         throws DependencyResolutionException
     {
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        final AssemblerConfigurationSource cs = mm.createMock( AssemblerConfigurationSource.class );
-
         final File rootDir = new File( "root" );
         final MavenProject project = createMavenProject( "main-group", "main-artifact", "1", rootDir );
         final MavenProject module1 =
@@ -177,9 +162,9 @@ public class DefaultDependencyResolverTest
         project.getModel().addModule( module1.getArtifactId() );
         project.getModel().addModule( module2.getArtifactId() );
 
-        expect( cs.getReactorProjects() ).andReturn( Arrays.asList( project, module1, module2 ) ).anyTimes();
-        expect( cs.getProject() ).andReturn( project ).anyTimes();
-        expect( cs.getMavenSession() ).andReturn( newMavenSession( project ) ).anyTimes();
+        final AssemblerConfigurationSource cs = mock( AssemblerConfigurationSource.class );
+        when( cs.getReactorProjects() ).thenReturn( Arrays.asList( project, module1, module2 ) );
+        when( cs.getProject() ).thenReturn( project );
 
         final ResolutionManagementInfo info = new ResolutionManagementInfo();
 
@@ -189,12 +174,12 @@ public class DefaultDependencyResolverTest
         ms.setBinaries( mb );
         ms.addInclude( "*:module-1" );
 
-        mm.replayAll();
-
         resolver.updateModuleSetResolutionRequirements( ms, new DependencySet(), info, cs );
         assertEquals( module1Artifacts, info.getArtifacts() );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( cs ).getReactorProjects();
+        verify( cs ).getProject();
     }
 
     private MavenProject createMavenProject( final String groupId, final String artifactId, final String version,
diff --git a/src/test/java/org/apache/maven/plugins/assembly/interpolation/AssemblyExpressionEvaluatorTest.java b/src/test/java/org/apache/maven/plugins/assembly/interpolation/AssemblyExpressionEvaluatorTest.java
index 075083d..b00e401 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/interpolation/AssemblyExpressionEvaluatorTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/interpolation/AssemblyExpressionEvaluatorTest.java
@@ -19,9 +19,13 @@ 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 static org.mockito.Mockito.verify;
+
+import java.util.Properties;
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
@@ -30,19 +34,16 @@ import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
 import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
 import org.codehaus.plexus.interpolation.fixed.PropertiesBasedValueSource;
-import org.easymock.classextension.EasyMockSupport;
-import org.easymock.classextension.IMocksControl;
-
-import java.util.Properties;
-
-import static org.easymock.EasyMock.expect;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
+@RunWith( MockitoJUnitRunner.class )
 public class AssemblyExpressionEvaluatorTest
-    extends TestCase
 {
-
     private final PojoConfigSource configSourceStub = new PojoConfigSource();
 
+    @Test
     public void testShouldResolveModelGroupId()
         throws ExpressionEvaluationException
     {
@@ -65,9 +66,9 @@ public class AssemblyExpressionEvaluatorTest
         configSourceStub.setRootInterpolator( FixedStringSearchInterpolator.create() );
         configSourceStub.setEnvironmentInterpolator( FixedStringSearchInterpolator.create() );
         configSourceStub.setEnvInterpolator( FixedStringSearchInterpolator.create() );
-
     }
 
+    @Test
     public void testShouldResolveModelPropertyBeforeModelGroupId()
         throws ExpressionEvaluationException
     {
@@ -90,6 +91,7 @@ public class AssemblyExpressionEvaluatorTest
         assertEquals( "assembly.other.id", result );
     }
 
+    @Test
     public void testShouldResolveContextValueBeforeModelPropertyOrModelGroupIdInAssemblyId()
         throws ExpressionEvaluationException
     {
@@ -104,41 +106,29 @@ public class AssemblyExpressionEvaluatorTest
 
         model.setProperties( props );
 
-        final EasyMockSupport mm = new EasyMockSupport();
-
-        MavenSession session = mm.createControl().createMock( MavenSession.class );
-
         final Properties execProps = new Properties();
         execProps.setProperty( "groupId", "still.another.id" );
 
         PropertiesBasedValueSource cliProps = new PropertiesBasedValueSource( execProps );
-        expect( session.getExecutionProperties() ).andReturn( execProps ).anyTimes();
-        expect( session.getUserProperties() ).andReturn( new Properties() ).anyTimes();
-
-        AssemblerConfigurationSource cs = mm.createControl().createMock( AssemblerConfigurationSource.class );
-        expect( cs.getCommandLinePropsInterpolator() ).andReturn(
-            FixedStringSearchInterpolator.create( cliProps ) ).anyTimes();
-        expect( cs.getRepositoryInterpolator() ).andReturn( FixedStringSearchInterpolator.create() ).anyTimes();
-        expect( cs.getEnvInterpolator() ).andReturn( FixedStringSearchInterpolator.create() ).anyTimes();
-
-        expect( cs.getMavenSession() ).andReturn( session ).anyTimes();
-        expect( cs.getProject() ).andReturn( new MavenProject( model ) );
-
-        final IMocksControl lrCtl = mm.createControl();
-        final ArtifactRepository lr = lrCtl.createMock( ArtifactRepository.class );
-
-        expect( lr.getBasedir() ).andReturn( "/path/to/local/repo" ).anyTimes();
-        expect( cs.getLocalRepository() ).andReturn( lr ).anyTimes();
 
-        mm.replayAll();
+        AssemblerConfigurationSource cs = mock( AssemblerConfigurationSource.class );
+        when( cs.getCommandLinePropsInterpolator() ).thenReturn( FixedStringSearchInterpolator.create( cliProps ) );
+        when( cs.getRepositoryInterpolator() ).thenReturn( FixedStringSearchInterpolator.create() );
+        when( cs.getEnvInterpolator() ).thenReturn( FixedStringSearchInterpolator.create() );
+        when( cs.getProject() ).thenReturn( new MavenProject( model ) );
 
         final Object result = new AssemblyExpressionEvaluator( cs ).evaluate( "assembly.${groupId}" );
 
         assertEquals( "assembly.still.another.id", result );
 
-        mm.verifyAll();
+        // result of easymock migration, should be assert of expected result instead of verifying methodcalls
+        verify( cs ).getCommandLinePropsInterpolator();
+        verify( cs ).getRepositoryInterpolator();
+        verify( cs ).getEnvInterpolator();
+        verify( cs ).getProject();
     }
 
+    @Test
     public void testShouldReturnUnchangedInputForUnresolvedExpression()
         throws ExpressionEvaluationException
     {
@@ -156,6 +146,7 @@ public class AssemblyExpressionEvaluatorTest
         assertEquals( "assembly.${unresolved}", result );
     }
 
+    @Test
     public void testShouldInterpolateMultiDotProjectExpression()
         throws ExpressionEvaluationException
     {
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 1fdbe11..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,19 +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 static org.easymock.EasyMock.expect;
+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
@@ -86,6 +87,7 @@ public class AssemblyInterpolatorTest
         assertEquals( "${artifactId}.${packaging}", outputSet.getOutputFileNameMapping() );
     }
 
+    @Test
     public void testDependencySetOutputDirectoryIsNotInterpolated()
         throws IOException, AssemblyInterpolationException, AssemblyReadException,
         InvalidAssemblerConfigurationException
@@ -122,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
@@ -153,6 +156,7 @@ public class AssemblyInterpolatorTest
         assertEquals( "assembly.group.id", outputAssembly.getId() );
     }
 
+    @Test
     public void testShouldResolveModelPropertyBeforeModelGroupIdInAssemblyId()
         throws AssemblyInterpolationException, InvalidAssemblerConfigurationException, AssemblyReadException,
         IOException
@@ -184,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" );
@@ -203,42 +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" );
 
-        expect( session.getExecutionProperties() ).andReturn( execProps ).anyTimes();
-
-        expect( session.getUserProperties() ).andReturn( new Properties() ).anyTimes();
-
-        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() );
-
-        expect( lr.getBasedir() ).andReturn( "/path/to/local/repo" ).anyTimes();
-
-        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
@@ -264,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/io/DefaultAssemblyReaderTest.java b/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
index f29e73d..4792b7a 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
@@ -19,10 +19,11 @@ package org.apache.maven.plugins.assembly.io;
  * under the License.
  */
 
-import static org.easymock.EasyMock.expect;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -40,7 +41,6 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
@@ -61,19 +61,19 @@ import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
 import org.codehaus.plexus.interpolation.fixed.InterpolationState;
 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.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
+@RunWith( MockitoJUnitRunner.class )
 public class DefaultAssemblyReaderTest
 {
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder();
 
-    private EasyMockSupport mockManager;
-
     private AssemblerConfigurationSource configSource;
 
     public static StringReader writeToStringReader( Assembly assembly )
@@ -90,18 +90,7 @@ public class DefaultAssemblyReaderTest
     @Before
     public void setUp()
     {
-//        fileManager = new TestFileManager( "assembly-reader.test.", ".xml" );
-        mockManager = new EasyMockSupport();
-
-        configSource = mockManager.createMock( AssemblerConfigurationSource.class );
-
-        ArtifactRepository localRepo = mockManager.createMock( ArtifactRepository.class );
-
-        expect( localRepo.getBasedir() ).andReturn( "/path/to/local/repo" ).anyTimes();
-        expect( configSource.getLocalRepository() ).andReturn( localRepo ).anyTimes();
-        expect( configSource.getRemoteRepositories() ).andReturn(
-            Collections.<ArtifactRepository>emptyList() ).anyTimes();
-        expect( configSource.getMavenSession() ).andReturn( null ).anyTimes();
+        configSource = mock( AssemblerConfigurationSource.class );
     }
 
     @Test
@@ -111,12 +100,10 @@ public class DefaultAssemblyReaderTest
         final File siteDir = File.createTempFile( "assembly-reader.", ".test" );
         siteDir.delete();
 
-        expect( configSource.getSiteDirectory() ).andReturn( siteDir ).anyTimes();
+        when( configSource.getSiteDirectory() ).thenReturn( siteDir );
 
         final Assembly assembly = new Assembly();
 
-        mockManager.replayAll();
-
         try
         {
             new DefaultAssemblyReader().includeSiteInAssembly( assembly, configSource );
@@ -127,99 +114,18 @@ public class DefaultAssemblyReaderTest
         {
             // this should happen.
         }
-
-        mockManager.verifyAll();
     }
 
-    // @Test public void testReadComponent_ShouldReadComponentFromXml()
-    // throws IOException, AssemblyReadException
-    // {
-    // Component component = new Component();
-    //
-    // FileSet fileSet = new FileSet();
-    // fileSet.setDirectory( "/dir" );
-    //
-    // component.addFileSet( fileSet );
-    //
-    // StringWriter sw = new StringWriter();
-    //
-    // ComponentXpp3Writer componentWriter = new ComponentXpp3Writer();
-    //
-    // componentWriter.write( sw, component );
-    //
-    // Component result = new DefaultAssemblyReader().readComponent( new StringReader( sw.toString() ) );
-    //
-    // List<FileSet> fileSets = result.getFileSets();
-    //
-    // assertNotNull( fileSets );
-    // assertEquals( 1, fileSets.size() );
-    //
-    // FileSet fs = (FileSet) fileSets.get( 0 );
-    //
-    // assertEquals( "/dir", fs.getDirectory() );
-    // }
-    //
-    // @Test public void testGetComponentFromFile_ShouldReadComponent()
-    // throws IOException, AssemblyReadException
-    // {
-    // Component component = new Component();
-    //
-    // FileSet fileSet = new FileSet();
-    // fileSet.setDirectory( "/dir" );
-    //
-    // component.addFileSet( fileSet );
-    //
-    // File componentFile = fileManager.createTempFile();
-    //
-    // FileWriter writer = null;
-    //
-    // try
-    // {
-    // writer = new FileWriter( componentFile );
-    //
-    // ComponentXpp3Writer componentWriter = new ComponentXpp3Writer();
-    //
-    // componentWriter.write( writer, component );
-    // }
-    // finally
-    // {
-    // IOUtil.close( writer );
-    // }
-    //
-    // File basedir = componentFile.getParentFile();
-    // String filename = componentFile.getName();
-    //
-    // configSource.getBasedir();
-    // configSourceControl.setReturnValue( basedir );
-    //
-    // mockManager.replayAll();
-    //
-    // Component result = new DefaultAssemblyReader().getComponentFromFile( filename, configSource );
-    //
-    // List<FileSet> fileSets = result.getFileSets();
-    //
-    // assertNotNull( fileSets );
-    // assertEquals( 1, fileSets.size() );
-    //
-    // FileSet fs = (FileSet) fileSets.get( 0 );
-    //
-    // assertEquals( "/dir", fs.getDirectory() );
-    //
-    // mockManager.verifyAll();
-    // }
-
     @Test
     public void testIncludeSiteInAssembly_ShouldAddSiteDirFileSetWhenDirExists()
         throws Exception
     {
         final File siteDir = temporaryFolder.getRoot();
 
-        expect( configSource.getSiteDirectory() ).andReturn( siteDir ).anyTimes();
+        when( configSource.getSiteDirectory() ).thenReturn( siteDir );
 
         final Assembly assembly = new Assembly();
 
-        mockManager.replayAll();
-
         new DefaultAssemblyReader().includeSiteInAssembly( assembly, configSource );
 
         final List<FileSet> fileSets = assembly.getFileSets();
@@ -230,8 +136,6 @@ public class DefaultAssemblyReaderTest
         final FileSet fs = fileSets.get( 0 );
 
         assertEquals( siteDir.getPath(), fs.getDirectory() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -381,53 +285,6 @@ public class DefaultAssemblyReaderTest
         assertEquals( Artifact.SCOPE_SYSTEM, depSets.get( 2 ).getScope() );
     }
 
-    // FIXME: Deep merging should take place...
-    // public void
-    // testMergeComponentWithAssembly_ShouldMergeOneFileSetToOneOfExistingTwo()
-    // {
-    // Assembly assembly = new Assembly();
-    //
-    // FileSet fs = new FileSet();
-    // fs.setDirectory( "/dir" );
-    // fs.addInclude( "**/test.txt" );
-    //
-    // assembly.addFileSet( fs );
-    //
-    // fs = new FileSet();
-    // fs.setDirectory( "/other-dir" );
-    // assembly.addFileSet( fs );
-    //
-    // fs = new FileSet();
-    // fs.setDirectory( "/dir" );
-    // fs.addInclude( "**/components.txt" );
-    //
-    // Component component = new Component();
-    //
-    // component.addFileSet( fs );
-    //
-    // new DefaultAssemblyReader().mergeComponentWithAssembly( component,
-    // assembly );
-    //
-    // List<FileSet> fileSets = assembly.getFileSets();
-    //
-    // assertNotNull( fileSets );
-    // assertEquals( 2, fileSets.size() );
-    //
-    // FileSet rfs1 = (FileSet) fileSets.get( 0 );
-    // assertEquals( "/dir", rfs1.getDirectory() );
-    //
-    // List includes = rfs1.getIncludes();
-    //
-    // assertNotNull( includes );
-    // assertEquals( 2, includes.size() );
-    // assertTrue( includes.contains( "**/test.txt" ) );
-    // assertTrue( includes.contains( "**/components.txt" ) );
-    //
-    // FileSet rfs2 = (FileSet) fileSets.get( 1 );
-    // assertEquals( "/other-dir", rfs2.getDirectory() );
-    //
-    // }
-
     @Test
     public void testMergeComponentWithAssembly_ShouldAddOneContainerDescriptorHandlerToExistingListOfTwo()
     {
@@ -492,16 +349,14 @@ public class DefaultAssemblyReaderTest
 
         final MavenProject project = new MavenProject();
 
-        expect( configSource.getProject() ).andReturn( project ).anyTimes();
-        expect( configSource.getBasedir() ).andReturn( basedir ).anyTimes();
+        when( configSource.getProject() ).thenReturn( project );
+        when( configSource.getBasedir() ).thenReturn( basedir );
         DefaultAssemblyArchiverTest.setupInterpolators( configSource );
         InterpolationState is = new InterpolationState();
         ComponentXpp3Reader.ContentTransformer componentIp =
             AssemblyInterpolator.componentInterpolator( FixedStringSearchInterpolator.create(), is,
                                                         new ConsoleLogger( Logger.LEVEL_DEBUG, "console" ) );
 
-        mockManager.replayAll();
-
         new DefaultAssemblyReader().mergeComponentsWithMainAssembly( assembly, null, configSource, componentIp );
 
         final List<FileSet> fileSets = assembly.getFileSets();
@@ -512,8 +367,6 @@ public class DefaultAssemblyReaderTest
         final FileSet fs = fileSets.get( 0 );
 
         assertEquals( "/dir", fs.getDirectory() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -526,8 +379,6 @@ public class DefaultAssemblyReaderTest
         final Assembly result = doReadAssembly( assembly );
 
         assertEquals( assembly.getId(), result.getId() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -543,11 +394,11 @@ public class DefaultAssemblyReaderTest
 
         final File siteDir = temporaryFolder.newFolder( "site" );
 
-        expect( configSource.getSiteDirectory() ).andReturn( siteDir ).anyTimes();
+        when( configSource.getSiteDirectory() ).thenReturn( siteDir );
 
         final File basedir = temporaryFolder.getRoot();
 
-        expect( configSource.getBasedir() ).andReturn( basedir ).anyTimes();
+        when( configSource.getBasedir() ).thenReturn( basedir );
 
         final Model model = new Model();
         model.setGroupId( "group" );
@@ -556,11 +407,10 @@ public class DefaultAssemblyReaderTest
 
         final MavenProject project = new MavenProject( model );
 
-        expect( configSource.getProject() ).andReturn( project ).anyTimes();
+        when( configSource.getProject() ).thenReturn( project );
 
         DefaultAssemblyArchiverTest.setupInterpolators( configSource );
 
-        mockManager.replayAll();
 
         final Assembly result = new DefaultAssemblyReader().readAssembly( sr, "testLocation", null, configSource );
 
@@ -571,8 +421,6 @@ public class DefaultAssemblyReaderTest
         assertEquals( 1, fileSets.size() );
 
         assertEquals( "/site", fileSets.get( 0 ).getOutputDirectory() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -603,7 +451,7 @@ public class DefaultAssemblyReaderTest
 
         final StringReader sr = writeToStringReader( assembly );
 
-        expect( configSource.getBasedir() ).andReturn( basedir ).anyTimes();
+        when( configSource.getBasedir() ).thenReturn( basedir );
 
         final Model model = new Model();
         model.setGroupId( "group" );
@@ -611,12 +459,10 @@ public class DefaultAssemblyReaderTest
         model.setVersion( "version" );
 
         final MavenProject project = new MavenProject( model );
-        expect( configSource.getProject() ).andReturn( project ).anyTimes();
+        when( configSource.getProject() ).thenReturn( project );
 
         DefaultAssemblyArchiverTest.setupInterpolators( configSource );
 
-        mockManager.replayAll();
-
         final Assembly result = new DefaultAssemblyReader().readAssembly( sr, "testLocation", null, configSource );
 
         assertEquals( assembly.getId(), result.getId() );
@@ -626,8 +472,6 @@ public class DefaultAssemblyReaderTest
         assertEquals( 1, fileSets.size() );
 
         assertEquals( "/dir", fileSets.get( 0 ).getDirectory() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -658,7 +502,7 @@ public class DefaultAssemblyReaderTest
 
         final StringReader sr = writeToStringReader( assembly );
 
-        expect( configSource.getBasedir() ).andReturn( basedir ).atLeastOnce();
+        when( configSource.getBasedir() ).thenReturn( basedir );
 
         final Model model = new Model();
         model.setGroupId( "group" );
@@ -667,12 +511,10 @@ public class DefaultAssemblyReaderTest
 
         final MavenProject project = new MavenProject( model );
 
-        expect( configSource.getProject() ).andReturn( project ).atLeastOnce();
+        when( configSource.getProject() ).thenReturn( project );
 
         DefaultAssemblyArchiverTest.setupInterpolators( configSource );
 
-        mockManager.replayAll();
-
         final Assembly result = new DefaultAssemblyReader().readAssembly( sr, "testLocation", null, configSource );
 
         assertEquals( assembly.getId(), result.getId() );
@@ -682,8 +524,6 @@ public class DefaultAssemblyReaderTest
         assertEquals( 1, fileSets.size() );
 
         assertEquals( "group-dir", fileSets.get( 0 ).getDirectory() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -696,8 +536,6 @@ public class DefaultAssemblyReaderTest
         final Assembly result = doReadAssembly( assembly );
 
         assertEquals( "group-assembly", result.getId() );
-
-        mockManager.verifyAll();
     }
 
     private Assembly doReadAssembly( Assembly assembly )
@@ -707,7 +545,7 @@ public class DefaultAssemblyReaderTest
 
         final File basedir = temporaryFolder.getRoot();
 
-        expect( configSource.getBasedir() ).andReturn( basedir ).anyTimes();
+        when( configSource.getBasedir() ).thenReturn( basedir );
 
         final Model model = new Model();
         model.setGroupId( "group" );
@@ -716,12 +554,10 @@ public class DefaultAssemblyReaderTest
 
         final MavenProject project = new MavenProject( model );
 
-        expect( configSource.getProject() ).andReturn( project ).anyTimes();
+        when( configSource.getProject() ).thenReturn( project );
 
         DefaultAssemblyArchiverTest.setupInterpolators( configSource );
 
-        mockManager.replayAll();
-
         return new DefaultAssemblyReader().readAssembly( sr, "testLocation", null, configSource );
     }
 
@@ -741,9 +577,9 @@ public class DefaultAssemblyReaderTest
 
         final File basedir = assemblyFile.getParentFile();
 
-        expect( configSource.getBasedir() ).andReturn( basedir ).anyTimes();
+        when( configSource.getBasedir() ).thenReturn( basedir );
 
-        expect( configSource.getProject() ).andReturn( new MavenProject( new Model() ) ).anyTimes();
+        when( configSource.getProject() ).thenReturn( new MavenProject( new Model() ) );
 
         DefaultAssemblyArchiverTest.setupInterpolators( configSource );
 
@@ -752,13 +588,9 @@ public class DefaultAssemblyReaderTest
             new AssemblyXpp3Writer().write( writer, assembly );
         }
 
-        mockManager.replayAll();
-
         final Assembly result = new DefaultAssemblyReader().getAssemblyFromDescriptorFile( assemblyFile, configSource );
 
         assertEquals( assembly.getId(), result.getId() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -767,21 +599,15 @@ public class DefaultAssemblyReaderTest
     {
         final File basedir = temporaryFolder.getRoot();
 
-        expect( configSource.getBasedir() ).andReturn( basedir ).anyTimes();
-
-        expect( configSource.getProject() ).andReturn( new MavenProject( new Model() ) ).anyTimes();
+        when( configSource.getBasedir() ).thenReturn( basedir );
 
-        expect( configSource.isIgnoreMissingDescriptor() ).andReturn( false ).anyTimes();
+        when( configSource.getProject() ).thenReturn( new MavenProject( new Model() ) );
 
         DefaultAssemblyArchiverTest.setupInterpolators( configSource );
 
-        mockManager.replayAll();
-
         final Assembly result = new DefaultAssemblyReader().getAssemblyForDescriptorReference( "bin", configSource );
 
         assertEquals( "bin", result.getId() );
-
-        mockManager.verifyAll();
     }
 
     @Test
@@ -1001,26 +827,27 @@ public class DefaultAssemblyReaderTest
                                                   final boolean ignoreMissing )
         throws AssemblyReadException, InvalidAssemblerConfigurationException
     {
-        expect( configSource.getDescriptorReferences() ).andReturn( descriptorRefs );
+        when( configSource.getDescriptorReferences() ).thenReturn( descriptorRefs );
 
-        expect( configSource.getDescriptors() ).andReturn( descriptors );
+        when( configSource.getDescriptors() ).thenReturn( descriptors );
 
-        expect( configSource.getDescriptorSourceDirectory() ).andReturn( descriptorDir );
+        when( configSource.getDescriptorSourceDirectory() ).thenReturn( descriptorDir );
 
-        expect( configSource.getBasedir() ).andReturn( basedir ).anyTimes();
+        when( configSource.getBasedir() ).thenReturn( basedir ); //.atLeastOnce();
 
-        expect( configSource.getProject() ).andReturn( new MavenProject( new Model() ) ).anyTimes();
-
-        expect( configSource.isIgnoreMissingDescriptor() ).andReturn( ignoreMissing ).anyTimes();
-        DefaultAssemblyArchiverTest.setupInterpolators( configSource );
-
-        mockManager.replayAll();
-
-        final List<Assembly> assemblies = new DefaultAssemblyReader().readAssemblies( configSource );
+        if ( descriptors == null && descriptorRefs == null && descriptorDir == null )
+        {
+            when( configSource.isIgnoreMissingDescriptor() ).thenReturn( ignoreMissing ); //.atLeastOnce();
+        }
+        
+        if ( !ignoreMissing )
+        {
+            when( configSource.getProject() ).thenReturn( new MavenProject( new Model() ) ); //.atLeastOnce();
 
-        mockManager.verifyAll();
+            DefaultAssemblyArchiverTest.setupInterpolators( configSource );
+        }
 
-        return assemblies;
+        return new DefaultAssemblyReader().readAssemblies( configSource );
     }
 
 }
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 af34c81..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
@@ -1,8 +1,5 @@
 package org.apache.maven.plugins.assembly.utils;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.handler.ArtifactHandler;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -22,6 +19,17 @@ import org.apache.maven.artifact.handler.ArtifactHandler;
  * under the License.
  */
 
+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.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Properties;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
@@ -30,23 +38,13 @@ 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;
 
-import java.util.Properties;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import static org.easymock.EasyMock.expect;
-
+@RunWith( MockitoJUnitRunner.class )
 public class AssemblyFormatUtilsTest
 {
-
-    private final EasyMockSupport mockManager = new EasyMockSupport();
-
     @Test
     public void testFixRelativePathRefs_ShouldRemoveRelativeRefToCurrentDir()
         throws Exception
@@ -339,19 +337,15 @@ public class AssemblyFormatUtilsTest
         final MavenProject artifactProject = createProject( "group", "artifact", artifactVersion, null );
 
         Artifact artifact = mock( Artifact.class );
-        when( artifact.getVersion() ).thenReturn( artifactVersion );
         when( artifact.getBaseVersion() ).thenReturn( artifactBaseVersion );
 
         artifactProject.setArtifact( artifact );
 
         final MavenSession session = mock( MavenSession.class );
-        when( session.getUserProperties() ).thenReturn( new Properties() );
-
-        final AssemblerConfigurationSource cs = mockManager.createMock( AssemblerConfigurationSource.class );
-        expect( cs.getMavenSession() ).andReturn( session );
-        DefaultAssemblyArchiverTest.setupInterpolators( cs );
 
-        mockManager.replayAll();
+        final AssemblerConfigurationSource cs = mock( AssemblerConfigurationSource.class );
+        when( cs.getMavenSession() ).thenReturn( session );
+        DefaultAssemblyArchiverTest.setupInterpolators( cs, mainProject );
 
         final String result =
             AssemblyFormatUtils.evaluateFileNameMapping( "${artifact.artifactId}-${artifact.baseVersion}",
@@ -360,11 +354,9 @@ 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();
     }
 
     @Test
@@ -683,14 +675,12 @@ public class AssemblyFormatUtilsTest
 
         final MavenSession session = mock( MavenSession.class );
         when( session.getExecutionProperties() ).thenReturn( System.getProperties() );
-        when( session.getUserProperties() ).thenReturn( new Properties() );
 
-        final AssemblerConfigurationSource cs = mockManager.createMock( AssemblerConfigurationSource.class );
-        expect( cs.getMavenSession() ).andReturn( session ).anyTimes();
+        final AssemblerConfigurationSource cs = mock( AssemblerConfigurationSource.class );
+        when( cs.getMavenSession() ).thenReturn( session );
+        
         DefaultAssemblyArchiverTest.setupInterpolators( cs, mainProject );
 
-        mockManager.replayAll();
-
         final String result =
             AssemblyFormatUtils.evaluateFileNameMapping( expression, artifactMock, mainProject,
                                                          moduleArtifactMock, cs,
@@ -699,10 +689,8 @@ 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();
     }
 
     private void verifyOutputDir( final String outDir, final String finalName, final String projectFinalName,
@@ -786,45 +774,39 @@ public class AssemblyFormatUtilsTest
 
         final MavenSession session = mock( MavenSession.class );
         when( session.getExecutionProperties() ).thenReturn( System.getProperties() );
-        when( session.getUserProperties() ).thenReturn( new Properties() );
 
-        final AssemblerConfigurationSource cs = mockManager.createMock( AssemblerConfigurationSource.class );
-        expect( cs.getMavenSession() ).andReturn( session ).anyTimes();
+        final AssemblerConfigurationSource cs = mock( AssemblerConfigurationSource.class );
+        when( cs.getMavenSession() ).thenReturn( session );
+        
         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();
     }
 
     private void verifyDistroName( final String assemblyId, final String finalName, final boolean appendAssemblyId,
                                    final String checkValue )
     {
-        final MockAndControlForGetDistroName mac = new MockAndControlForGetDistroName( finalName, appendAssemblyId );
-
-        mockManager.replayAll();
+        final AssemblerConfigurationSource configSource = mock( AssemblerConfigurationSource.class );
+        when( configSource.isAssemblyIdAppended() ).thenReturn( appendAssemblyId );
+        when( configSource.getFinalName() ).thenReturn( finalName );
 
         final Assembly assembly = new Assembly();
         assembly.setId( assemblyId );
 
-        final String result = AssemblyFormatUtils.getDistributionName( assembly, mac.configSource );
+        final String result = AssemblyFormatUtils.getDistributionName( assembly, configSource );
 
         assertEquals( checkValue, result );
 
-        mockManager.verifyAll();
-
-        // clear it out for the next call.
-        mockManager.resetAll();
+        verify( configSource, atLeast( 1 ) ).isAssemblyIdAppended();
+        verify( configSource, atLeast( 1 ) ).getFinalName();
     }
 
     @Test
@@ -839,30 +821,4 @@ public class AssemblyFormatUtilsTest
         assertTrue( AssemblyFormatUtils.isUnixRootReference( "/etc/home" ) );
     }
 
-    private final class MockAndControlForGetDistroName
-    {
-        final AssemblerConfigurationSource configSource;
-
-        private final boolean isAssemblyIdAppended;
-
-        private final String finalName;
-
-        public MockAndControlForGetDistroName( final String finalName, final boolean isAssemblyIdAppended )
-        {
-            this.finalName = finalName;
-            this.isAssemblyIdAppended = isAssemblyIdAppended;
-
-            configSource = mockManager.createMock( AssemblerConfigurationSource.class );
-
-            enableExpectations();
-        }
-
-        private void enableExpectations()
-        {
-            expect( configSource.isAssemblyIdAppended() ).andReturn( isAssemblyIdAppended ).atLeastOnce();
-
-            expect( configSource.getFinalName() ).andReturn( finalName ).atLeastOnce();
-        }
-    }
-
 }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/utils/FilterUtilsTest.java b/src/test/java/org/apache/maven/plugins/assembly/utils/FilterUtilsTest.java
index c1793b0..b5df696 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/utils/FilterUtilsTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/utils/FilterUtilsTest.java
@@ -19,18 +19,11 @@ package org.apache.maven.plugins.assembly.utils;
  * under the License.
  */
 
-import org.hamcrest.Matchers;
-
-import junit.framework.TestCase;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.model.Model;
-import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
-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.Assert;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -39,47 +32,38 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import static org.easymock.EasyMock.expect;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.logging.console.ConsoleLogger;
+import org.hamcrest.Matchers;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 
+@RunWith( MockitoJUnitRunner.class )
 public class FilterUtilsTest
-    extends TestCase
 {
-
-    private final EasyMockSupport mockManager = new EasyMockSupport();
-
     private Logger logger;
 
-    private static Model buildModel( final String groupId, final String artifactId )
-    {
-        final Model model = new Model();
-        model.setGroupId( groupId );
-        model.setArtifactId( artifactId );
-
-        return model;
-    }
-
-    @Override
+    @Before
     public void setUp()
     {
-        clearAll();
-    }
-
-    private void clearAll()
-    {
         logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
     }
 
+    @Test
     public void testFilterArtifacts_ShouldThrowExceptionUsingStrictModeWithUnmatchedInclude()
     {
-        final Artifact artifact = mockManager.createMock( Artifact.class );
-
-        expect( artifact.getGroupId() ).andReturn( "group" ).atLeastOnce();
-
-        expect( artifact.getArtifactId() ).andReturn( "artifact" ).atLeastOnce();
-
-        expect( artifact.getId() ).andReturn( "group:artifact:type:version" ).atLeastOnce();
-
-        expect( artifact.getDependencyConflictId() ).andReturn( "group:artifact:type" ).atLeastOnce();
+        final Artifact artifact = mock( Artifact.class );
+        when( artifact.getGroupId() ).thenReturn( "group" );
+        when( artifact.getArtifactId() ).thenReturn( "artifact" );
+        when( artifact.getId() ).thenReturn( "group:artifact:type:version" );
+        when( artifact.getDependencyConflictId() ).thenReturn( "group:artifact:type" );
 
         final List<String> includes = new ArrayList<>();
 
@@ -90,8 +74,6 @@ public class FilterUtilsTest
         final Set<Artifact> artifacts = new HashSet<>();
         artifacts.add( artifact );
 
-        mockManager.replayAll();
-
         try
         {
             FilterUtils.filterArtifacts( artifacts, includes, excludes, true, false, logger );
@@ -102,52 +84,53 @@ public class FilterUtilsTest
         {
             // expected.
         }
-
-        mockManager.verifyAll();
     }
 
+    @Test
     public void testFilterArtifacts_ShouldNotRemoveArtifactDirectlyIncluded()
-        throws InvalidAssemblerConfigurationException
+        throws Exception
     {
         verifyArtifactInclusion( "group", "artifact", "group:artifact", null, null, null );
         verifyArtifactInclusion( "group", "artifact", "group:artifact:jar", null, null, null );
     }
 
+    @Test
     public void testFilterArtifacts_ShouldNotRemoveArtifactTransitivelyIncluded()
-        throws InvalidAssemblerConfigurationException
+        throws Exception
     {
         verifyArtifactInclusion( "group", "artifact", "group:dependentArtifact", null,
                                  Arrays.asList( "current:project:jar:1.0", "group:dependentArtifact:jar:version" ),
                                  null );
     }
 
+    @Test
     public void testFilterArtifacts_ShouldRemoveArtifactTransitivelyExcluded()
-        throws InvalidAssemblerConfigurationException
+        throws Exception
     {
         verifyArtifactExclusion( "group", "artifact", null, "group:dependentArtifact",
                                  Arrays.asList( "current:project:jar:1.0", "group:dependentArtifact:jar:version" ),
                                  null );
     }
 
+    @Test
     public void testFilterArtifacts_ShouldRemoveArtifactDirectlyExcluded()
-        throws InvalidAssemblerConfigurationException
+        throws Exception
     {
         verifyArtifactExclusion( "group", "artifact", null, "group:artifact", null, null );
-
-        clearAll();
-
         verifyArtifactExclusion( "group", "artifact", null, "group:artifact:jar", null, null );
     }
 
+    @Test
     public void testFilterArtifacts_ShouldNotRemoveArtifactNotIncludedAndNotExcluded()
-        throws InvalidAssemblerConfigurationException
+        throws Exception
     {
         verifyArtifactInclusion( "group", "artifact", null, null, null, null );
         verifyArtifactInclusion( "group", "artifact", null, null, null, null );
     }
 
+    @Test
     public void testFilterArtifacts_ShouldRemoveArtifactExcludedByAdditionalFilter()
-        throws InvalidAssemblerConfigurationException
+        throws Exception
     {
         final ArtifactFilter filter = new ArtifactFilter()
         {
@@ -162,36 +145,42 @@ public class FilterUtilsTest
         verifyArtifactExclusion( "group", "artifact", "fail:fail", null, null, filter );
     }
 
+    @Test
     public void testFilterProjects_ShouldNotRemoveProjectDirectlyIncluded()
     {
         verifyProjectInclusion( "group", "artifact", "group:artifact", null, null );
         verifyProjectInclusion( "group", "artifact", "group:artifact:jar", null, null );
     }
 
+    @Test
     public void testFilterProjects_ShouldNotRemoveProjectTransitivelyIncluded()
     {
         verifyProjectInclusion( "group", "artifact", "group:dependentArtifact", null,
                                 Arrays.asList( "current:project:jar:1.0", "group:dependentArtifact:jar:version" ) );
     }
 
+    @Test
     public void testFilterProjects_ShouldRemoveProjectTransitivelyExcluded()
     {
         verifyProjectExclusion( "group", "artifact", null, "group:dependentArtifact",
                                 Arrays.asList( "current:project:jar:1.0", "group:dependentArtifact:jar:version" ) );
     }
 
+    @Test
     public void testFilterProjects_ShouldRemoveProjectDirectlyExcluded()
     {
         verifyProjectExclusion( "group", "artifact", null, "group:artifact", null );
         verifyProjectExclusion( "group", "artifact", null, "group:artifact:jar", null );
     }
 
+    @Test
     public void testFilterProjects_ShouldNotRemoveProjectNotIncludedAndNotExcluded()
     {
         verifyProjectInclusion( "group", "artifact", null, null, null );
         verifyProjectInclusion( "group", "artifact", null, null, null );
     }
 
+    @Test
     public void testTransitiveScopes()
     {
         Assert.assertThat( FilterUtils.newScopeFilter( "compile" ).getIncluded(),
@@ -234,9 +223,18 @@ public class FilterUtilsTest
                                           final boolean verifyInclusion, final ArtifactFilter additionalFilter )
         throws InvalidAssemblerConfigurationException
     {
-        final ArtifactMockAndControl mac = new ArtifactMockAndControl( groupId, artifactId, depTrail );
+        Artifact artifact = mock( Artifact.class );
 
-        mockManager.replayAll();
+        // this is always enabled, for verification purposes.
+        when( artifact.getDependencyConflictId() ).thenReturn( groupId + ":" + artifactId + ":jar" );
+        when( artifact.getGroupId() ).thenReturn( groupId );
+        when( artifact.getArtifactId() ).thenReturn( artifactId );
+        when( artifact.getId() ).thenReturn( groupId + ":" + artifactId + ":version:null:jar" );
+
+        if ( depTrail != null )
+        {
+            when( artifact.getDependencyTrail() ).thenReturn( depTrail );
+        }
 
         List<String> inclusions;
         if ( inclusionPattern != null )
@@ -258,8 +256,7 @@ public class FilterUtilsTest
             exclusions = Collections.emptyList();
         }
 
-        final Set<Artifact> artifacts = new HashSet<>();
-        artifacts.add( mac.artifact );
+        final Set<Artifact> artifacts = new HashSet<>( Collections.singleton( artifact ) );
 
         FilterUtils.filterArtifacts( artifacts, inclusions, exclusions, false, depTrail != null, logger,
                                      additionalFilter );
@@ -267,21 +264,16 @@ public class FilterUtilsTest
         if ( verifyInclusion )
         {
             assertEquals( 1, artifacts.size() );
-            assertEquals( mac.artifact.getDependencyConflictId(),
+            assertEquals( artifact.getDependencyConflictId(),
                           artifacts.iterator().next().getDependencyConflictId() );
         }
         else
         {
             // just make sure this trips, to meet the mock's expectations.
-            mac.artifact.getDependencyConflictId();
+            artifact.getDependencyConflictId();
 
             assertTrue( artifacts.isEmpty() );
         }
-
-        mockManager.verifyAll();
-
-        // get ready for multiple calls per test.
-        mockManager.resetAll();
     }
 
     private void verifyProjectInclusion( final String groupId, final String artifactId, final String inclusionPattern,
@@ -300,15 +292,25 @@ public class FilterUtilsTest
                                          final String exclusionPattern, final List<String> depTrail,
                                          final boolean verifyInclusion )
     {
-        final ProjectWithArtifactMockControl pmac = new ProjectWithArtifactMockControl( groupId, artifactId, depTrail );
+        final Artifact artifact = mock( Artifact.class );
+
+        // this is always enabled, for verification purposes.
+        when( artifact.getDependencyConflictId() ).thenReturn( groupId + ":" + artifactId + ":jar" );
+        when( artifact.getGroupId() ).thenReturn( groupId );
+        when( artifact.getArtifactId() ).thenReturn( artifactId );
+        when( artifact.getId() ).thenReturn( groupId + ":" + artifactId + ":version:null:jar" );
 
-        mockManager.replayAll();
+        if ( depTrail != null )
+        {
+            when( artifact.getDependencyTrail() ).thenReturn( depTrail );
+        }
 
-        // make sure the mock is satisfied...you can't disable this expectation.
-        pmac.mac.artifact.getDependencyConflictId();
+        MavenProject project = mock( MavenProject.class );
+        when( project.getId() ).thenReturn( "group:artifact:jar:1.0" );
+        when( project.getArtifact() ).thenReturn( artifact );
 
         final Set<MavenProject> projects = new HashSet<>();
-        projects.add( pmac );
+        projects.add( project );
 
         List<String> inclusions;
         if ( inclusionPattern != null )
@@ -334,87 +336,15 @@ public class FilterUtilsTest
 
         Set<MavenProject> result =
             FilterUtils.filterProjects( projects, inclusions, exclusions, depTrail != null, logger );
-
+        
         if ( verifyInclusion )
         {
             assertEquals( 1, result.size() );
-            assertEquals( pmac.getId(), result.iterator().next().getId() );
+            assertEquals( project.getId(), result.iterator().next().getId() );
         }
         else
         {
             assertTrue( result.isEmpty() );
         }
-
-        mockManager.verifyAll();
-
-        // get ready for multiple calls per test.
-        mockManager.resetAll();
-    }
-
-    private final class ProjectWithArtifactMockControl
-        extends MavenProject
-    {
-        final ArtifactMockAndControl mac;
-
-        ProjectWithArtifactMockControl( final String groupId, final String artifactId, final List<String> depTrail )
-        {
-            super( buildModel( groupId, artifactId ) );
-
-            mac = new ArtifactMockAndControl( groupId, artifactId, depTrail );
-
-            setArtifact( mac.artifact );
-
-            setVersion( "1.0" );
-        }
-
-    }
-
-    private final class ArtifactMockAndControl
-    {
-        final Artifact artifact;
-
-        final String groupId;
-
-        final String artifactId;
-
-        final List<String> dependencyTrail;
-
-        ArtifactMockAndControl( final String groupId, final String artifactId, final List<String> dependencyTrail )
-        {
-            this.groupId = groupId;
-            this.artifactId = artifactId;
-            this.dependencyTrail = dependencyTrail;
-
-            artifact = mockManager.createMock( Artifact.class );
-
-            // this is always enabled, for verification purposes.
-            enableGetDependencyConflictId();
-            enableGetGroupIdArtifactIdAndId();
-
-            if ( dependencyTrail != null )
-            {
-                enableGetDependencyTrail();
-            }
-        }
-
-        void enableGetDependencyTrail()
-        {
-            expect( artifact.getDependencyTrail() ).andReturn( dependencyTrail ).anyTimes();
-        }
-
-        void enableGetDependencyConflictId()
-        {
-            expect( artifact.getDependencyConflictId() ).andReturn( groupId + ":" + artifactId + ":jar" ).anyTimes();
-        }
-
-        void enableGetGroupIdArtifactIdAndId()
-        {
-            expect( artifact.getGroupId() ).andReturn( groupId ).anyTimes();
-
-            expect( artifact.getArtifactId() ).andReturn( artifactId ).anyTimes();
-
-            expect( artifact.getId() ).andReturn( groupId + ":" + artifactId + ":version:null:jar" ).anyTimes();
-        }
     }
-
 }