package eu.ggnet.dwoss.stock.eao;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
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.LogicTransaction;
import eu.ggnet.dwoss.stock.entity.Stock;
import eu.ggnet.dwoss.stock.entity.StockUnit;
import static org.junit.Assert.*;
/**
*
* @author pascal.perau
*/
public class LogicTransactionEaoIT {
private EntityManager em;
private EntityManagerFactory emf;
@Before
public void setUp() {
emf = Persistence.createEntityManagerFactory(StockPu.NAME, StockPu.JPA_IN_MEMORY);
em = emf.createEntityManager();
}
@After
public void tearDown() {
em.close();
emf.close();
}
@Test
public void testFindByUniqueUnitId() {
em.getTransaction().begin();
Stock s1 = new Stock(0,"TEEEEEEEST");
Stock s2 = new Stock(1,"TEEEEEEEST");
em.persist(s1);
em.persist(s2);
StockUnit su1 = new StockUnit("1", 1);
s1.addUnit(su1);
em.persist(su1);
StockUnit su2 = new StockUnit("2", 5);
s1.addUnit(su2);
em.persist(su2);
StockUnit su3 = new StockUnit("3", 5);
s1.addUnit(su3);
em.persist(su3);
StockUnit su4 = new StockUnit("4", 5);
s1.addUnit(su4);
em.persist(su4);
StockUnit su5 = new StockUnit("5", 5);
s1.addUnit(su5);
em.persist(su5);
StockUnit su6 = new StockUnit("6", 6);
s2.addUnit(su6);
StockUnit su7 = new StockUnit("7", 7);
s1.addUnit(su7);
StockUnit su8 = new StockUnit("8", 8);
s2.addUnit(su8);
em.persist(su6);
em.persist(su7);
em.persist(su8);
LogicTransaction lt1 = new LogicTransaction();
lt1.setDossierId(1);
lt1.add(su6);
lt1.add(su7);
em.persist(lt1);
long lt1Id = lt1.getId();
LogicTransaction lt2 = new LogicTransaction();
lt2.setDossierId(2);
lt2.add(su8);
em.persist(lt2);
long lt2Id = lt2.getId();
em.getTransaction().commit();
LogicTransactionEao ltEao = new LogicTransactionEao(em);
em.getTransaction().begin();
lt1 = ltEao.findByUniqueUnitId(1);
assertNull(lt1);
lt1 = ltEao.findByUniqueUnitId(-1);
assertNull(lt1);
lt1 = ltEao.findByUniqueUnitId(6);
assertNotNull(lt1);
assertEquals(lt1Id, lt1.getId());
lt2 = ltEao.findByUniqueUnitId(8);
assertNotNull(lt2);
assertEquals(lt2Id, lt2.getId());
em.getTransaction().commit();
}
}