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 {
+
+ }
+}