package org.javaee7.jpa.pu.typesafe; import static org.jboss.shrinkwrap.api.ArchivePaths.create; import static org.jboss.shrinkwrap.api.ShrinkWrap.create; import static org.jboss.shrinkwrap.api.asset.EmptyAsset.INSTANCE; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import java.util.List; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Test; import org.junit.runner.RunWith; /** * @author Roberto Cortez */ @RunWith(Arquillian.class) public class PuTypesafeTest { @Inject private MySessionBean bean; @Inject @DefaultDatabase private EntityManager defaultEM; @PersistenceContext(name = "defaultPU") private EntityManager persistenceContextEM; @Deployment public static WebArchive createDeployment() { WebArchive war = create(WebArchive.class) .addPackage("org.javaee7.jpa.pu.typesafe") .addAsResource("META-INF/persistence.xml") .addAsResource("META-INF/create.sql") .addAsResource("META-INF/drop.sql") .addAsResource("META-INF/load.sql") .addAsWebInfResource(INSTANCE, create("beans.xml")); System.out.println(war.toString(true)); return war; } @Test public void testPuTypesafe() throws Exception { List<Movie> movies = bean.listMovies(); assertFalse(movies.isEmpty()); assertNotNull(defaultEM); List<Movie> defaultFindAll = defaultEM.createNamedQuery("Movie.findAll", Movie.class).getResultList(); assertFalse(defaultFindAll.isEmpty()); assertArrayEquals(movies.toArray(), defaultFindAll.toArray()); List<Movie> persistenceContextFindAll = persistenceContextEM.createNamedQuery("Movie.findAll", Movie.class).getResultList(); assertArrayEquals(movies.toArray(), persistenceContextFindAll.toArray()); } }