package com.jboss.dvd.seam.test; import java.io.File; import javax.persistence.EntityManager; import javax.validation.ConstraintViolationException; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.container.test.api.OverProtocol; import org.jboss.arquillian.junit.Arquillian; import org.jboss.seam.mock.JUnitSeamTest; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.importer.ZipImporter; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import com.jboss.dvd.seam.Accept; import com.jboss.dvd.seam.Product; @RunWith(Arquillian.class) public class ProductUnitTest extends JUnitSeamTest { @Deployment(name = "ProductUnitTest") @OverProtocol("Servlet 3.0") public static Archive<?> createDeployment() { WebArchive web = ShrinkWrap.create(ZipImporter.class, "seam-dvdstore.war").importFrom(new File("target/seam-dvdstore.war")).as(WebArchive.class); web.addPackages(true, Accept.class.getPackage()); return web; } @Ignore //AS7-4576 @Test public void testRequiredAttributes() throws Exception { new ComponentTest() { @Override protected void testComponents() throws Exception { Product p = new Product(); EntityManager em = (EntityManager) getValue("#{entityManager}"); try { em.persist(p); Assert.fail("empty product persisted"); } catch (ConstraintViolationException e) { // good } } }.run(); } @Test public void testCreateDelete() throws Exception { final Product p = new Product(); p.setTitle("test"); new FacesRequest() { protected void invokeApplication() { EntityManager em = (EntityManager) getValue("#{entityManager}"); em.persist(p); } }.run(); new FacesRequest() { protected void invokeApplication() { EntityManager em = (EntityManager) getValue("#{entityManager}"); Product found = em.find(Product.class ,p.getProductId()); Assert.assertNotNull("find by id", found); Assert.assertEquals("id", p.getProductId(), found.getProductId()); Assert.assertEquals("title", "test", found.getTitle()); em.remove(found); } }.run(); new FacesRequest() { protected void invokeApplication() { EntityManager em = (EntityManager) getValue("#{entityManager}"); Product found = em.find(Product.class ,p.getProductId()); Assert.assertNull("deleted product", found); } }.run(); } }