use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.
the class UniqueUnitAgentIT method testCreateOrUpdateCategoryProduct.
@Test
public void testCreateOrUpdateCategoryProduct() throws Exception {
// Create a some Products.
utx.begin();
em.joinTransaction();
Product p1 = new Product(ProductGroup.DESKTOP, TradeName.ACER, "LX.11111.222", "Verition Stein");
p1.setDescription("Ein Tolles Gerät");
p1.setPrice(PriceType.MANUFACTURER_COST, 200.0, "JUnit - Testcase");
p1.setPrice(PriceType.CONTRACTOR_REFERENCE, 240.0, "JUnit - Testcase");
p1.addFlag(Product.Flag.PRICE_FIXED);
Product p2 = new Product(ProductGroup.COMMENTARY, TradeName.DELL, "DL", "Dienstleistung 1h");
p2.setDescription("Eine Dienstleistungs Stunde");
em.persist(p1);
em.persist(p2);
utx.commit();
// Store a simple cp.
CategoryProductDto dto1 = new CategoryProductDto();
dto1.setName("CP1");
dto1.setDescription("Some Description");
CategoryProduct cp = agent.createOrUpdate(dto1, "Test");
assertThat(cp).as("CategroyProduct").isNotNull();
dto1.setId(cp.getId());
dto1.getProducts().add(new PicoProduct(p1.getId(), "irrelevant"));
dto1.getPrices().put(PriceType.SALE, 200.0);
long lastid = cp.getId();
cp = agent.createOrUpdate(dto1, "TEst");
assertThat(cp).as("CategroyProtuct").isNotNull().as("CategroyProtuct id is equal").returns(lastid, CategoryProduct::getId);
assertThat(cp.getProducts()).contains(p1);
assertThat(cp.getPrice(PriceType.SALE)).isEqualTo(200.0);
Reply<Void> reply = agent.deleteCategoryProduct(cp.getId());
assertThat(reply).isNotNull().returns(true, Reply::hasSucceded);
CategoryProduct notFound = agent.findById(CategoryProduct.class, cp.getId());
assertThat(notFound).isNull();
}
use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.
the class UniqueUnitEaoFindsIT method testFinds.
/**
* Multiple tests on find.
*
* @throws Exception
*/
@Test
public void testFinds() throws Exception {
Product p = new Product(ProductGroup.MONITOR, TradeName.FUJITSU, PARTNO_1, "The Notebook");
UniqueUnitEao eao = new UniqueUnitEao(em);
UniqueUnit unit1 = new UniqueUnit();
unit1.setMfgDate(new Date());
unit1.setIdentifier(SERIAL, "ROFFFLAASSS");
unit1.setIdentifier(REFURBISHED_ID, "22223");
unit1.setContractor(TradeName.ONESELF);
unit1.setCondition(Condition.AS_NEW);
unit1.setProduct(p);
UniqueUnit unit2 = new UniqueUnit();
unit2.setIdentifier(SERIAL, "FASREAGFSGSWE");
unit2.setIdentifier(REFURBISHED_ID, "54422");
unit2.setContractor(TradeName.ONESELF);
unit2.setCondition(Condition.AS_NEW);
unit2.setProduct(p);
UniqueUnit unit3 = new UniqueUnit();
unit3.setIdentifier(SERIAL, "FHASKHFUAERHFAGTQ5");
unit3.setIdentifier(REFURBISHED_ID, "33323");
unit3.setContractor(TradeName.ONESELF);
unit3.setCondition(Condition.AS_NEW);
unit3.setProduct(p);
UniqueUnit unit4 = new UniqueUnit();
unit4.setIdentifier(SERIAL, "GFSKLFDIACVHDAIERQ");
unit4.setIdentifier(REFURBISHED_ID, "54142");
unit4.setContractor(TradeName.ONESELF);
unit4.setCondition(Condition.AS_NEW);
unit4.setProduct(p);
UniqueUnit unit5 = new UniqueUnit();
unit5.setIdentifier(SERIAL, "FDALOIFUOWE");
unit5.setIdentifier(REFURBISHED_ID, "29471");
unit5.setContractor(TradeName.ONESELF);
unit5.setCondition(Condition.AS_NEW);
unit5.setProduct(p);
Set<ConstraintViolation<UniqueUnit>> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(unit1);
assertTrue(ConstraintViolationFormater.toMultiLine(new HashSet<>(validate), true), validate.isEmpty());
utx.begin();
em.joinTransaction();
em.persist(p);
em.persist(unit1);
em.persist(unit2);
em.persist(unit3);
em.persist(unit4);
em.persist(unit5);
utx.commit();
utx.begin();
em.joinTransaction();
assertThat(eao.findByIdentifier(REFURBISHED_ID, "22223").getId()).as("Id of Unit1 via findByIdentifier 22223").isEqualTo(unit1.getId());
assertThat(eao.findByIdentifier(REFURBISHED_ID, "54422").getId()).as("Id of Unit2 via findByIdentifier 54422").isEqualTo(unit2.getId());
assertThat(eao.findByPartialIdentifier(REFURBISHED_ID, "54*")).as("Result of 54* should contation unit2 and unit4").contains(unit2, unit4);
assertThat(eao.findByPartialIdentifier(REFURBISHED_ID, "*22*")).as("Result of *22* should contation unit1 and unit2").contains(unit1, unit2);
assertThat(eao.countFind("*5*")).as("Counting *5*").isEqualTo(3);
assertThat(eao.find("*5*")).as("Find of *5*").contains(unit2, unit3, unit4);
utx.commit();
SearchProvider search = null;
for (Iterator<SearchProvider> iterator = searchProviders.iterator(); iterator.hasNext(); ) {
SearchProvider next = iterator.next();
if (next.getSource() == UNIQUE_UNIT)
search = next;
}
assertThat(search.estimateMaxResults(new SearchRequest("*5*"))).as("Counting via Searchprovider *5*").isEqualTo(3);
assertThat(search.search(new SearchRequest("*5*"), 0, 1000)).as("Find of *5*").extracting(ShortSearchResult::getKey).contains(new GlobalKey(GlobalKey.Component.UNIQUE_UNIT, unit2.getId()), new GlobalKey(GlobalKey.Component.UNIQUE_UNIT, unit3.getId()), new GlobalKey(GlobalKey.Component.UNIQUE_UNIT, unit4.getId()));
}
use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.
the class UniqueUnitEaoIT method setUp.
@Before
public void setUp() throws Exception {
utx.begin();
em.joinTransaction();
product = new Product(ProductGroup.MONITOR, TradeName.ACER, PARTNO_1, "The Notebook");
em.persist(product);
Product p2 = new Product(ProductGroup.MONITOR, TradeName.ACER, PARTNO_2, "The Notebook");
em.persist(p2);
Product p3 = new Product(ProductGroup.MONITOR, TradeName.ACER, PARTNO_3, "The Notebook");
em.persist(p3);
unit_62325 = new UniqueUnit();
unit_62325.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, REFURBISHID_62325);
unit_62325.setContractor(TradeName.AMAZON);
unit_62325.setCondition(UniqueUnit.Condition.ALMOST_NEW);
unit_62325.setProduct(product);
unit_62325.setInputDate(_2012_12_02_);
em.persist(unit_62325);
UniqueUnit u2 = new UniqueUnit();
u2.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, "99999");
u2.setContractor(TradeName.ACER);
u2.setCondition(UniqueUnit.Condition.ALMOST_NEW);
u2.setInputDate(_2012_12_10_);
u2.setProduct(product);
em.persist(u2);
UniqueUnit u3 = new UniqueUnit();
u3.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, "99998");
u3.setContractor(TradeName.ACER);
u3.setCondition(UniqueUnit.Condition.AS_NEW);
u3.setProduct(p2);
u3.setInputDate(_2012_12_10_);
em.persist(u3);
UniqueUnit u4 = new UniqueUnit();
u4.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, "99997");
u4.setContractor(TradeName.ACER);
u4.setCondition(UniqueUnit.Condition.AS_NEW);
u4.setProduct(p3);
u4.setInputDate(_2012_12_10_);
em.persist(u4);
UniqueUnit u5 = new UniqueUnit();
u5.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, "99996");
u5.setContractor(TradeName.ACER);
u5.setCondition(UniqueUnit.Condition.AS_NEW);
u5.setProduct(p3);
u5.setInputDate(_2012_12_20_);
em.persist(u5);
utx.commit();
}
use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.
the class ProductOperation method updatePrice.
/**
* Update a price of a product by id.
* <p/>
* @param productId the product id
* @param priceType the type of price to update
* @param price the price
* @param comment the comment for the price history
* @return the updated product
*/
public Product updatePrice(long productId, PriceType priceType, double price, String comment) {
Product product = new ProductEao(uus).findById(productId);
if (product == null)
return null;
product.setPrice(priceType, price, comment);
return product;
}
use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.
the class PersistenceIT method testPersistence.
@Test
public void testPersistence() throws Exception {
utx.begin();
em.joinTransaction();
Date now = new Date();
CategoryProduct cp1 = new CategoryProduct();
cp1.setName("Mixup");
cp1.setPrice(PriceType.SALE, 100.0, "The Salepreice");
cp1.setSalesChannel(SalesChannel.RETAILER);
Product p1 = new Product(ProductGroup.DESKTOP, TradeName.ACER, "LX.11111.222", "Verition Stein");
p1.setDescription("Ein Tolles Gerät");
p1.setPrice(PriceType.MANUFACTURER_COST, 200.0, "JUnit - Testcase");
p1.setPrice(PriceType.CONTRACTOR_REFERENCE, 240.0, "JUnit - Testcase");
p1.addFlag(Product.Flag.PRICE_FIXED);
p1.setCategoryProduct(cp1);
Product p2 = new Product(ProductGroup.COMMENTARY, TradeName.DELL, "DL", "Dienstleistung 1h");
p2.setDescription("Eine Dienstleistungs Stunde");
p2.setCategoryProduct(cp1);
UnitCollection uc1 = new UnitCollection();
uc1.setProduct(p1);
uc1.setPartNoExtension("demo1");
uc1.setNameExtension("Demo1");
UnitCollection uc2 = new UnitCollection();
uc2.setProduct(p1);
uc2.setPartNoExtension("demo2");
uc2.setNameExtension("Demo2");
UniqueUnit unit1 = new UniqueUnit(p1, now, "");
unit1.setIdentifier(SERIAL, "ROFFFLAASSS");
unit1.setPrice(PriceType.SALE, 125, "JUnit - Testcase");
unit1.addFlag(UniqueUnit.Flag.PRICE_FIXED);
unit1.setContractor(TradeName.ONESELF);
unit1.setComment("Ein Commentar");
unit1.setCondition(UniqueUnit.Condition.AS_NEW);
unit1.setUnitCollection(uc1);
UniqueUnit unit2 = new UniqueUnit(p1, now, "lila");
unit2.addHistory("Aufgenommen als Sopo 332");
unit2.addHistory("Zerlegt weil kaput");
unit2.setIdentifier(SERIAL, "DBCFDASFDSADEF");
unit2.setContractor(TradeName.ONESELF);
unit2.setComment("Auch ein Commentar");
unit2.setCondition(UniqueUnit.Condition.AS_NEW);
unit2.setUnitCollection(uc2);
UniqueUnit unit3 = new UniqueUnit();
unit3.setProduct(p1);
unit3.setMfgDate(now);
unit3.setIdentifier(SERIAL, "ABCDEFJKHKZHJI");
unit3.setContractor(TradeName.ONESELF);
unit3.setCondition(UniqueUnit.Condition.AS_NEW);
unit3.setUnitCollection(uc2);
UniqueUnit unit4 = new UniqueUnit(p2, now, "");
unit4.setIdentifier(SERIAL, "ABCDEFFEQGSDFD");
unit4.setContractor(TradeName.ONESELF);
unit4.setCondition(UniqueUnit.Condition.USED);
unit4.setComment("Ein sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr langer Kommentar");
unit4.setInternalComment("Ein sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr langer Kommentar");
em.persist(cp1);
em.persist(p1);
em.persist(p2);
em.persist(uc1);
em.persist(uc2);
em.persist(unit1);
em.persist(unit2);
em.persist(unit3);
em.persist(unit4);
utx.commit();
List<CategoryProduct> allCp = agent.findAll(CategoryProduct.class);
assertThat(allCp).as("findAllCategoryProducts").isNotEmpty().hasSize(1).contains(cp1);
CategoryProduct getCp1 = allCp.get(0);
assertThat(getCp1.getSalesChannel()).as("saleschanel of categoryproduct").isEqualTo(SalesChannel.RETAILER);
assertThat(getCp1.hasPrice(PriceType.SALE)).as("price sale is set on categoryproduct").isTrue();
assertThat(agent.findAll(UniqueUnit.class)).as("findAllUniqueUnits").isNotNull().isNotEmpty().hasSize(4);
UniqueUnit unit3_1 = agent.findById(UniqueUnit.class, unit3.getId());
assertThat(unit3_1).as("Expected unit3").isNotNull().satisfies(u -> {
assertThat(u.getComment()).isNull();
assertThat(u.getInternalComment()).isNull();
assertThat(u.getUnitCollection()).isEqualTo(uc2);
});
UniqueUnit unit4_1 = agent.findById(UniqueUnit.class, unit4.getId());
assertThat(unit4_1).as("Expected unit4").isNotNull();
assertThat(unit4_1.getComment()).as("Comment of unit4").isNotBlank();
assertThat(unit4_1.getInternalComment()).as("InternalComment of unit4").isNotBlank();
}
Aggregations