package eu.ggnet.dwoss.spec.emo; import javax.persistence.*; import org.junit.*; import eu.ggnet.dwoss.rules.ProductGroup; import eu.ggnet.dwoss.rules.TradeName; import eu.ggnet.dwoss.spec.assist.SpecPu; import eu.ggnet.dwoss.spec.entity.ProductModel; import static org.junit.Assert.*; /** * * @author oliver.guenther */ public class ProductModelEmoIT { EntityManagerFactory emf; EntityManager em; @Before public void setUp() { emf = Persistence.createEntityManagerFactory(SpecPu.NAME, SpecPu.JPA_IN_MEMORY); em = emf.createEntityManager(); } @After public void tearDown() { em.close(); emf.close(); } @Test public void testFullRequestBrandGroupName() { TradeName sb = TradeName.HP; ProductGroup sg = ProductGroup.PROJECTOR; String sn = "SERIES"; String fn = "FAMILY"; String mn = "MODEL"; em.getTransaction().begin(); ProductModelEmo modelEmo = new ProductModelEmo(em); ProductModel model = modelEmo.request(sb, sg, sn, fn, mn); assertNotNull(model); assertEquals(mn, model.getName()); assertEquals(fn, model.getFamily().getName()); assertEquals(sb, model.getFamily().getSeries().getBrand()); assertEquals(sg, model.getFamily().getSeries().getGroup()); assertEquals(sn, model.getFamily().getSeries().getName()); long fid = model.getFamily().getId(); long mid = model.getId(); long sid = model.getFamily().getSeries().getId(); em.getTransaction().commit(); em.getTransaction().begin(); model = modelEmo.request(sb, sg, sn, fn, mn); assertNotNull(model); assertEquals(mid, model.getId()); assertEquals(fid, model.getFamily().getId()); assertEquals(sid, model.getFamily().getSeries().getId()); em.getTransaction().commit(); } @Test public void testHalfRequestBrandGroupName() { TradeName sb = TradeName.HP; ProductGroup sg = ProductGroup.PROJECTOR; String sn = "SERIES"; String fn = "FAMILY"; String mn = "MODEL"; em.getTransaction().begin(); new ProductFamilyEmo(em).request(sb, sg, sn, fn); em.getTransaction().commit(); em.getTransaction().begin(); ProductModelEmo modelEmo = new ProductModelEmo(em); ProductModel model = modelEmo.request(sb, sg, sn, fn, mn); assertNotNull(model); assertEquals(mn, model.getName()); assertEquals(fn, model.getFamily().getName()); assertEquals(sb, model.getFamily().getSeries().getBrand()); assertEquals(sg, model.getFamily().getSeries().getGroup()); assertEquals(sn, model.getFamily().getSeries().getName()); long fid = model.getFamily().getId(); long mid = model.getId(); long sid = model.getFamily().getSeries().getId(); em.getTransaction().commit(); em.getTransaction().begin(); model = modelEmo.request(sb, sg, sn, fn, mn); assertNotNull(model); assertEquals(mid, model.getId()); assertEquals(fid, model.getFamily().getId()); assertEquals(sid, model.getFamily().getSeries().getId()); em.getTransaction().commit(); } @Test public void testRequestBrandGroupNameByHand() { TradeName sb = TradeName.HP; ProductGroup sg = ProductGroup.PROJECTOR; String sn = "SERIES"; String fn = "FAMILY"; String mn = "MODEL"; em.getTransaction().begin(); new ProductSeriesEmo(em).request(sb, sg, sn); em.getTransaction().commit(); em.getTransaction().begin(); new ProductFamilyEmo(em).request(sb, sg, sn, fn); em.getTransaction().commit(); em.getTransaction().begin(); ProductModel model = new ProductModelEmo(em).request(sb, sg, sn, fn, mn); assertNotNull(model); em.getTransaction().commit(); } }