Author: dblevins
Date: Sat Sep 10 02:17:43 2011
New Revision: 1167436

URL: http://svn.apache.org/viewvc?rev=1167436&view=rev
Log:
Patch from Rangarajan Sreenivasan, OPENEJB-1652: Arquillian: Servlet Listener 
Tests
More or less a nice start on refactoring and cleaning the tests.
A very excellent patch, Ranga! Thank you!

Added:
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterCdiInjectionTest.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/TestSetup.java
Modified:
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbLocalInjectionTest.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbRemoteInjectionTest.java
    
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterPersistenceInjectionTest.java

Added: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterCdiInjectionTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterCdiInjectionTest.java?rev=1167436&view=auto
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterCdiInjectionTest.java
 (added)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterCdiInjectionTest.java
 Sat Sep 10 02:17:43 2011
@@ -0,0 +1,86 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.arquillian;
+
+import org.jboss.arquillian.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.descriptor.api.spec.servlet.web.WebAppDescriptor;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.inject.Inject;
+import javax.servlet.*;
+import java.io.IOException;
+
+@RunWith(Arquillian.class)
+public class ServletFilterCdiInjectionTest extends TestSetup {
+
+    public static final String TEST_NAME = 
ServletFilterCdiInjectionTest.class.getSimpleName();
+
+    @Test
+    public void pojoInjectionShouldSucceed() throws Exception {
+        final String expectedOutput = "testCdi=true";
+        validateTest(expectedOutput);
+    }
+
+    @Deployment(testable = false)
+    public static WebArchive getArchive() {
+        return new 
ServletFilterCdiInjectionTest().createDeployment(PojoServletFilter.class, 
Car.class);
+    }
+
+    protected void decorateDescriptor(WebAppDescriptor descriptor) {
+        descriptor.filter(PojoServletFilter.class, "/" + getTestContextName());
+    }
+
+    public static class PojoServletFilter implements Filter {
+
+        @Inject
+        private Car car;
+
+        public void init(FilterConfig config) {
+        }
+
+        public void destroy() {
+        }
+
+        @Override
+        public void doFilter(ServletRequest req, ServletResponse resp, 
FilterChain chain) throws ServletException, IOException {
+            run(req, resp, this);
+        }
+
+        public void testCdi() {
+            Assert.assertNotNull(car);
+            car.drive("test");
+        }
+    }
+
+    public static class Car {
+        private final String make = "Lexus", model = "IS 350";
+        private final int year = 2011;
+
+        public String drive(String name) {
+            return name + " is on the wheel of a " + year + " " + make + " " + 
model;
+        }
+    }
+
+
+}
+
+
+

Modified: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbLocalInjectionTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbLocalInjectionTest.java?rev=1167436&r1=1167435&r2=1167436&view=diff
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbLocalInjectionTest.java
 (original)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbLocalInjectionTest.java
 Sat Sep 10 02:17:43 2011
@@ -16,76 +16,44 @@
  */
 package org.apache.openejb.arquillian;
 
-import org.apache.commons.lang.StringUtils;
 import org.jboss.arquillian.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.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.jboss.shrinkwrap.descriptor.api.Descriptors;
-import org.jboss.shrinkwrap.descriptor.api.Node;
 import org.jboss.shrinkwrap.descriptor.api.spec.servlet.web.WebAppDescriptor;
-import org.jboss.shrinkwrap.descriptor.spi.NodeProvider;
+import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import javax.annotation.Resource;
 import javax.ejb.EJB;
 import javax.ejb.Local;
 import javax.ejb.LocalBean;
 import javax.ejb.Stateless;
-import javax.inject.Inject;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import java.io.ByteArrayOutputStream;
+import javax.servlet.*;
 import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import static junit.framework.Assert.assertNotNull;
-import static junit.framework.Assert.assertTrue;
 
 @RunWith(Arquillian.class)
