[jboss-svn-commits] JBoss Common SVN: r4325 - in arquillian/trunk/impl-base/src: test/java/org/jboss/arquillian/impl and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Apr 24 10:30:58 EDT 2010


Author: aslak
Date: 2010-04-24 10:30:58 -0400 (Sat, 24 Apr 2010)
New Revision: 4325

Modified:
   arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGenerator.java
   arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGeneratorTestCase.java
Log:
ARQ-118 Quick fix to UnsupportedOperationException when adding the TestCase class to a Archive that does not support Classes.


Modified: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGenerator.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGenerator.java	2010-04-23 13:58:39 UTC (rev 4324)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGenerator.java	2010-04-24 14:30:58 UTC (rev 4325)
@@ -54,12 +54,23 @@
       {
          Archive<?> archive = (Archive<?>)deploymentMethod.invoke(null);
          // TODO: handle deployment attributes like autoAddPakcage etc..
-         if(ClassContainer.class.isInstance(archive)) 
+         try
          {
-            ClassContainer<?> classContainer = ClassContainer.class.cast(archive);
-            classContainer.addClass(testCase);
+            if(ClassContainer.class.isInstance(archive)) 
+            {
+               ClassContainer<?> classContainer = ClassContainer.class.cast(archive);
+               classContainer.addClass(testCase);
+            }
+         } 
+         catch (UnsupportedOperationException e) 
+         { 
+            /*
+             * Quick Fix: https://jira.jboss.org/jira/browse/ARQ-118
+             * Keep in mind when rewriting for https://jira.jboss.org/jira/browse/ARQ-94
+             * that a ShrinkWrap archive might not support a Container if even tho the 
+             * ContianerBase implements it. Check the Archive Interface..  
+             */
          }
-         
          return archive;
       } 
       catch (Exception e) 

Modified: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGeneratorTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGeneratorTestCase.java	2010-04-23 13:58:39 UTC (rev 4324)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/DeploymentAnnotationArchiveGeneratorTestCase.java	2010-04-24 14:30:58 UTC (rev 4325)
@@ -16,10 +16,15 @@
  */
 package org.jboss.arquillian.impl;
 
+import junit.framework.Assert;
+
 import org.jboss.arquillian.api.Deployment;
 import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ArchivePath;
+import org.jboss.shrinkwrap.api.ArchivePaths;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.ResourceAdapterArchive;
 import org.junit.Test;
 
 
@@ -53,8 +58,24 @@
    @Test
    public void shouldThrowExceptionOnDeploymentOk() throws Exception
    {
-      new DeploymentAnnotationArchiveGenerator().generateApplicationArchive(DeploymentOK.class);
+      Archive<?> archive = new DeploymentAnnotationArchiveGenerator()
+                                 .generateApplicationArchive(DeploymentOK.class);
+      
+      ArchivePath testPath = ArchivePaths.create(DeploymentOK.class.getName().replaceAll("\\.", "/") + ".class");
+      
+      // verify that the test class was added to the archive
+      Assert.assertNotNull(archive.contains(testPath));
    }
+   
+   @Test
+   public void shouldNotIncludeTheTestClassIfClassesNotSupportedByTheArchive() throws Exception
+   {
+      Archive<?> archive = new DeploymentAnnotationArchiveGenerator()
+                              .generateApplicationArchive(DeploymentClassesNotSupported.class);
+      
+      // verify that nothing was added to the archive
+      Assert.assertTrue(archive.getContent().isEmpty());
+   }
 
    private static class DeploymentNotPresent {}
    
@@ -83,5 +104,14 @@
       public static JavaArchive test() {
          return ShrinkWrap.create("test.jar", JavaArchive.class);
       }
-   }   
+   }
+   
+   private static class DeploymentClassesNotSupported 
+   {
+      @SuppressWarnings("unused")
+      @Deployment
+      public static ResourceAdapterArchive test() {
+         return ShrinkWrap.create("test.jar", ResourceAdapterArchive.class);
+      }
+   }
 }



More information about the jboss-svn-commits mailing list