package eu.ggnet.dwoss.stock.eao; import java.util.Date; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import org.junit.After; import org.junit.Before; import org.junit.Test; import eu.ggnet.dwoss.stock.assist.StockPu; import eu.ggnet.dwoss.stock.entity.Stock; import eu.ggnet.dwoss.stock.entity.StockTransaction; import eu.ggnet.dwoss.stock.entity.StockTransactionParticipation; import eu.ggnet.dwoss.stock.entity.StockTransactionParticipationType; import eu.ggnet.dwoss.stock.entity.StockTransactionStatus; import eu.ggnet.dwoss.stock.entity.StockTransactionStatusType; import eu.ggnet.dwoss.stock.entity.StockTransactionType; import static org.junit.Assert.*; public class StockTransactionEaoIT { private EntityManagerFactory emf; private EntityManager em; @Before public void before() { emf = Persistence.createEntityManagerFactory(StockPu.NAME, StockPu.JPA_IN_MEMORY); em = emf.createEntityManager(); } @After public void after() { em.close(); emf.close(); } @Test public void testfind() { EntityTransaction tx = em.getTransaction(); tx.begin(); Stock s1 = new Stock(0,"TEEEEEEEST"); Stock s2 = new Stock(1,"TEEEEEEEST"); em.persist(s1); em.persist(s2); StockTransaction st1 = new StockTransaction(StockTransactionType.ROLL_IN); st1.setDestination(s1); st1.addStatus(new StockTransactionStatus(StockTransactionStatusType.PREPARED, new Date())); st1.addStatus(new StockTransactionStatus(StockTransactionStatusType.COMPLETED, new Date())); StockTransaction st2 = new StockTransaction(StockTransactionType.ROLL_IN); st2.setDestination(s1); st2.addStatus(new StockTransactionStatus(StockTransactionStatusType.PREPARED, new Date())); StockTransaction st3 = new StockTransaction(StockTransactionType.DESTROY); st3.setSource(s1); st3.addStatus(new StockTransactionStatus(StockTransactionStatusType.PREPARED, new Date())); StockTransaction st4 = new StockTransaction(StockTransactionType.ROLL_IN); st4.setDestination(s2); StockTransactionStatus status = new StockTransactionStatus(StockTransactionStatusType.PREPARED, new Date()); status.addParticipation(new StockTransactionParticipation(StockTransactionParticipationType.PICKER, "Hugo")); st4.addStatus(status); st4.setComment("Muh"); em.persist(st1); em.persist(st2); em.persist(st3); em.persist(st4); tx.commit(); tx.begin(); StockTransactionEao stockTransactionEao = new StockTransactionEao(em); List<StockTransaction> sts = stockTransactionEao.findByDestination(s1.getId(), StockTransactionType.ROLL_IN, StockTransactionStatusType.PREPARED); assertNotNull(sts); assertEquals(1, sts.size()); assertEquals(st2.getId(), sts.get(0).getId()); sts = stockTransactionEao.findByDestination(s2.getId(), StockTransactionType.ROLL_IN, StockTransactionStatusType.PREPARED, "Hugo", "Muh"); assertNotNull(sts); assertEquals(1, sts.size()); assertEquals(st4.getId(), sts.get(0).getId()); } }