-public class ServletFilterEjbLocalInjectionTest {
-
-    public static final String TEST_NAME = 
ServletFilterEjbLocalInjectionTest.class.getSimpleName();
+public class ServletFilterEjbLocalInjectionTest extends TestSetup {
 
     @Test
     public void localEjbInjectionShouldSucceed() throws Exception {
-        final String expectedOutput = "Local: OpenEJB is employed at TomEE 
Software Inc.";
+        final String expectedOutput = "testLocalEjb=true";
         validateTest(expectedOutput);
     }
 
     @Test
     public void localBeanEjbInjectionShouldSucceed() throws Exception {
-        final String expectedOutput = "OpenEJB shops at Apache Marketplace";
+        final String expectedOutput = "testLocalBean=true";
         validateTest(expectedOutput);
     }
 
     @Deployment(testable = false)
-    public static WebArchive createDeployment() {
-        WebAppDescriptor descriptor = 
Descriptors.create(WebAppDescriptor.class)
-                .version("3.0")
-                .filter(PojoServletFilter.class, "/" + TEST_NAME);
-
-        WebArchive archive = ShrinkWrap.create(WebArchive.class, TEST_NAME + 
".war")
-                .addClass(PojoServletFilter.class)
-                .addClass(CompanyLocal.class)
-                .addClass(Company.class)
-                .addClass(DefaultCompany.class)
-                .addClass(SuperMarket.class)
-                .setWebXML(new StringAsset(descriptor.exportAsString()))
-                .addAsWebResource(EmptyAsset.INSTANCE, 
ArchivePaths.create("beans.xml"));
-
-        System.err.println(descriptor.exportAsString());
+    public static WebArchive getArchive() {
+        return new 
ServletFilterEjbLocalInjectionTest().createDeployment(PojoServletFilter.class,
+                CompanyLocal.class, Company.class, DefaultCompany.class, 
SuperMarket.class);
+    }
 
-        return archive;
+    protected void decorateDescriptor(WebAppDescriptor descriptor) {
+        descriptor.filter(PojoServletFilter.class, "/" + getTestContextName());
     }
 
     public static class PojoServletFilter implements Filter {
@@ -96,10 +64,7 @@ public class ServletFilterEjbLocalInject
         @EJB
         private SuperMarket market;
 
-        private FilterConfig config;
-
         public void init(FilterConfig config) {
-            this.config = config;
         }
 
         public void destroy() {
@@ -107,17 +72,17 @@ public class ServletFilterEjbLocalInject
 
         @Override
         public void doFilter(ServletRequest req, ServletResponse resp, 
FilterChain chain) throws ServletException, IOException {
-            String name = req.getParameter("name");
-            if (StringUtils.isEmpty(name)) {
-                name = "OpenEJB";
-            }
-
-            if (localCompany != null) {
-                resp.getOutputStream().println("Local: " + 
localCompany.employ(name));
-            }
-            if (market != null) {
-                resp.getOutputStream().println(market.shop(name));
-            }
+            run(req, resp, this);
+        }
+
+        public void testLocalBean() {
+            Assert.assertNotNull(market);
+            market.shop("test");
+        }
+
+        public void testLocalEjb() {
+            Assert.assertNotNull(localCompany);
+            localCompany.employ("test");
         }
 
 
@@ -154,44 +119,6 @@ public class ServletFilterEjbLocalInject
 
     }
 
-    private static void addEnvEntry(WebAppDescriptor descriptor, String name, 
String type, String value) {
-        Node rootNode = ((NodeProvider) descriptor).getRootNode();
-        Node appNode = rootNode.get("/web-app").iterator().next();
-        appNode.create("/env-entry")
-                .create("env-entry-name").text(name)
-                .parent()
-                .create("env-entry-type").text(type)
-                .parent()
-                .create("env-entry-value").text(value)
-/*
-                .parent()
-                .create("injection-target")
-                
.create("injection-target-class").text("org.apache.openejb.arquillian.ServletPojoInjectionTest$PojoServletFilter")
-                .parent()
-                .create("injection-target-name").text(name)
-*/
-        ;
-
-    }
-
-    private void validateTest(String expectedOutput) throws IOException {
-        final InputStream is = new URL("http://localhost:9080/"; + TEST_NAME + 
"/" + TEST_NAME).openStream();
-        final ByteArrayOutputStream os = new ByteArrayOutputStream();
-
-        int bytesRead = -1;
-        byte[] buffer = new byte[8192];
-        while ((bytesRead = is.read(buffer)) > -1) {
-            os.write(buffer, 0, bytesRead);
-        }
-
-        is.close();
-        os.close();
-
-        String output = new String(os.toByteArray(), "UTF-8");
-        assertNotNull("Response shouldn't be null", output);
-        assertTrue("Output should contain: " + expectedOutput, 
output.contains(expectedOutput));
-    }
-
 }
 
 

Modified: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbRemoteInjectionTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbRemoteInjectionTest.java?rev=1167436&r1=1167435&r2=1167436&view=diff
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbRemoteInjectionTest.java
 (original)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterEjbRemoteInjectionTest.java
 Sat Sep 10 02:17:43 2011
@@ -16,16 +16,11 @@
  */
 package org.apache.openejb.arquillian;
 
-import org.apache.commons.lang.StringUtils;
 import org.jboss.arquillian.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.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.jboss.shrinkwrap.descriptor.api.Descriptors;
 import org.jboss.shrinkwrap.descriptor.api.spec.servlet.web.WebAppDescriptor;
+import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -33,46 +28,24 @@ import javax.ejb.EJB;
 import javax.ejb.Remote;
 import javax.ejb.Stateless;
 import javax.servlet.*;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import static junit.framework.Assert.assertNotNull;
-import static junit.framework.Assert.assertTrue;
 
 @RunWith(Arquillian.class)
-public class ServletFilterEjbRemoteInjectionTest {
-
-    public static final String TEST_NAME = 
ServletFilterEjbRemoteInjectionTest.class.getSimpleName();
+public class ServletFilterEjbRemoteInjectionTest extends TestSetup {
 
     @Test
     public void ejbInjectionShouldSucceed() throws Exception {
-        final String expectedOutput = "Remote: OpenEJB is employed at TomEE 
Software Inc.";
+        final String expectedOutput = "testEjb=true";
         validateTest(expectedOutput);
     }
 
     @Deployment(testable = false)
-    public static WebArchive createDeployment() {
-        WebAppDescriptor descriptor = 
Descriptors.create(WebAppDescriptor.class)
-                .version("3.0")
-                .filter(RemoteServletFilter.class, "/" + TEST_NAME);
-
-        WebArchive archive = ShrinkWrap.create(WebArchive.class, TEST_NAME + 
".war")
-                .addClass(RemoteServletFilter.class)
-                .addClass(CompanyRemote.class)
-                .addClass(DefaultCompany.class)
-                .setWebXML(new StringAsset(descriptor.exportAsString()))
-                .addAsWebResource(EmptyAsset.INSTANCE, 
ArchivePaths.create("beans.xml"));
-
-        System.err.println(descriptor.exportAsString());
-
-        return archive;
-    }
-
-    public static enum Code {
-        OK,
-        ERROR;
+    public static WebArchive getArchive() {
+        return new 
ServletFilterEjbRemoteInjectionTest().createDeployment(RemoteServletFilter.class,
 CompanyRemote.class, DefaultCompany.class);
+    }
+
+    protected void decorateDescriptor(WebAppDescriptor descriptor) {
+        descriptor.filter(RemoteServletFilter.class, "/" + 
getTestContextName());
     }
 
     public static class RemoteServletFilter implements Filter {
@@ -80,10 +53,7 @@ public class ServletFilterEjbRemoteInjec
         @EJB
         private CompanyRemote remoteCompany;
 
-        private FilterConfig config;
-
         public void init(FilterConfig config) {
-            this.config = config;
         }
 
         public void destroy() {
@@ -91,14 +61,12 @@ public class ServletFilterEjbRemoteInjec
 
         @Override
         public void doFilter(ServletRequest req, ServletResponse resp, 
FilterChain chain) throws ServletException, IOException {
-            String name = req.getParameter("name");
-            if (StringUtils.isEmpty(name)) {
-                name = "OpenEJB";
-            }
-
-            if (remoteCompany != null) {
-                resp.getOutputStream().println("Remote: " + 
remoteCompany.employ(name));
-            }
+            run(req, resp, this);
+        }
+
+        public void testEjb () {
+            Assert.assertNotNull(remoteCompany);
+            remoteCompany.employ("test");
         }
 
     }
@@ -119,24 +87,6 @@ public class ServletFilterEjbRemoteInjec
 
     }
 
-    private void validateTest(String expectedOutput) throws IOException {
-        final InputStream is = new URL("http://localhost:9080/"; + TEST_NAME + 
"/" + TEST_NAME).openStream();
-        final ByteArrayOutputStream os = new ByteArrayOutputStream();
-
-        int bytesRead = -1;
-        byte[] buffer = new byte[8192];
-        while ((bytesRead = is.read(buffer)) > -1) {
-            os.write(buffer, 0, bytesRead);
-        }
-
-        is.close();
-        os.close();
-
-        String output = new String(os.toByteArray(), "UTF-8");
-        assertNotNull("Response shouldn't be null", output);
-        assertTrue("Output should contain: " + expectedOutput, 
output.contains(expectedOutput));
-    }
-
 }
 
 

Modified: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterPersistenceInjectionTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterPersistenceInjectionTest.java?rev=1167436&r1=1167435&r2=1167436&view=diff
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterPersistenceInjectionTest.java
 (original)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/ServletFilterPersistenceInjectionTest.java
 Sat Sep 10 02:17:43 2011
@@ -16,16 +16,12 @@
  */
 package org.apache.openejb.arquillian;
 
-import org.apache.commons.lang.StringUtils;
 import org.jboss.arquillian.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.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.jboss.shrinkwrap.descriptor.api.Descriptors;
 import org.jboss.shrinkwrap.descriptor.api.spec.servlet.web.WebAppDescriptor;
+import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -33,53 +29,40 @@ import javax.annotation.Resource;
 import javax.persistence.*;
 import javax.servlet.*;
 import javax.transaction.UserTransaction;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import static junit.framework.Assert.assertNotNull;
-import static junit.framework.Assert.assertTrue;
 
 @RunWith(Arquillian.class)
-public class ServletFilterPersistenceInjectionTest {
-
-    public static final String TEST_NAME = 
ServletFilterPersistenceInjectionTest.class.getSimpleName();
+public class ServletFilterPersistenceInjectionTest extends TestSetup {
 
     @Test
     public void transactionInjectionShouldSucceed() throws Exception {
-        final String expectedOutput = "Transaction injection successful";
+        final String expectedOutput = "testUserTransaction=true";
         validateTest(expectedOutput);
     }
 
     @Test
     public void persistentContextInjectionShouldSucceed() throws Exception {
-        final String expectedOutput = "Transaction manager injection 
successful";
+        final String expectedOutput = "testEntityManager=true";
         validateTest(expectedOutput);
     }
 
     @Test
     public void persistenceUnitInjectionShouldSucceed() throws Exception {
-        final String expectedOutput = "Transaction manager factory injection 
successful";
+        final String expectedOutput = "testEntityManagerFactory=true";
         validateTest(expectedOutput);
     }
 
     @Deployment(testable = false)
-    public static WebArchive createDeployment() {
-        WebAppDescriptor descriptor = 
Descriptors.create(WebAppDescriptor.class)
-                .version("3.0")
-                .filter(PersistenceServletFilter.class, "/" + TEST_NAME);
-
-        WebArchive archive = ShrinkWrap.create(WebArchive.class, TEST_NAME + 
".war")
-                .addClass(PersistenceServletFilter.class)
-                .addClass(Address.class)
-                .addAsManifestResource("persistence.xml", 
ArchivePaths.create("persistence.xml"))
-                .setWebXML(new StringAsset(descriptor.exportAsString()))
-                .addAsWebResource(EmptyAsset.INSTANCE, 
ArchivePaths.create("beans.xml"));
+    public static WebArchive getArchive() {
+        return new 
ServletFilterPersistenceInjectionTest().createDeployment(PersistenceServletFilter.class,
 Address.class);
+    }
 
-        System.err.println(descriptor.exportAsString());
+    protected void decorateDescriptor(WebAppDescriptor descriptor) {
+        descriptor.filter(PersistenceServletFilter.class, "/" + 
getTestContextName());
+    }
 
-        return archive;
+    public void decorateArchive(WebArchive archive) {
+        archive.addAsManifestResource("persistence.xml", 
ArchivePaths.create("persistence.xml"));
     }
 
     public static class PersistenceServletFilter implements Filter {
@@ -93,10 +76,7 @@ public class ServletFilterPersistenceInj
         @PersistenceContext
         private EntityManager entityManager;
 
-        private FilterConfig config;
-
         public void init(FilterConfig config) {
-            this.config = config;
         }
 
         public void destroy() {
@@ -104,41 +84,28 @@ public class ServletFilterPersistenceInj
 
         @Override
         public void doFilter(ServletRequest req, ServletResponse resp, 
FilterChain chain) throws ServletException, IOException {
-            String name = req.getParameter("name");
-            if (StringUtils.isEmpty(name)) {
-                name = "OpenEJB";
-            }
-
-            if (transaction != null) {
-                try {
-                    transaction.begin();
-                    transaction.commit();
-                    resp.getOutputStream().println("Transaction injection 
successful");
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-            }
-            if (entityManager != null) {
-                Address a = new Address();
-                try {
-                    entityManager.contains(a);
-                    resp.getOutputStream().println("Transaction manager 
injection successful");
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-            }
-            if (entityMgrFactory != null) {
-                Address a = new Address();
-                try {
-                    EntityManager em = entityMgrFactory.createEntityManager();
-                    em.contains(a);
-                    resp.getOutputStream().println("Transaction manager 
factory injection successful");
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-            }
+            run(req, resp, this);
         }
 
+        public void testEntityManagerFactory() {
+            Assert.assertNotNull(entityMgrFactory);
+
+            Address a = new Address();
+            EntityManager em = entityMgrFactory.createEntityManager();
+            em.contains(a);
+        }
+
+        public void testEntityManager() {
+            Assert.assertNotNull(entityManager);
+            Address a = new Address();
+            entityManager.contains(a);
+        }
+
+        public void testUserTransaction() throws Exception{
+            Assert.assertNotNull(transaction);
+            transaction.begin();
+            transaction.commit();
+        }
 
     }
 
@@ -183,24 +150,6 @@ public class ServletFilterPersistenceInj
         }
     }
 
-    private void validateTest(String expectedOutput) throws IOException {
-        final InputStream is = new URL("http://localhost:9080/"; + TEST_NAME + 
"/" + TEST_NAME).openStream();
-        final ByteArrayOutputStream os = new ByteArrayOutputStream();
-
-        int bytesRead = -1;
-        byte[] buffer = new byte[8192];
-        while ((bytesRead = is.read(buffer)) > -1) {
-            os.write(buffer, 0, bytesRead);
-        }
-
-        is.close();
-        os.close();
-
-        String output = new String(os.toByteArray(), "UTF-8");
-        assertNotNull("Response shouldn't be null", output);
-        assertTrue("Output should contain: " + expectedOutput, 
output.contains(expectedOutput));
-    }
-
 }
 
 

Added: 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/TestSetup.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/TestSetup.java?rev=1167436&view=auto
==============================================================================
--- 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/TestSetup.java
 (added)
+++ 
openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/TestSetup.java
 Sat Sep 10 02:17:43 2011
@@ -0,0 +1,113 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.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.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.spec.servlet.web.WebAppDescriptor;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.lang.reflect.Method;
+import java.net.URL;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
+
+public abstract class TestSetup {
+
+    public WebArchive createDeployment(Class...archiveClasses) {
+        WebAppDescriptor descriptor = 
Descriptors.create(WebAppDescriptor.class)
+                .version("3.0");
+        decorateDescriptor(descriptor);
+
+        WebArchive archive = ShrinkWrap.create(WebArchive.class, 
getTestContextName() + ".war")
+                .setWebXML(new StringAsset(descriptor.exportAsString()))
+                .addAsWebResource(EmptyAsset.INSTANCE, 
ArchivePaths.create("beans.xml"));
+        if (archiveClasses != null) {
+            for (Class c: archiveClasses) {
+                archive.addClass(c);
+            }
+        }
+        decorateArchive(archive);
+
+        return archive;
+    }
+
+    protected String getTestContextName() {
+        return this.getClass().getSimpleName();
+    }
+
+    protected void decorateDescriptor(WebAppDescriptor descriptor) {
+
+    }
+
+    protected void decorateArchive(WebArchive archive) {
+
+    }
+
+    protected void validateTest(String expectedOutput) throws IOException {
+        final InputStream is = new URL("http://localhost:9080/"; + 
getTestContextName() + "/" + getTestContextName()).openStream();
+        final ByteArrayOutputStream os = new ByteArrayOutputStream();
+
+        int bytesRead = -1;
+        byte[] buffer = new byte[8192];
+        while ((bytesRead = is.read(buffer)) > -1) {
+            os.write(buffer, 0, bytesRead);
+        }
+
+        is.close();
+        os.close();
+
+        String output = new String(os.toByteArray(), "UTF-8");
+        assertNotNull("Response shouldn't be null", output);
+        assertTrue("Output should contain: " + expectedOutput, 
output.contains(expectedOutput));
+    }
+
+    public static void run(ServletRequest req, ServletResponse resp, Object 
obj) throws IOException {
+        final Class<?> clazz = obj.getClass();
+        final Method[] methods = clazz.getMethods();
+
+        resp.setContentType("text/plain");
+        final PrintWriter writer = resp.getWriter();
+
+        for (Method method : methods) {
+            if (method.getName().startsWith("test")) {
+
+                writer.print(method.getName());
+
+                writer.print("=");
+
+                try {
+                    method.invoke(obj);
+                    writer.println("true");
+                } catch (Throwable e) {
+                    writer.println("false");
+                }
+            }
+        }
+    }
+
+}


Reply via email to