@Test
public void testCreateArchive()
throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException,
IOException, DependencyResolutionException
{
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() );
final AssemblerConfigurationSource configSource =
mm.createControl().createMock( AssemblerConfigurationSource.class );
final File tempDir = fileManager.createTempDir();
FileUtils.deleteDirectory( tempDir );
expect(configSource.getTemporaryRootDirectory()).andReturn( tempDir ).anyTimes();
expect( configSource.isDryRun()).andReturn( false ).anyTimes();
expect( configSource.isIgnoreDirFormatExtensions()).andReturn( false ).anyTimes();
final File outDir = fileManager.createTempDir();
macMgr.archiver.setDestFile( new File( outDir, "full-name.zip" ) );
try
{
macMgr.archiver.createArchive();
}
catch ( final ArchiverException e )
{
fail( "Should never happen" );
}
catch ( final IOException e )
{
fail( "Should never happen" );
}
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 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 );
subject.createArchive( assembly, "full-name", "zip", configSource, false );
mm.verifyAll();
}