You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2014/01/21 21:33:48 UTC

svn commit: r1560174 - in /tomee/tomee/trunk/examples/moviefun-rest: ./ src/main/java/org/superbiz/moviefun/ src/main/java/org/superbiz/moviefun/rest/ src/main/tomee/ src/test/java/org/superbiz/moviefun/

Author: tveronezi
Date: Tue Jan 21 20:33:48 2014
New Revision: 1560174

URL: http://svn.apache.org/r1560174
Log:
Reproducing some of the moviefun tests in moviefun-rest

Added:
    tomee/tomee/trunk/examples/moviefun-rest/src/main/tomee/
    tomee/tomee/trunk/examples/moviefun-rest/src/main/tomee/tomee.xml
    tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
    tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEmbeddedEJBTest.java
    tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesTest.java
Removed:
    tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/Basedir.java
    tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesRestTest.java
Modified:
    tomee/tomee/trunk/examples/moviefun-rest/pom.xml
    tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/MoviesBean.java
    tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/LoadRest.java
    tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/MoviesRest.java

Modified: tomee/tomee/trunk/examples/moviefun-rest/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/moviefun-rest/pom.xml?rev=1560174&r1=1560173&r2=1560174&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/moviefun-rest/pom.xml (original)
+++ tomee/tomee/trunk/examples/moviefun-rest/pom.xml Tue Jan 21 20:33:48 2014
@@ -23,6 +23,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <tomee.version>1.6.1-SNAPSHOT</tomee.version>
+    <version.shrinkwrap.resolver>2.0.0-alpha-5</version.shrinkwrap.resolver>
   </properties>
   <repositories>
     <repository>
@@ -31,13 +32,6 @@
       <url>http://repository.apache.org/snapshots</url>
     </repository>
   </repositories>
-  <pluginRepositories>
-    <pluginRepository>
-      <id>apache-m2-snapshot-plugin</id>
-      <name>Apache Snapshot Repository</name>
-      <url>http://repository.apache.org/snapshots</url>
-    </pluginRepository>
-  </pluginRepositories>
   <build>
     <finalName>moviefun</finalName>
     <defaultGoal>install</defaultGoal>
@@ -69,6 +63,38 @@
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>2.1</version>
+        <executions>
+          <execution>
+            <id>copy-test-libs</id>
+            <phase>process-test-resources</phase>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>javax.servlet</groupId>
+                  <artifactId>jstl</artifactId>
+                  <version>1.2</version>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>taglibs</groupId>
+                  <artifactId>standard</artifactId>
+                  <version>1.1.2</version>
+                </artifactItem>
+              </artifactItems>
+              <outputDirectory>
+                ${project.build.directory}/test-libs
+              </outputDirectory>
+              <stripVersion>true</stripVersion>
+            </configuration>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <version>2.13</version>
         <configuration>
@@ -85,16 +111,48 @@
         </configuration>
       </plugin>
       <plugin>
+        <artifactId>maven-eclipse-plugin</artifactId>
+        <version>2.8</version>
+        <configuration>
+          <configuration>
+            <wtpapplicationxml>true</wtpapplicationxml>
+            <wtpversion>2.0</wtpversion>
+          </configuration>
+        </configuration>
+      </plugin>
+      <plugin>
         <groupId>org.apache.openejb.maven</groupId>
         <artifactId>tomee-maven-plugin</artifactId>
         <version>1.6.1-SNAPSHOT</version>
         <configuration>
           <tomeeClassifier>plus</tomeeClassifier>
           <args>-Xmx512m -XX:PermSize=256m</args>
+          <config>${project.basedir}/src/main/tomee/</config>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <dependencyManagement>
+    <dependencies>
+      <!-- Override dependency resolver with test version. This must go *BEFORE*
+        the Arquillian BOM. -->
+      <dependency>
+        <groupId>org.jboss.shrinkwrap.resolver</groupId>
+        <artifactId>shrinkwrap-resolver-bom</artifactId>
+        <version>${version.shrinkwrap.resolver}</version>
+        <scope>import</scope>
+        <type>pom</type>
+      </dependency>
+      <!-- Now pull in our server-based unit testing framework -->
+      <dependency>
+        <groupId>org.jboss.arquillian</groupId>
+        <artifactId>arquillian-bom</artifactId>
+        <version>1.0.3.Final</version>
+        <scope>import</scope>
+        <type>pom</type>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
   <dependencies>
     <dependency>
       <groupId>org.apache.openejb</groupId>
