Author: rmannibucau
Date: Sun Jun 24 20:04:01 2012
New Revision: 1353321

URL: http://svn.apache.org/viewvc?rev=1353321&view=rev
Log:
adding a test for junit lifecycle methods and our embedded arquillian adapter

Added:
    
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/LifecycleTest.java

Added: 
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/LifecycleTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/LifecycleTest.java?rev=1353321&view=auto
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/LifecycleTest.java
 (added)
+++ 
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/LifecycleTest.java
 Sun Jun 24 20:04:01 2012
@@ -0,0 +1,96 @@
+package org.apache.openejb.arquillian.openejb;
+
+import java.net.URLClassLoader;
+import javax.inject.Inject;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.ArchivePaths;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.hamcrest.core.IsInstanceOf.instanceOf;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+
+@RunWith(Arquillian.class)
+public class LifecycleTest {
+    private static int beforeClassNb = 0;
+    private static int beforeNb = 0;
+    private static int afterClassNb = 0;
+    private static int afterNb = 0;
+
+    @Inject
+    private Foo foo;
+
+    @Deployment
+    public static JavaArchive jar() {
+        return ShrinkWrap.create(JavaArchive.class, 
LifecycleTest.class.getSimpleName() + ".jar")
+                .addClass(Foo.class)
+                .addAsManifestResource(EmptyAsset.INSTANCE, 
ArchivePaths.create("beans.xml"));
+    }
+
+    @BeforeClass
+    public static void beforeClass() {
+        if (beforeClassNb > 0) {
+            fail();
+        }
+        checkCl();
+        beforeClassNb++;
+    }
+
+    @Before
+    public void before() {
+        if (beforeNb > 0) {
+            fail();
+        }
+        checkCl();
+        assertNotNull(foo); // injections should be available
+        beforeNb++;
+    }
+
+    @After
+    public void after() {
+        if (afterNb > 0) {
+            fail();
+        }
+        checkCl();
+        assertNotNull(foo); // injections should be available
+        afterNb++;
+    }
+
+    @AfterClass
+    public static void afterClass() {
+        if (afterClassNb > 0) {
+            fail();
+        }
+        checkCl();
+        afterClassNb++;
+
+        assertEquals(1, beforeClassNb);
+        assertEquals(1, beforeNb);
+        assertEquals(1, afterNb);
+        assertEquals(1, afterClassNb);
+    }
+
+    @Test
+    public void justToRunOthers() {
+        // no-op
+    }
+
+    private static void checkCl() { // openejb classloader, not the app one
+        assertThat(Thread.currentThread().getContextClassLoader(), 
instanceOf(URLClassLoader.class));
+    }
+
+    public static class Foo {
+
+    }
+}


Reply via email to