You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2011/09/05 08:17:37 UTC

svn commit: r1165183 - in /openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests: pom.xml src/test/java/org/apache/tomee/tests/SimpleTest.java src/test/resources/arquillian.xml

Author: dblevins
Date: Mon Sep  5 06:17:36 2011
New Revision: 1165183

URL: http://svn.apache.org/viewvc?rev=1165183&view=rev
Log:
A basic working test

Added:
    openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/java/org/apache/tomee/tests/SimpleTest.java
      - copied, changed from r1159756, openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/TomEEContainerTest.java
    openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/resources/arquillian.xml
Modified:
    openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/pom.xml

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/pom.xml?rev=1165183&r1=1165182&r2=1165183&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/pom.xml Mon Sep  5 06:17:36 2011
@@ -31,13 +31,42 @@
   <packaging>jar</packaging>
   <name>OpenEJB :: Assembly :: TomEE iTests</name>
   <description>This module contains tests for TomEE</description>
+
+  <properties>
+    <version.arquillian>1.0.0.Alpha5</version.arquillian>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.openejb</groupId>
+      <artifactId>javaee-api</artifactId>
+      <version>6.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
       <artifactId>arquillian-tomee-embedded</artifactId>
       <version>1.0-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
+    <dependency>
+      <groupId>net.sourceforge.htmlunit</groupId>
+      <artifactId>htmlunit</artifactId>
+      <version>2.8</version>
+      <type>jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.arquillian</groupId>
+      <artifactId>arquillian-junit</artifactId>
+      <version>${version.arquillian}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.8.1</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>
 

Copied: openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/java/org/apache/tomee/tests/SimpleTest.java (from r1159756, openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/TomEEContainerTest.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/java/org/apache/tomee/tests/SimpleTest.java?p2=openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/java/org/apache/tomee/tests/SimpleTest.java&p1=openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/TomEEContainerTest.java&r1=1159756&r2=1165183&rev=1165183&view=diff
==============================================================================
--- openejb/trunk/sandbox/arquillian-tomee/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/TomEEContainerTest.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/java/org/apache/tomee/tests/SimpleTest.java Mon Sep  5 06:17:36 2011
@@ -14,40 +14,59 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.openejb.arquillian;
-
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.net.URL;
+package org.apache.tomee.tests;
 
 import junit.framework.Assert;
-
 import org.jboss.arquillian.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
-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.Test;
 import org.junit.runner.RunWith;
 
+import javax.ejb.EJB;
+import javax.ejb.Singleton;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.net.URL;
+
 @RunWith(Arquillian.class)
-public class TomEEContainerTest {
+public class SimpleTest {
 
     @Deployment(testable = false)
     public static WebArchive createDeployment() {
-        return ShrinkWrap.create(WebArchive.class, "test.war").addClass(TestServlet.class).addClass(TestEjb.class)
-                .setWebXML(new StringAsset(Descriptors.create(WebAppDescriptor.class).version("3.0").servlet(TestServlet.class, "/Test").exportAsString()));
+        return ShrinkWrap.create(WebArchive.class, "test.war").addClasses(
+                OrangeServlet.class,
+                BrownBean.class
+        );
     }
 
     @Test
     public void testShouldBeAbleToAccessServletAndEjb() throws Exception {
-        InputStream is = new URL("http://localhost:9080/test/Test").openStream();
-        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        final String output = get("http://localhost:9080/test/Test?hello");
+        Assert.assertTrue(output.contains("hello"));
+    }
+
+    private String get(String url) throws IOException {
+        return get(new URL(url));
+    }
+
+    private String get(URL url) throws IOException {
+        final InputStream is = url.openStream();
+        final ByteArrayOutputStream os = new ByteArrayOutputStream();
 
         int bytesRead = -1;
-        byte[] buffer = new byte[8192];
+
+        final byte[] buffer = new byte[8192];
+
         while ((bytesRead = is.read(buffer)) > -1) {
             os.write(buffer, 0, bytesRead);
         }
@@ -55,8 +74,45 @@ public class TomEEContainerTest {
         is.close();
         os.close();
 
-        String output = new String(os.toByteArray(), "UTF-8");
-        Assert.assertTrue(output.contains("Hello, OpenEJB"));
+        return new String(os.toByteArray(), "UTF-8");
+    }
+
+    @WebServlet(urlPatterns = "/*")
+    public static class OrangeServlet extends HttpServlet {
+
+        private BrownBean brownBean;
+
+        public OrangeServlet() {
+        }
+
+        @EJB
+        public void setBrownBean(BrownBean brownBean) {
+            this.brownBean = brownBean;
+        }
+
+        @Override
+        public void init(ServletConfig config) throws ServletException {
+            assert brownBean != null;
+        }
+
+        @Override
+        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+            brownBean.doService(request, response);
+        }
+
+        @Override
+        public void destroy() {
+        }
     }
 
+    @Singleton
+    public static class BrownBean {
+
+        public void doService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+            response.setContentType("text/plain");
+            PrintWriter writer = response.getWriter();
+            writer.print(request.getQueryString());
+        }
+
+    }
 }

Added: openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/resources/arquillian.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/resources/arquillian.xml?rev=1165183&view=auto
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/resources/arquillian.xml (added)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-itests/src/test/resources/arquillian.xml Mon Sep  5 06:17:36 2011
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+
+    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.
+-->
+<arquillian
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
+
+       <container qualifier="tomee" default="true">
+           <configuration>
+               <property name="httpPort">9080</property>
+               <property name="stopPort">9005</property>
+           </configuration>
+       </container>
+</arquillian>