@@ -109,21 +167,43 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.openejb</groupId>
-      <artifactId>tomee-embedded</artifactId>
-      <version>${tomee.version}</version>
-      <scope>test</scope>
+      <groupId>javax.servlet</groupId>
+      <artifactId>jstl</artifactId>
+      <version>1.2</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>
-      <artifactId>openejb-cxf-rs</artifactId>
+      <artifactId>openejb-core</artifactId>
       <version>4.6.1-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>taglibs</groupId>
+      <artifactId>standard</artifactId>
+      <version>1.1.2</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
       <groupId>org.apache.openejb</groupId>
-      <artifactId>tomee-jaxrs</artifactId>
-      <version>${tomee.version}</version>
+      <artifactId>tomee-embedded</artifactId>
+      <version>1.6.1-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.4</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.arquillian.junit</groupId>
+      <artifactId>arquillian-junit-container</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.shrinkwrap.resolver</groupId>
+      <artifactId>shrinkwrap-resolver-depchain</artifactId>
+      <type>pom</type>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -135,42 +215,42 @@
     <dependency>
       <groupId>org.apache.openejb.staticweb</groupId>
       <artifactId>static-tomee-backbone</artifactId>
-      <version>${tomee.version}</version>
+      <version>1.6.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb.staticweb</groupId>
       <artifactId>static-tomee-bootstrap</artifactId>
-      <version>${tomee.version}</version>
+      <version>1.6.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb.staticweb</groupId>
       <artifactId>static-tomee-jquery</artifactId>
-      <version>${tomee.version}</version>
+      <version>1.6.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb.staticweb</groupId>
       <artifactId>static-tomee-handlebars</artifactId>
-      <version>${tomee.version}</version>
+      <version>1.6.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb.staticweb</groupId>
       <artifactId>static-tomee-json2</artifactId>
-      <version>${tomee.version}</version>
+      <version>1.6.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb.staticweb</groupId>
       <artifactId>static-tomee-lessjs</artifactId>
-      <version>${tomee.version}</version>
+      <version>1.6.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb.staticweb</groupId>
       <artifactId>static-tomee-requirejs</artifactId>
-      <version>${tomee.version}</version>
+      <version>1.6.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb.staticweb</groupId>
       <artifactId>static-tomee-underscorejs</artifactId>
-      <version>${tomee.version}</version>
+      <version>1.6.1-SNAPSHOT</version>
     </dependency>
   </dependencies>
   <!-- This section allows you to configure where to publish libraries for
@@ -186,4 +266,31 @@
       <url>file://${basedir}/target/snapshot-repo/</url>
     </snapshotRepository>
   </distributionManagement>
-</project>
+  <profiles>
+    <profile>
+      <id>arquillian-tomee-embedded</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <dependencies>
+        <dependency>
+          <groupId>org.apache.openejb</groupId>
+          <artifactId>arquillian-tomee-embedded</artifactId>
+          <version>1.6.1-SNAPSHOT</version>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>arquillian-tomee-remote</id>
+      <dependencies>
+        <dependency>
+          <groupId>org.apache.openejb</groupId>
+          <artifactId>arquillian-tomee-remote</artifactId>
+          <version>1.6.1-SNAPSHOT</version>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+    </profile>
+  </profiles>
+</project>
\ No newline at end of file

Modified: tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/MoviesBean.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/MoviesBean.java?rev=1560174&r1=1560173&r2=1560174&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/MoviesBean.java (original)
+++ tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/MoviesBean.java Tue Jan 21 20:33:48 2014
@@ -20,7 +20,11 @@ import javax.ejb.Stateless;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
 import javax.persistence.TypedQuery;
-import javax.persistence.criteria.*;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Path;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
 import javax.persistence.metamodel.EntityType;
 import java.util.List;
 

Modified: tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/LoadRest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/LoadRest.java?rev=1560174&r1=1560173&r2=1560174&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/LoadRest.java (original)
+++ tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/LoadRest.java Tue Jan 21 20:33:48 2014
@@ -20,8 +20,6 @@ import org.superbiz.moviefun.Movie;
 import org.superbiz.moviefun.MoviesBean;
 
 import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 

Modified: tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/MoviesRest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/MoviesRest.java?rev=1560174&r1=1560173&r2=1560174&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/MoviesRest.java (original)
+++ tomee/tomee/trunk/examples/moviefun-rest/src/main/java/org/superbiz/moviefun/rest/MoviesRest.java Tue Jan 21 20:33:48 2014
@@ -20,7 +20,15 @@ import org.superbiz.moviefun.Movie;
 import org.superbiz.moviefun.MoviesBean;
 
 import javax.ejb.EJB;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import java.util.List;
 
 @Path("movies")

