package eu.ggnet.dwoss.redtape.eao; import eu.ggnet.dwoss.redtape.entity.Dossier; import eu.ggnet.dwoss.redtape.entity.DocumentHistory; import eu.ggnet.dwoss.redtape.eao.DossierEao; import eu.ggnet.dwoss.redtape.entity.Document; import java.util.Arrays; import java.util.List; import javax.persistence.*; import org.junit.Test; import eu.ggnet.dwoss.redtape.assist.RedTapePu; import eu.ggnet.dwoss.redtape.emo.AddressEmo; import eu.ggnet.dwoss.rules.DocumentType; import eu.ggnet.dwoss.rules.PaymentMethod; import static org.junit.Assert.*; /** * * @author oliver.guenther */ public class DossierEaoIT { @Test public void testFindByIds() throws InterruptedException { EntityManagerFactory emf = Persistence.createEntityManagerFactory(RedTapePu.NAME, RedTapePu.JPA_IN_MEMORY); EntityManager em = emf.createEntityManager(); AddressEmo adEmo = new AddressEmo(em); em.getTransaction().begin(); Dossier dos = new Dossier(); dos.setPaymentMethod(PaymentMethod.ADVANCE_PAYMENT); dos.setCustomerId(1); Document doc = new Document(); doc.setType(DocumentType.ORDER); doc.setActive(true); doc.setDirective(Document.Directive.NONE); doc.setHistory(new DocumentHistory("JUnit", "Automatische Erstellung eines leeren Dokuments")); doc.setInvoiceAddress(adEmo.request("Bla Bla")); doc.setShippingAddress(adEmo.request("Auch")); dos.add(doc); em.persist(dos); dos = new Dossier(); dos.setPaymentMethod(PaymentMethod.ADVANCE_PAYMENT); dos.setCustomerId(1); doc = new Document(); doc.setType(DocumentType.ORDER); doc.setActive(true); doc.setDirective(Document.Directive.NONE); doc.setHistory(new DocumentHistory("JUnit", "Automatische Erstellung eines leeren Dokuments")); doc.setInvoiceAddress(adEmo.request("Bla Bla")); doc.setShippingAddress(adEmo.request("Auch")); dos.add(doc); em.persist(dos); dos = new Dossier(); dos.setPaymentMethod(PaymentMethod.ADVANCE_PAYMENT); dos.setCustomerId(1); doc = new Document(); doc.setType(DocumentType.ORDER); doc.setActive(true); doc.setDirective(Document.Directive.NONE); doc.setHistory(new DocumentHistory("JUnit", "Automatische Erstellung eines leeren Dokuments")); doc.setInvoiceAddress(adEmo.request("Bla Bla")); doc.setShippingAddress(adEmo.request("Auch")); dos.add(doc); em.persist(dos); em.getTransaction().commit(); em.getTransaction().begin(); List<Dossier> dossiers = new DossierEao(em).findByIds(Arrays.asList(1l, 3l)); assertFalse("Dossiers should not be empty", dossiers.isEmpty()); assertEquals(2, dossiers.size()); } @Test public void testFindByClosed() { EntityManagerFactory emf = Persistence.createEntityManagerFactory(RedTapePu.NAME, RedTapePu.JPA_IN_MEMORY); EntityManager em = emf.createEntityManager(); AddressEmo adEmo = new AddressEmo(em); em.getTransaction().begin(); Dossier dos = new Dossier(); dos.setPaymentMethod(PaymentMethod.ADVANCE_PAYMENT); dos.setCustomerId(1); Document doc = new Document(); doc.setType(DocumentType.ORDER); doc.setActive(true); doc.setDirective(Document.Directive.NONE); doc.setHistory(new DocumentHistory("JUnit", "Automatische Erstellung eines leeren Dokuments")); doc.setInvoiceAddress(adEmo.request("Bla Bla")); doc.setShippingAddress(adEmo.request("Auch")); dos.add(doc); em.persist(dos); dos = new Dossier(); dos.setPaymentMethod(PaymentMethod.ADVANCE_PAYMENT); dos.setCustomerId(1); doc = new Document(); doc.setType(DocumentType.ORDER); doc.setActive(true); doc.setDirective(Document.Directive.NONE); doc.setHistory(new DocumentHistory("JUnit", "Automatische Erstellung eines leeren Dokuments")); doc.setInvoiceAddress(adEmo.request("Bla Bla")); doc.setShippingAddress(adEmo.request("Auch")); dos.add(doc); em.persist(dos); dos = new Dossier(); dos.setPaymentMethod(PaymentMethod.ADVANCE_PAYMENT); dos.setCustomerId(1); dos.setClosed(true); doc = new Document(); doc.setType(DocumentType.ORDER); doc.setActive(true); doc.setDirective(Document.Directive.NONE); doc.setHistory(new DocumentHistory("JUnit", "Automatische Erstellung eines leeren Dokuments")); doc.setInvoiceAddress(adEmo.request("Bla Bla")); doc.setShippingAddress(adEmo.request("Auch")); doc.setClosed(true); dos.add(doc); em.persist(dos); em.getTransaction().commit(); em.getTransaction().begin(); List<Dossier> dossiers = new DossierEao(em).findByClosed(false); assertFalse("Dossiers should not be empty", dossiers.isEmpty()); assertEquals(2, dossiers.size()); } }