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