package eu.ggnet.dwoss.receipt;
import eu.ggnet.dwoss.receipt.UnitDestroyer;
import eu.ggnet.dwoss.stock.assist.StockPu;
import eu.ggnet.dwoss.uniqueunit.entity.UniqueUnit;
import java.util.*;
import javax.ejb.*;
import javax.ejb.embeddable.EJBContainer;
import javax.inject.Inject;
import javax.naming.NamingException;
import org.junit.*;
import eu.ggnet.dwoss.configuration.SystemConfig;
import eu.ggnet.dwoss.redtape.assist.RedTapePu;
import eu.ggnet.dwoss.spec.assist.SpecPu;
import eu.ggnet.dwoss.stock.eao.StockUnitEao;
import eu.ggnet.dwoss.uniqueunit.assist.UniqueUnitPu;
import eu.ggnet.dwoss.util.UserInfoException;
import eu.ggnet.dwoss.customer.assist.CustomerPu;
import eu.ggnet.dwoss.receipt.gen.ReceiptGeneratorOperation;
import static org.fest.assertions.api.Assertions.assertThat;
/**
*
* @author oliver.guenther
*/
public class ScrapUnitOperationIT {
private EJBContainer container;
@Inject
private StockUnitEao stockUnitEao;
@EJB
private UnitDestroyer unitDestroyer;
@Inject
private ReceiptGeneratorOperation receiptGenerator;
@Before
public void setUp() throws NamingException {
Map<String, Object> c = new HashMap<>();
c.putAll(SpecPu.CMP_IN_MEMORY);
c.putAll(UniqueUnitPu.CMP_IN_MEMORY);
c.putAll(CustomerPu.CMP_IN_MEMORY);
c.putAll(StockPu.CMP_IN_MEMORY);
c.putAll(RedTapePu.CMP_IN_MEMORY);
c.putAll(SystemConfig.OPENEJB_EJB_XML_DISCOVER);
c.putAll(SystemConfig.OPENEJB_LOG_WARN);
container = EJBContainer.createEJBContainer(c);
container.getContext().bind("inject", this);
}
@After
public void tearDown() {
container.close();
}
@Test
public void testScrap() throws UserInfoException {
UniqueUnit unit = receiptGenerator.makeUniqueUnit();
unit = unitDestroyer.verifyScarpOrDeleteAble(unit.getRefurbishId());
unitDestroyer.scrap(unit, "Someone", "cause i can");
assertThat(stockUnitEao.findByRefurbishId(unit.getRefurbishId())).isNull();
}
}