{
final String outputLocation = "/out";
final MavenProject project = newMavenProject( "group", "project", "0" );
final ArtifactMock projectArtifactMock = new ArtifactMock( mockManager, "group", "project", "0", "jar", false );
project.setArtifact( projectArtifactMock.getArtifact() );
final DependencySet ds = new DependencySet();
ds.setUseProjectArtifact( false );
ds.setOutputDirectory( outputLocation );
ds.setOutputFileNameMapping( "${artifact.artifactId}" );
ds.setUnpack( false );
ds.setScope( Artifact.SCOPE_COMPILE );
ds.setFileMode( Integer.toString( 10, 8 ) );
final Assembly assembly = new Assembly();
assembly.setId( "test" );
assembly.setIncludeBaseDirectory( false );
assembly.addDependencySet( ds );
final MockAndControlForAddDependencySetsTask macTask =
new MockAndControlForAddDependencySetsTask( mockManager, project );
final ArtifactMock artifactMock = new ArtifactMock( mockManager, "group", "dep", "1", "jar", false );
final File artifactFile = artifactMock.setNewFile();
System.out.println( "On test setup, hashcode for dependency artifact: " + artifactMock.getArtifact()
.hashCode() );
macTask.expectCSGetRepositories( null, null );
macTask.expectGetDestFile( new File( "junk" ) );
macTask.expectAddFile( artifactFile, "out/dep", 10 );
macTask.expectGetSession( null );
project.setArtifacts( Collections.singleton( artifactMock.getArtifact() ) );
macTask.expectCSGetFinalName( "final-name" );
final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
final MavenProject depProject = newMavenProject( "group", "dep", "1" );
macTask.expectBuildFromRepository( depProject );
mockManager.replayAll();
final DefaultAssemblyContext context = new DefaultAssemblyContext();
context.setResolvedArtifacts( Collections.singleton( artifactMock.getArtifact() ) );
createPhase( macTask, logger ).execute( assembly, macTask.archiver, macTask.configSource, context );
mockManager.verifyAll();
}