package eu.ggnet.dwoss.stock.entity;
import java.util.List;
import javax.persistence.*;
import org.junit.*;
import eu.ggnet.dwoss.rules.TradeName;
import eu.ggnet.dwoss.stock.assist.StockPu;
import eu.ggnet.dwoss.stock.eao.ShipmentEao;
import static org.junit.Assert.*;
/**
*
* @author Bastian Venz
*/
public class ShipmentIT {
private EntityManagerFactory emf;
private EntityManager em;
private ShipmentEao eao;
@Before
public void before() {
emf = Persistence.createEntityManagerFactory(StockPu.NAME, StockPu.JPA_IN_MEMORY);
em = emf.createEntityManager();
eao = new ShipmentEao(em);
}
@After
public void after() {
em.close();
emf.close();
}
//<editor-fold defaultstate="collapsed" desc=" testCreation ">
@Test
public void testCreateShipment() {
EntityTransaction tx = em.getTransaction();
tx.begin();
Shipment ship1 = new Shipment("001", TradeName.ONESELF, TradeName.HP, Shipment.Status.OPENED);
em.persist(ship1);
tx.commit();
assertTrue(ship1.getId() > 0);
tx.begin();
Shipment ship2 = new Shipment("002", TradeName.ALSO, TradeName.DELL, Shipment.Status.OPENED);
em.persist(ship2);
tx.commit();
tx.begin();
List<Shipment> list = eao.findAll();
tx.commit();
assertNotNull(list);
assertEquals(2, list.size());
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc=" testDeletion ">
@Test
public void testDeleteShipment() {
EntityTransaction tx = em.getTransaction();
tx.begin();
Shipment ship1 = new Shipment("001", TradeName.ONESELF, TradeName.APPLE, Shipment.Status.OPENED);
em.persist(ship1);
tx.commit();
assertNotNull(ship1);
Shipment ship2 = new Shipment("002", TradeName.DELL, TradeName.DELL, Shipment.Status.OPENED);
tx.begin();
em.persist(ship2);
em.remove(ship1);
List<Shipment> list = eao.findAll();
tx.commit();
assertEquals(1, list.size());
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc=" testUpdate ">
@Test
public void testUpdateShipment() {
EntityTransaction tx = em.getTransaction();
tx.begin();
Shipment ship1 = new Shipment("001", TradeName.ONESELF, TradeName.LENOVO, Shipment.Status.OPENED);
em.persist(ship1);
tx.commit();
ship1.setShipmentId("005");
ship1.setContractor(TradeName.AMAZON);
tx.begin();
em.merge(ship1);
tx.commit();
assertEquals(TradeName.AMAZON, eao.findAll().get(0).getContractor());
}
//</editor-fold>
}