Author: olamy
Date: Mon Dec 17 13:26:20 2007
New Revision: 605008

URL: http://svn.apache.org/viewvc?rev=605008&view=rev
Log:
add tests on manifest entries

Modified:
    
maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java

Modified: 
maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java?rev=605008&r1=605007&r2=605008&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
 (original)
+++ 
maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
 Mon Dec 17 13:26:20 2007
@@ -36,6 +36,7 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
+import org.apache.maven.model.Organization;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.archiver.jar.JarArchiver;
 import org.codehaus.plexus.archiver.jar.Manifest;
@@ -378,6 +379,62 @@
         }
     }     
     
+    public void testManifestEntries()
+        throws Exception
+    {
+        InputStream inputStream = null;
+        JarFile jar = null;
+        try
+        {
+            File jarFile = new File( "target/test/dummy.jar" );
+            jarFile.delete();
+            assertFalse( jarFile.exists() );
+            JarArchiver jarArchiver = new JarArchiver();
+            jarArchiver.setDestFile( jarFile );
+
+            MavenArchiver archiver = new MavenArchiver();
+            archiver.setArchiver( jarArchiver );
+            archiver.setOutputFile( jarArchiver.getDestFile() );
+
+            MavenProject project = getDummyProject();
+            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+            config.setForced( true );
+            config.getManifest().setAddDefaultImplementationEntries( true );
+            config.getManifest().setAddDefaultSpecificationEntries( true );
+            config.getManifest().setMainClass( "org.apache.maven.Foo" );
+            archiver.createArchive( project, config );
+            assertTrue( jarFile.exists() );
+            jar = new JarFile( jarFile );
+
+            ZipEntry zipEntry = jar.getEntry( "META-INF/MANIFEST.MF" );
+            Properties manifest = new Properties();
+            inputStream = jar.getInputStream( zipEntry );
+            manifest.load( inputStream );
+            assertEquals( "Apache Maven", manifest.get( "Created-By" ) );
+            assertEquals( "archiver test", manifest.get( "Specification-Title" 
) );
+            assertEquals( "0.1", manifest.get( "Specification-Version" ) );
+            assertEquals( "Apache", manifest.get( "Specification-Vendor" ) );
+
+            assertEquals( "archiver test", manifest.get( 
"Implementation-Title" ) );
+            assertEquals( "0.1", manifest.get( "Implementation-Version" ) );
+            assertEquals( "org.apache.dummy", manifest.get( 
"Implementation-Vendor-Id" ) );
+            assertEquals( "Apache", manifest.get( "Implementation-Vendor" ) );
+            assertEquals( "org.apache.maven.Foo", manifest.get( "Main-Class" ) 
);
+            
+            assertEquals(System.getProperty( "java.version"), 
manifest.getProperty( "Build-Jdk" ) );
+            assertEquals(System.getProperty( "user.name"), 
manifest.getProperty( "Built-By" ) );
+        }
+        finally
+        {
+            // cleanup streams
+            IOUtil.close( inputStream );
+            if ( jar != null )
+            {
+                jar.close();
+            }
+        }
+    }
+    
     // ----------------------------------------
     //  common methods for testing
     // ----------------------------------------
@@ -401,7 +458,11 @@
         project.setFile( pomFile );
         Build build = new Build();
         build.setDirectory( "target" );
-        project.setBuild( build );        
+        project.setBuild( build );
+        project.setName( "archiver test" );
+        Organization organization = new Organization();
+        organization.setName( "Apache" );
+        project.setOrganization( organization );
         MockArtifact artifact = new MockArtifact();
         artifact.setGroupId( "org.apache.dummy" );
         artifact.setArtifactId( "dummy" );


Reply via email to