Added: tomee/tomee/trunk/examples/moviefun-rest/src/main/tomee/tomee.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/moviefun-rest/src/main/tomee/tomee.xml?rev=1560174&view=auto
==============================================================================
--- tomee/tomee/trunk/examples/moviefun-rest/src/main/tomee/tomee.xml (added)
+++ tomee/tomee/trunk/examples/moviefun-rest/src/main/tomee/tomee.xml Tue Jan 21 20:33:48 2014
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<tomee>
+  <Resource id="HSQLDB Database" type="DataSource">
+    JdbcDriver org.hsqldb.jdbcDriver
+    JdbcUrl jdbc:hsqldb:file:target/db/moviefun
+    UserName sa
+    Password
+  </Resource>
+</tomee>
\ No newline at end of file

Added: tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java?rev=1560174&view=auto
==============================================================================
--- tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java (added)
+++ tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java Tue Jan 21 20:33:48 2014
@@ -0,0 +1,77 @@
+/**
+ * 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.superbiz.moviefun;
+
+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.asset.ClassLoaderAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ejb.EJB;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+@RunWith(Arquillian.class)
+public class MoviesEJBTest {
+
+    @Deployment
+    public static WebArchive createDeployment() {
+        return ShrinkWrap.create(WebArchive.class, "test.war")
+                .addClasses(Movie.class, MoviesBean.class, MoviesEJBTest.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
+    private MoviesBean movies;
+
+    @Before
+    @After
+    public void clean() {
+        movies.clean();
+    }
+
+    @Test
+    public void shouldBeAbleToAddAMovie() throws Exception {
+        assertNotNull("Verify that the ejb was injected", movies);
+
+        final 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("title", "a"));
+        final List<Movie> moviesFound = movies.getMovies(0, 100, "title", "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: tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEmbeddedEJBTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEmbeddedEJBTest.java?rev=1560174&view=auto
==============================================================================
--- tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEmbeddedEJBTest.java (added)
+++ tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEmbeddedEJBTest.java Tue Jan 21 20:33:48 2014
@@ -0,0 +1,75 @@
+/**
+ * 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.superbiz.moviefun;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import javax.ejb.embeddable.EJBContainer;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class MoviesEmbeddedEJBTest {
+
+    private static EJBContainer ejbContainer;
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+        ejbContainer = EJBContainer.createEJBContainer();
+    }
+
+    @AfterClass
+    public static void tearDown() {
+        if (ejbContainer != null) {
+            ejbContainer.close();
+        }
+    }
+
+    @Before
+    @After
+    public void clean() throws Exception {
+        MoviesBean movies = (MoviesBean) ejbContainer.getContext().lookup("java:global/moviefun-rest/MoviesBean!org.superbiz.moviefun.MoviesBean");
+        movies.clean();
+    }
+
+    @Test
+    public void testShouldAddAMovie() throws Exception {
+        final MoviesBean movies = (MoviesBean) ejbContainer.getContext().lookup("java:global/moviefun-rest/MoviesBean!org.superbiz.moviefun.MoviesBean");
+
+        final 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("title", "Bad Boys"));
+        final List<Movie> moviesFound = movies.getMovies(0, 100, "title", "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());
+    }
+
+}
\ No newline at end of file

Added: tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesTest.java?rev=1560174&view=auto
==============================================================================
--- tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesTest.java (added)
+++ tomee/tomee/trunk/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesTest.java Tue Jan 21 20:33:48 2014
@@ -0,0 +1,75 @@
+/**
+ * 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.superbiz.moviefun;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import javax.ejb.embeddable.EJBContainer;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class MoviesTest {
+
+    private static EJBContainer ejbContainer;
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+        ejbContainer = EJBContainer.createEJBContainer();
+    }
+
+    @AfterClass
+    public static void tearDown() {
+        if (ejbContainer != null) {
+            ejbContainer.close();
+        }
+    }
+
+    @Before
+    @After
+    public void clean() throws Exception {
+        MoviesBean movies = (MoviesBean) ejbContainer.getContext().lookup("java:global/moviefun-rest/MoviesBean!org.superbiz.moviefun.MoviesBean");
+        movies.clean();
+    }
+
+    @Test
+    public void testShouldAddAMovie() throws Exception {
+        MoviesBean movies = (MoviesBean) ejbContainer.getContext().lookup("java:global/moviefun-rest/MoviesBean!org.superbiz.moviefun.MoviesBean");
+
+        final 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("title", "a"));
+        final List<Movie> moviesFound = movies.getMovies(0, 100, "title", "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());
+    }
+
+}
\ No newline at end of file