You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jg...@apache.org on 2011/10/27 22:16:24 UTC

svn commit: r1189987 - in /openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example: ./ src/test/java/org/superbiz/moviefun/ src/test/resources/

Author: jgallimore
Date: Thu Oct 27 20:16:24 2011
New Revision: 1189987

URL: http://svn.apache.org/viewvc?rev=1189987&view=rev
Log:
A couple of other testing techniques for comparison :)

Added:
    openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesEJBIT.java
    openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesHtmlUnitTest.java
    openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java
Modified:
    openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/pom.xml
    openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/resources/arquillian.xml

Modified: openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/pom.xml?rev=1189987&r1=1189986&r2=1189987&view=diff
==============================================================================
--- openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/pom.xml (original)
+++ openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/pom.xml Thu Oct 27 20:16:24 2011
@@ -155,7 +155,7 @@
     <dependency>
       <groupId>org.jboss.arquillian.extension</groupId>
       <artifactId>arquillian-drone-selenium</artifactId>
-      <version>${version.arquillian}</version>
+      <version>1.0.0.CR2</version>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -180,16 +180,30 @@
     <dependency>
     	<groupId>org.jboss.arquillian.extension</groupId>
     	<artifactId>arquillian-drone-impl</artifactId>
-    	<version>${version.arquillian}</version>
+    	<version>1.0.0.CR2</version>
     	<type>jar</type>
-    	<scope>compile</scope>
+    	<scope>test</scope>
     </dependency>
     <dependency>
     	<groupId>org.jboss.arquillian.extension</groupId>
     	<artifactId>arquillian-drone-selenium-server</artifactId>
-    	<version>${version.arquillian}</version>
+    	<version>1.0.0.CR2</version>
+    	<type>jar</type>
+    	<scope>test</scope>
+    </dependency>
+    <dependency>
+    	<groupId>org.apache.openejb</groupId>
+    	<artifactId>tomee-embedded</artifactId>
+    	<version>1.0.0-beta-2-SNAPSHOT</version>
     	<type>jar</type>
-    	<scope>compile</scope>
+    	<scope>test</scope>
+    </dependency>
+    <dependency>
+    	<groupId>net.sourceforge.htmlunit</groupId>
+    	<artifactId>htmlunit</artifactId>
+    	<version>2.9</version>
+    	<type>jar</type>
+    	<scope>test</scope>
     </dependency>
   </dependencies>
   <!-- This section allows you to configure where to publish libraries for 

Added: openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesEJBIT.java
URL: http://svn.apache.org/viewvc/openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesEJBIT.java?rev=1189987&view=auto
==============================================================================
--- openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesEJBIT.java (added)
+++ openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesEJBIT.java Thu Oct 27 20:16:24 2011
@@ -0,0 +1,55 @@
+package org.superbiz.moviefun;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.List;
+
+import javax.ejb.EJB;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.impl.base.asset.ClassLoaderAsset;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class MoviesEJBIT {
+
+	@Deployment
+	public static JavaArchive createDeployment() {
+		// explicit archive name required until ARQ-77 is resolved
+		return ShrinkWrap.create(JavaArchive.class, "test.jar").addClasses(Movie.class, MoviesImpl.class, Movies.class, MoviesRemote.class, MoviesEJBIT.class)
+				.addAsResource(new ClassLoaderAsset("META-INF/ejb-jar.xml") , "META-INF/ejb-jar.xml")
+        		.addAsResource(new ClassLoaderAsset("META-INF/persistence.xml") , "META-INF/persistence.xml");
+	}
+
+	@EJB
+	Movies movies;
+
+	@Test
+	public void shouldBeAbleToAddAMovie() throws Exception {
+		assertNotNull("Verify that the ejb was injected", movies);
+		Movie movie = new Movie();
+		movie.setDirector("Michael Bay");
+		movie.setGenre("Action");
+		movie.setRating(9);
+		movie.setTitle("Bad Boys");
+		movie.setYear(1995);
+		movies.addMovie(movie);
+		
+		assertEquals(1, movies.count());
+		List<Movie> moviesFound = movies.findByTitle("Bad Boys");
+		
+		assertEquals(1, moviesFound.size());
+		assertEquals("Michael Bay", moviesFound.get(0).getDirector());
+		assertEquals("Action", moviesFound.get(0).getGenre());
+		assertEquals(9, moviesFound.get(0).getRating());
+		assertEquals("Bad Boys", moviesFound.get(0).getTitle());
+		assertEquals(1995, moviesFound.get(0).getYear());
+	}
+
+}

