package org.osgi.service.indexer.impl; import java.io.File; import java.util.List; import java.util.jar.Manifest; import org.osgi.service.indexer.Resource; import junit.framework.TestCase; public class TestJarResource extends TestCase { public void testJarName() throws Exception { JarResource resource = new JarResource(new File("testdata/01-bsn+version.jar")); assertEquals("testdata/01-bsn+version.jar", resource.getLocation()); } public void testJarSize() throws Exception { JarResource resource = new JarResource(new File("testdata/01-bsn+version.jar")); assertEquals(1104L, resource.getSize()); } public void testJarListing() throws Exception { JarResource resource = new JarResource(new File("testdata/01-bsn+version.jar")); List<String> children = resource.listChildren("org/example/a/"); assertEquals(2, children.size()); assertEquals("A.class", children.get(0)); assertEquals("packageinfo", children.get(1)); } public void testJarListingInvalidPaths() throws Exception { JarResource resource = new JarResource(new File("testdata/01-bsn+version.jar")); assertNull(resource.listChildren("org/wibble/")); assertNull(resource.listChildren("org/example/a")); } public void testJarListingRoot() throws Exception { JarResource resource = new JarResource(new File("testdata/org.eclipse.osgi_3.7.2.v20120110-1415.jar")); List<String> children = resource.listChildren(""); assertEquals(21, children.size()); assertEquals("META-INF/", children.get(0)); } public void testJarFileContent() throws Exception { JarResource resource = new JarResource(new File("testdata/01-bsn+version.jar")); Resource pkgInfoResource = resource.getChild("org/example/a/packageinfo"); assertEquals("version 1.0", Utils.readStream(pkgInfoResource.getStream())); } public void testJarManifest() throws Exception { JarResource resource = new JarResource(new File("testdata/01-bsn+version.jar")); Manifest manifest = resource.getManifest(); assertEquals("org.example.a", manifest.getMainAttributes().getValue("Bundle-SymbolicName")); } }