[jboss-cvs] JBossAS SVN: r72786 - in projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/metadata: test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Apr 28 09:46:12 EDT 2008
Author: alesj
Date: 2008-04-28 09:46:12 -0400 (Mon, 28 Apr 2008)
New Revision: 72786
Modified:
projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/metadata/VFSClassLoadingMicrocontainerTest.java
projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/metadata/test/VFSResourceVisitorUnitTestCase.java
Log:
Bytes resources test.
Modified: projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/metadata/VFSClassLoadingMicrocontainerTest.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/metadata/VFSClassLoadingMicrocontainerTest.java 2008-04-28 13:32:00 UTC (rev 72785)
+++ projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/metadata/VFSClassLoadingMicrocontainerTest.java 2008-04-28 13:46:12 UTC (rev 72786)
@@ -70,12 +70,17 @@
protected String getRoot(Class<?> clazz)
{
+ URL location = getRootURL(clazz);
+ return location.toString();
+ }
+
+ protected URL getRootURL(Class<?> clazz)
+ {
ProtectionDomain pd = clazz.getProtectionDomain();
CodeSource cs = pd.getCodeSource();
- URL location = cs.getLocation();
- return location.toString();
+ return cs.getLocation();
}
-
+
protected String getContextName(VFSClassLoaderFactory factory)
{
String contextName = factory.getContextName();
Modified: projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/metadata/test/VFSResourceVisitorUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/metadata/test/VFSResourceVisitorUnitTestCase.java 2008-04-28 13:32:00 UTC (rev 72785)
+++ projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/metadata/test/VFSResourceVisitorUnitTestCase.java 2008-04-28 13:46:12 UTC (rev 72786)
@@ -21,12 +21,17 @@
*/
package org.jboss.test.classloading.vfs.metadata.test;
+import java.io.IOException;
+import java.io.InputStream;
import java.net.URL;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
import junit.framework.Test;
+import org.jboss.classloader.plugins.ClassLoaderUtils;
import org.jboss.classloading.spi.dependency.Module;
import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
import org.jboss.classloading.spi.visitor.ClassVisitor;
@@ -34,6 +39,9 @@
import org.jboss.classloading.spi.visitor.ResourceVisitor;
import org.jboss.kernel.spi.deployment.KernelDeployment;
import org.jboss.test.classloading.vfs.metadata.VFSClassLoadingMicrocontainerTest;
+import org.jboss.test.classloading.vfs.metadata.support.a.A;
+import org.jboss.test.classloading.vfs.metadata.support.b.B;
+import org.jboss.test.classloading.vfs.metadata.support.c.C;
/**
* VFSResourceVisitorUnitTestCase.
@@ -42,8 +50,16 @@
*/
public class VFSResourceVisitorUnitTestCase extends VFSClassLoadingMicrocontainerTest
{
- private static String[] paths = new String[] {"a/A.class", "b/B.class", "c/C.class"};
+ private static Map<String, Class<?>> aliases;
+ static
+ {
+ aliases = new HashMap<String, Class<?>>();
+ aliases.put("a/A.class", A.class);
+ aliases.put("b/B.class", B.class);
+ aliases.put("c/C.class", C.class);
+ }
+
public static Test suite()
{
return suite(VFSResourceVisitorUnitTestCase.class);
@@ -84,19 +100,67 @@
{
VFSClassLoaderFactory factory = new VFSClassLoaderFactory("test");
factory.setRoots(Arrays.asList(System.getProperty("test.dir") + "/support/"));
- install(factory);
+ KernelDeployment deployment = install(factory);
try
{
visitModule();
}
finally
{
- shutdown();
+ undeploy(deployment);
}
}
- // TODO - test inputstream / bytes
+ public void testBytes() throws Exception
+ {
+ VFSClassLoaderFactory factory = new VFSClassLoaderFactory("test");
+ factory.setRoots(Arrays.asList(System.getProperty("test.dir") + "/support/"));
+ KernelDeployment deployment = install(factory);
+ try
+ {
+ final Map<String, byte[]> bytes = new HashMap<String,byte[]>();
+ ResourceVisitor visitor = new ClassVisitor()
+ {
+ public void visit(ResourceContext resource)
+ {
+ try
+ {
+ bytes.put(resource.getResourceName(), resource.getBytes());
+ }
+ catch (IOException e)
+ {
+ throw new Error(e);
+ }
+ }
+ };
+ Module module = assertModule("test:0.0.0");
+ module.visit(visitor);
+ assertFalse(bytes.isEmpty());
+ for (Map.Entry<String, byte[]> entry : bytes.entrySet())
+ {
+ Class<?> clazz = aliases.get(entry.getKey());
+ assertNotNull(clazz);
+ URL url = new URL(getRoot(clazz) + ClassLoaderUtils.classNameToPath(clazz));
+ InputStream in = url.openStream();
+ try
+ {
+ byte[] classBytes = ClassLoaderUtils.loadBytes(in);
+ byte[] value = entry.getValue();
+ assertTrue(Arrays.equals(classBytes, value));
+ }
+ finally
+ {
+ in.close();
+ }
+ }
+ }
+ finally
+ {
+ undeploy(deployment);
+ }
+ }
+
protected void visitModule()
{
Module module = assertModule("test:0.0.0");
@@ -109,6 +173,6 @@
}
};
module.visit(visitor);
- assertEquals(new HashSet<String>(Arrays.asList(paths)), set);
+ assertEquals(aliases.keySet(), set);
}
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list