Added: openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesHtmlUnitTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesHtmlUnitTest.java?rev=1189987&view=auto
==============================================================================
--- openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesHtmlUnitTest.java (added)
+++ openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesHtmlUnitTest.java Thu Oct 27 20:16:24 2011
@@ -0,0 +1,83 @@
+package org.superbiz.moviefun;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Properties;
+
+import javax.ejb.embeddable.EJBContainer;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.tomee.embedded.EmbeddedTomEEContainer;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.gargoylesoftware.htmlunit.WebClient;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+
+public class MoviesHtmlUnitTest {
+	
+	private static EJBContainer container;
+    private static File webApp;
+
+    @BeforeClass public static void start() throws IOException {
+        webApp = createWebApp();
+        Properties p = new Properties();
+        p.setProperty(EJBContainer.APP_NAME, "moviefun");
+        p.setProperty(EJBContainer.PROVIDER, "tomee-embedded"); // need web feature
+        p.setProperty(EJBContainer.MODULES, webApp.getAbsolutePath());
+        p.setProperty(EmbeddedTomEEContainer.TOMEE_EJBCONTAINER_HTTP_PORT, "9999");
+        container = EJBContainer.createEJBContainer(p);
+    }
+
+    @AfterClass public static void stop() {
+        if (container != null) {
+            container.close();
+        }
+        if (webApp != null) {
+            try {
+                FileUtils.forceDelete(webApp);
+            } catch (IOException e) {
+                FileUtils.deleteQuietly(webApp);
+            }
+        }
+    }
+    
+    private static File createWebApp() throws IOException {
+        File file = new File(System.getProperty("java.io.tmpdir") + "/tomee-" + Math.random());
+        if (!file.mkdirs() && !file.exists()) {
+            throw new RuntimeException("can't create " + file.getAbsolutePath());
+        }
+
+        FileUtils.copyDirectory(new File("target/classes"), new File(file, "WEB-INF/classes"));
+        FileUtils.copyDirectory(new File("src/main/webapp"), file);
+
+        return file;
+    }
+
+	@Test
+    public void testShouldMakeSureWebappIsWorking() throws Exception {
+        WebClient webClient = new WebClient();
+        HtmlPage page = webClient.getPage("http://localhost:9999/moviefun/setup.jsp");
+
+        assertMoviesPresent(page);
+
+        page = webClient.getPage("http://localhost:9999/moviefun/faces/movie/List.xhtml");
+
+        assertMoviesPresent(page);
+        webClient.closeAllWindows();
+    }
+
+    private void assertMoviesPresent(HtmlPage page) {
+        String pageAsText = page.asText();
+        assertTrue(pageAsText.contains("Wedding Crashers"));
+        assertTrue(pageAsText.contains("Starsky & Hutch"));
+        assertTrue(pageAsText.contains("Shanghai Knights"));
+        assertTrue(pageAsText.contains("I-Spy"));
+        assertTrue(pageAsText.contains("The Royal Tenenbaums"));
+        assertTrue(pageAsText.contains("Zoolander"));
+        assertTrue(pageAsText.contains("Shanghai Noon"));
+    }
+}

Added: openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java?rev=1189987&view=auto
==============================================================================
--- openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java (added)
+++ openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java Thu Oct 27 20:16:24 2011
@@ -0,0 +1,45 @@
+package org.superbiz.moviefun;
+
+import java.util.List;
+
+import javax.ejb.embeddable.EJBContainer;
+import static org.junit.Assert.*;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class MoviesTest {
+
+	private MoviesRemote movies;
+
+	@Before
+	public void setUp() throws Exception {
+        EJBContainer ejbContainer = EJBContainer.createEJBContainer();
+        Object object = ejbContainer.getContext().lookup("java:global/arquillian-tomee-moviefun-example/Movies!org.superbiz.moviefun.MoviesRemote");
+
+        assertTrue(object instanceof MoviesRemote);
+        movies = (MoviesRemote) object;
+    }
+	
+	@Test
+	public void testShouldAddAMovie() throws Exception {
+		Movie movie = new Movie();
+		movie.setDirector("Michael Bay");
+		movie.setGenre("Action");
+		movie.setRating(9);
+		movie.setTitle("Bad Boys");
+		movie.setYear(1995);
+		movies.addMovie(movie);
+		
+		assertEquals(1, movies.count());
+		List<Movie> moviesFound = movies.findByTitle("Bad Boys");
+		
+		assertEquals(1, moviesFound.size());
+		assertEquals("Michael Bay", moviesFound.get(0).getDirector());
+		assertEquals("Action", moviesFound.get(0).getGenre());
+		assertEquals(9, moviesFound.get(0).getRating());
+		assertEquals("Bad Boys", moviesFound.get(0).getTitle());
+		assertEquals(1995, moviesFound.get(0).getYear());
+	}
+	
+}

Modified: openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/resources/arquillian.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/resources/arquillian.xml?rev=1189987&r1=1189986&r2=1189987&view=diff
==============================================================================
--- openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/resources/arquillian.xml (original)
+++ openejb/trunk/arquillian-tomee/arquillian-tomee-moviefun-example/src/test/resources/arquillian.xml Thu Oct 27 20:16:24 2011
@@ -23,7 +23,7 @@
        <container qualifier="tomee" default="true">
            <configuration>
            	   <property name="dir">/tmp/arquillian-apache-tomee</property>
-               <property name="httpPort">9080</property>
+               <property name="httpPort">8080</property>
                <property name="stopPort">9005</property>
            </configuration>
        </container>