Author: aramirez Date: Tue Apr 11 22:59:56 2006 New Revision: 393394 URL: http://svn.apache.org/viewcvs?rev=393394&view=rev Log: PR: MRAR-6
added new tests Added: maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub2.java maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub3.java maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-test/target/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-test/target/test-rar.jar maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/plugin-config.xml maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/src/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/src/main/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar/META-INF/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar/META-INF/ra.xml maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/plugin-config.xml maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/MANIFEST.MF maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/ra.xml Modified: maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java Modified: maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java?rev=393394&r1=393393&r2=393394&view=diff ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java (original) +++ maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java Tue Apr 11 22:59:56 2006 @@ -20,16 +20,17 @@ import java.util.ArrayList; import java.util.Enumeration; import java.util.List; +import java.util.Iterator; -import org.apache.maven.plugin.rar.stubs.RarMavenProjectStub; import org.apache.maven.plugin.testing.AbstractMojoTestCase; import org.codehaus.plexus.archiver.zip.ZipEntry; import org.codehaus.plexus.archiver.zip.ZipFile; +import org.codehaus.plexus.util.FileUtils; /** * @author <a href="mailto:[EMAIL PROTECTED]">Allan Ramirez</a> */ -public class RarMojoTest +public class RarMojoTest extends AbstractMojoTestCase { public void testRarTestEnvironment() @@ -39,71 +40,233 @@ "target/test-classes/unit/basic-rar-test/plugin-config.xml" ); RarMojo mojo = ( RarMojo ) lookupMojo( "rar", testPom ); - + assertNotNull( mojo ); } - + public void testBasicRar() throws Exception { File testPom = new File( getBasedir(), "target/test-classes/unit/basic-rar-test/plugin-config.xml" ); - + RarMojo mojo = ( RarMojo ) lookupMojo( "rar", testPom ); - + assertNotNull( mojo ); String finalName = ( String ) getVariableValueFromObject( mojo, "finalName" ); - + String workDir = ( String ) getVariableValueFromObject( mojo, "workDirectory" ); - + String outputDir = ( String ) getVariableValueFromObject( mojo, "outputDirectory" ); - + + Boolean includeJar = ( Boolean ) getVariableValueFromObject( mojo, "includeJar" ); + + assertTrue( includeJar.booleanValue() ); + + //include the project jar to the rar + File projectJar = new File( getBasedir(), "src/test/resources/unit/basic-rar-test/target/test-rar.jar" ); + + FileUtils.copyFileToDirectory( projectJar, new File( outputDir ) ); + mojo.execute(); - + //check the working directory File workDirectory = new File( workDir ); - + assertTrue( workDirectory.exists() ); - + assertTrue( workDirectory.isDirectory() ); - + File[] fileNames = workDirectory.listFiles(); - + assertEquals( 3, fileNames.length ); - + assertEquals( "maven-artifact01-1.0-SNAPSHOT.jar", fileNames[0].getName() ); - + assertEquals( "maven-artifact02-1.0-SNAPSHOT.jar", fileNames[1].getName() ); - + + assertEquals( "test-rar.jar", fileNames[2].getName() ); + + //check the generated rar file + File rarFile = new File( outputDir, finalName + ".rar" ); + + assertTrue( rarFile.exists() ); + + //expected files/directories inside the rar file + List expectedFiles = new ArrayList(); + + expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-rar-test/pom.properties" ); + expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-rar-test/pom.xml" ); + expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-rar-test/" ); + expectedFiles.add( "META-INF/maven/org.apache.maven.test/" ); + expectedFiles.add( "META-INF/maven/" ); + expectedFiles.add( "META-INF/MANIFEST.MF" ); + expectedFiles.add( "META-INF/" ); + expectedFiles.add( "maven-artifact01-1.0-SNAPSHOT.jar" ); + expectedFiles.add( "maven-artifact02-1.0-SNAPSHOT.jar" ); + expectedFiles.add( "test-rar.jar" ); + + ZipFile rar = new ZipFile( rarFile ); + + Enumeration entries = rar.getEntries(); + + assertTrue( entries.hasMoreElements() ); + + assertEquals( 0, getSizeOfExpectedFiles( entries, expectedFiles ) ); + } + + public void testBasicRarWithDescriptor() + throws Exception + { + File testPom = new File( getBasedir(), + "target/test-classes/unit/basic-rar-with-descriptor/plugin-config.xml" ); + + RarMojo mojo = ( RarMojo ) lookupMojo( "rar", testPom ); + + assertNotNull( mojo ); + + String finalName = ( String ) getVariableValueFromObject( mojo, "finalName" ); + + String workDir = ( String ) getVariableValueFromObject( mojo, "workDirectory" ); + + String outputDir = ( String ) getVariableValueFromObject( mojo, "outputDirectory" ); + + mojo.execute(); + + //check the working directory + File workDirectory = new File( workDir ); + + assertTrue( workDirectory.exists() ); + + assertTrue( workDirectory.isDirectory() ); + + File[] fileNames = workDirectory.listFiles(); + + List expectedFiles = new ArrayList(); + List fileList = new ArrayList(); + + for( int i=0; i<fileNames.length; i++ ) + { + addFileToList( fileNames[i], fileList ); + } + + expectedFiles.add( "ra.xml" ); + expectedFiles.add( "maven-artifact01-1.0-SNAPSHOT.jar" ); + expectedFiles.add( "maven-artifact02-1.0-SNAPSHOT.jar" ); + expectedFiles.add( "META-INF" ); + + assertEquals( expectedFiles.size(), fileList.size() ); + + assertEquals( 0, getSizeOfExpectedFiles( fileList, expectedFiles ) ); + //check the generated rar file File rarFile = new File( outputDir, finalName + ".rar" ); - + assertTrue( rarFile.exists() ); //expected files/directories inside the rar file + expectedFiles = new ArrayList(); + + expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-rar-test/pom.properties" ); + expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-rar-test/pom.xml" ); + expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-rar-test/" ); + expectedFiles.add( "META-INF/maven/org.apache.maven.test/" ); + expectedFiles.add( "META-INF/maven/" ); + expectedFiles.add( "META-INF/MANIFEST.MF" ); + expectedFiles.add( "META-INF/ra.xml" ); + expectedFiles.add( "META-INF/" ); + expectedFiles.add( "maven-artifact01-1.0-SNAPSHOT.jar" ); + expectedFiles.add( "maven-artifact02-1.0-SNAPSHOT.jar" ); + + ZipFile rar = new ZipFile( rarFile ); + + Enumeration entries = rar.getEntries(); + + assertTrue( entries.hasMoreElements() ); + + assertEquals( 0, getSizeOfExpectedFiles( entries, expectedFiles ) ); + } + + public void testBasicRarWithManifest() + throws Exception + { + File testPom = new File( getBasedir(), + "target/test-classes/unit/basic-rar-with-manifest/plugin-config.xml" ); + + RarMojo mojo = ( RarMojo ) lookupMojo( "rar", testPom ); + + assertNotNull( mojo ); + + String finalName = ( String ) getVariableValueFromObject( mojo, "finalName" ); + + String workDir = ( String ) getVariableValueFromObject( mojo, "workDirectory" ); + + String outputDir = ( String ) getVariableValueFromObject( mojo, "outputDirectory" ); + + mojo.execute(); + + //check the working directory + File workDirectory = new File( workDir ); + + assertTrue( workDirectory.exists() ); + + assertTrue( workDirectory.isDirectory() ); + + File[] fileNames = workDirectory.listFiles(); + List expectedFiles = new ArrayList(); - + List fileList = new ArrayList(); + + for( int i=0; i<fileNames.length; i++ ) + { + addFileToList( fileNames[i], fileList ); + } + + expectedFiles.add( "ra.xml" ); + expectedFiles.add( "maven-artifact01-1.0-SNAPSHOT.jar" ); + expectedFiles.add( "maven-artifact02-1.0-SNAPSHOT.jar" ); + expectedFiles.add( "META-INF" ); + expectedFiles.add( "MANIFEST.MF" ); + + assertEquals( expectedFiles.size(), fileList.size() ); + + assertEquals( 0, getSizeOfExpectedFiles( fileList, expectedFiles ) ); + + //check the generated rar file + File rarFile = new File( outputDir, finalName + ".rar" ); + + assertTrue( rarFile.exists() ); + + //expected files/directories inside the rar file + expectedFiles = new ArrayList(); + expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-rar-test/pom.properties" ); expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-rar-test/pom.xml" ); expectedFiles.add( "META-INF/maven/org.apache.maven.test/maven-rar-test/" ); expectedFiles.add( "META-INF/maven/org.apache.maven.test/" ); expectedFiles.add( "META-INF/maven/" ); expectedFiles.add( "META-INF/MANIFEST.MF" ); + expectedFiles.add( "META-INF/ra.xml" ); expectedFiles.add( "META-INF/" ); expectedFiles.add( "maven-artifact01-1.0-SNAPSHOT.jar" ); expectedFiles.add( "maven-artifact02-1.0-SNAPSHOT.jar" ); - + ZipFile rar = new ZipFile( rarFile ); - + Enumeration entries = rar.getEntries(); - + assertTrue( entries.hasMoreElements() ); - + + assertEquals( 0, getSizeOfExpectedFiles( entries, expectedFiles ) ); + } + + private int getSizeOfExpectedFiles( Enumeration entries, List expectedFiles ) + { while( entries.hasMoreElements() ) { - ZipEntry entry = ( ZipEntry ) entries.nextElement(); - + ZipEntry entry = ( ZipEntry ) entries.nextElement(); + if( expectedFiles.contains( entry.getName() ) ) { expectedFiles.remove( entry.getName() ); @@ -114,8 +277,44 @@ fail( entry.getName() + " is not included in the expected files" ); } } - assertEquals( 0, expectedFiles.size() ); + return expectedFiles.size(); + } + + private int getSizeOfExpectedFiles( List fileList, List expectedFiles ) + { + for( Iterator iter=fileList.iterator(); iter.hasNext(); ) + { + String fileName = ( String ) iter.next(); + + if( expectedFiles.contains( fileName ) ) + { + expectedFiles.remove( fileName ); + assertFalse( expectedFiles.contains( fileName ) ); + } + else + { + fail( fileName + " is not included in the expected files" ); + } + } + return expectedFiles.size(); + } + + private void addFileToList( File file, List fileList ) + { + if( !file.isDirectory() ) + { + fileList.add( file.getName() ); + } + else + { + fileList.add( file.getName() ); + + File[] files = file.listFiles(); + + for( int i=0; i<files.length; i++ ) + { + addFileToList( files[i], fileList ); + } + } } - - } Added: maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub2.java URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub2.java?rev=393394&view=auto ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub2.java (added) +++ maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub2.java Tue Apr 11 22:59:56 2006 @@ -0,0 +1,12 @@ +package org.apache.maven.plugin.rar.stubs; + +import java.io.File; + +public class RarMavenProjectStub2 + extends RarMavenProjectStub +{ + public File getFile() + { + return new File( getBasedir(), "src/test/resources/unit/basic-rar-with-descriptor/plugin-config.xml" ); + } +} Added: maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub3.java URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub3.java?rev=393394&view=auto ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub3.java (added) +++ maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/stubs/RarMavenProjectStub3.java Tue Apr 11 22:59:56 2006 @@ -0,0 +1,12 @@ +package org.apache.maven.plugin.rar.stubs; + +import java.io.File; + +public class RarMavenProjectStub3 + extends RarMavenProjectStub +{ + public File getFile() + { + return new File( getBasedir(), "src/test/resources/unit/basic-rar-with-manifest/plugin-config.xml" ); + } +} Added: maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-test/target/test-rar.jar URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-test/target/test-rar.jar?rev=393394&view=auto ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-test/target/test-rar.jar (added) +++ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-test/target/test-rar.jar Tue Apr 11 22:59:56 2006 @@ -0,0 +1 @@ +This is not an actual jar \ No newline at end of file Added: maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/plugin-config.xml URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/plugin-config.xml?rev=393394&view=auto ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/plugin-config.xml (added) +++ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/plugin-config.xml Tue Apr 11 22:59:56 2006 @@ -0,0 +1,19 @@ +<project> + <build> + <plugins> + <plugin> + <artifactId>maven-rar-plugin</artifactId> + <configuration> + <rarSourceDirectory>${basedir}/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar</rarSourceDirectory> + <raXmlFile>${basedir}/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar/META-INF/ra.xml</raXmlFile> + <includeJar>false</includeJar> + <manifestFile>${basedir}/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar/META-INF/MANIFEST.MF</manifestFile> + <workDirectory>${basedir}/target/unit/basic-rar-with-descriptor/target/rar-test-with-descriptor</workDirectory> + <outputDirectory>${basedir}/target/unit/basic-rar-with-descriptor/target</outputDirectory> + <finalName>test-rar-with-descriptor</finalName> + <project implementation="org.apache.maven.plugin.rar.stubs.RarMavenProjectStub2" /> + </configuration> + </plugin> + </plugins> + </build> +</project> Added: maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar/META-INF/ra.xml URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar/META-INF/ra.xml?rev=393394&view=auto ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar/META-INF/ra.xml (added) +++ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-descriptor/src/main/rar/META-INF/ra.xml Tue Apr 11 22:59:56 2006 @@ -0,0 +1 @@ +<!-- test resource adapter descriptor --> \ No newline at end of file Added: maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/plugin-config.xml URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/plugin-config.xml?rev=393394&view=auto ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/plugin-config.xml (added) +++ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/plugin-config.xml Tue Apr 11 22:59:56 2006 @@ -0,0 +1,19 @@ +<project> + <build> + <plugins> + <plugin> + <artifactId>maven-rar-plugin</artifactId> + <configuration> + <rarSourceDirectory>${basedir}/src/test/resources/unit/basic-rar-with-manifest/src/main/rar</rarSourceDirectory> + <raXmlFile>${basedir}/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/ra.xml</raXmlFile> + <includeJar>false</includeJar> + <manifestFile>${basedir}/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/MANIFEST.MF</manifestFile> + <workDirectory>${basedir}/target/unit/basic-rar-with-manifest/target/rar-test-with-descriptor</workDirectory> + <outputDirectory>${basedir}/target/unit/basic-rar-with-manifest/target</outputDirectory> + <finalName>test-rar-with-manifest</finalName> + <project implementation="org.apache.maven.plugin.rar.stubs.RarMavenProjectStub3" /> + </configuration> + </plugin> + </plugins> + </build> +</project> Added: maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/MANIFEST.MF URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/MANIFEST.MF?rev=393394&view=auto ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/MANIFEST.MF (added) +++ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/MANIFEST.MF Tue Apr 11 22:59:56 2006 @@ -0,0 +1,12 @@ +Manifest-Version: test +Archiver-Version: test +Created-By: Apache Maven +Built-By: aqr +Build-Jdk: 1.4.2_11 +Extension-Name: maven-rar-test +Specification-Title: Test description +Specification-Vendor: organization +Implementation-Vendor: organization +Implementation-Title: maven-rar-test +Implementation-Version: 1.0-SNAPSHOT + Added: maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/ra.xml URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/ra.xml?rev=393394&view=auto ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/ra.xml (added) +++ maven/plugins/trunk/maven-rar-plugin/src/test/resources/unit/basic-rar-with-manifest/src/main/rar/META-INF/ra.xml Tue Apr 11 22:59:56 2006 @@ -0,0 +1 @@ +<!-- test resource adapter descriptor --> \ No newline at end of file