Author: jdcasey Date: Mon Feb 18 11:46:52 2008 New Revision: 628853 URL: http://svn.apache.org/viewvc?rev=628853&view=rev Log: [MASSEMBLY-188] Adding a unit test to verify that manifest entries are handled from the plugin configuration.
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizerTest.java Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizerTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizerTest.java?rev=628853&r1=628852&r2=628853&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizerTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizerTest.java Mon Feb 18 11:46:52 2008 @@ -47,7 +47,8 @@ private TestFileManager fileManager = new TestFileManager( "manifest-finalizer.test.", ".jar" ); - public void tearDown() throws IOException + public void tearDown() + throws IOException { fileManager.cleanUp(); } @@ -89,7 +90,9 @@ JarArchiver archiver = new JarArchiver(); - archiver.setArchiveFinalizers( Collections.singletonList( new ManifestCreationFinalizer( project, config ) ) ); + archiver.setArchiveFinalizers( Collections.singletonList( new ManifestCreationFinalizer( + project, + config ) ) ); File file = fileManager.createTempFile(); @@ -108,7 +111,46 @@ assertTrue( writer.toString().indexOf( "Main-Class: Stuff" ) > -1 ); // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4823678 - ((JarURLConnection)resource.openConnection()).getJarFile().close(); + ( (JarURLConnection) resource.openConnection() ).getJarFile().close(); + } + + public void testShouldAddManifestEntriesWhenArchiverIsJarArchiver() + throws ArchiverException, IOException + { + MavenProject project = new MavenProject( new Model() ); + MavenArchiveConfiguration config = new MavenArchiveConfiguration(); + + String testKey = "Test-Key"; + String testValue = "test-value"; + + config.addManifestEntry( testKey, testValue ); + + JarArchiver archiver = new JarArchiver(); + + archiver.setArchiveFinalizers( Collections.singletonList( new ManifestCreationFinalizer( + project, + config ) ) ); + + File file = fileManager.createTempFile(); + + archiver.setDestFile( file ); + + archiver.createArchive(); + + URL resource = new URL( "jar:file:" + file.getAbsolutePath() + "!/META-INF/MANIFEST.MF" ); + + BufferedReader reader = new BufferedReader( new InputStreamReader( resource.openStream() ) ); + + StringWriter writer = new StringWriter(); + + IOUtil.copy( reader, writer ); + + System.out.println( "Test Manifest:\n\n" + writer ); + + assertTrue( writer.toString().indexOf( testKey + ": " + testValue ) > -1 ); + + // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4823678 + ( (JarURLConnection) resource.openConnection() ).getJarFile().close(); } private final class MockAndControlForArchiver @@ -122,7 +164,7 @@ control = MockControl.createControl( Archiver.class ); mm.add( control ); - archiver = ( Archiver ) control.getMock(); + archiver = (Archiver) control.getMock(); } }