[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