@Test
public void testValidTargetProject() throws Exception {

	final String finalName = "output";
	final String version = "1";
	// Copy the project
	File baseDirectory = this.resources.getBasedir( "target-ok-multi" );
	File compileDirectory = new File( baseDirectory, "target/test/classes" );
	File targetArchive = new File( baseDirectory, "target/" + finalName + ".zip" );
	Assert.assertFalse( targetArchive.exists());
	// Create the Maven project by hand
	File pom = new File( baseDirectory, "pom.xml" );
	final MavenProject mvnProject = new MavenProject() ;
	mvnProject.setFile( pom ) ;
	mvnProject.setVersion( version );
	mvnProject.getBuild().setFinalName( finalName );
	mvnProject.setArtifact( new ProjectArtifact( mvnProject ));
	mvnProject.getBuild().setDirectory( new File( baseDirectory, "target" ).getAbsolutePath());
	mvnProject.getBuild().setOutputDirectory( compileDirectory.getAbsolutePath());
	// Copy the resources - mimic what Maven would really do
	Utils.copyDirectory(
			new File( mvnProject.getBasedir(), "src/main/resources" ),
			new File( mvnProject.getBuild().getOutputDirectory()));
	// Package
	PackageTargetMojo packageTargetMojo = (PackageTargetMojo) this.rule.lookupMojo( "package-target", pom );
	this.rule.setVariableValueToObject( packageTargetMojo, "project", mvnProject );
	packageTargetMojo.execute();
	// Check assertions.
	// Unfortunately, no filtering here.
	Assert.assertTrue( targetArchive.exists());
	File unzipDirectory = this.folder.newFolder();
	Utils.extractZipArchive( targetArchive, unzipDirectory );
	List<File> files = Utils.listAllFiles( unzipDirectory );
	Assert.assertEquals( 2, files.size());
	Assert.assertTrue( files.contains( new File( unzipDirectory, "test1.properties" )));
	Assert.assertTrue( files.contains( new File( unzipDirectory, "test2.properties" )));
}