package eu.ggnet.dwoss.customer; import eu.ggnet.dwoss.rules.CustomerFlag; import eu.ggnet.dwoss.rules.ShippingCondition; import eu.ggnet.dwoss.rules.SalesChannel; import eu.ggnet.dwoss.rules.PaymentCondition; import eu.ggnet.dwoss.rules.PaymentMethod; import eu.ggnet.dwoss.customer.api.CustomerService; import java.util.*; import javax.ejb.Stateless; import javax.ejb.embeddable.EJBContainer; import javax.inject.Inject; import javax.naming.NamingException; import javax.persistence.EntityManager; import org.junit.*; import eu.ggnet.dwoss.configuration.SystemConfig; import eu.ggnet.dwoss.mandator.api.value.DefaultCustomerSalesdata; import eu.ggnet.dwoss.mandator.api.value.Mandator; import eu.ggnet.dwoss.customer.assist.CustomerPu; import eu.ggnet.dwoss.customer.assist.Customers; import eu.ggnet.dwoss.customer.eao.CustomerEao; import eu.ggnet.dwoss.customer.entity.Customer; import eu.ggnet.dwoss.customer.priv.OldCustomer; import static eu.ggnet.dwoss.customer.priv.ConverterUtil.mergeFromOld; import static org.junit.Assert.*; public class CustomerServiceSimpleSearchIT { private EJBContainer container; @Inject private CustomerService customerService; @Inject private CustomerEao eao; @Inject private CustomerServiceSimpleSearchHelper helper; @Before public void setUp() throws NamingException { Map<String, Object> c = new HashMap<>(); c.putAll(CustomerPu.CMP_IN_MEMORY); c.putAll(SystemConfig.OPENEJB_EJB_XML_DISCOVER); c.putAll(SystemConfig.OPENEJB_LOG_TESTING); container = EJBContainer.createEJBContainer(c); container.getContext().bind("inject", this); } @After public void tearDown() { container.close(); } @Test public void testFind() { OldCustomer c1 = new OldCustomer("Die Firma", "Herr", "Max", "Mustermann", "Keine Bemerkungen", null, "Helle Strasse 22", "12345", "Musterhausen"); OldCustomer c2 = new OldCustomer(null, "Frau", "Marria", "Mustermann", "Grosse Tüten", null, "Dunkle Allee 7", "12345", "Musterhausen", "Der Abnehmer", "Dünne Gasse 2", "22222", "Wolfsstaaad"); c2.setPaymentMethod(PaymentMethod.DIRECT_DEBIT); c2.addFlag(CustomerFlag.CONFIRMS_DOSSIER); c1.setPaymentCondition(PaymentCondition.CUSTOMER); //by pp OldCustomer c3 = new OldCustomer("Schlagstock Ltd.", "Herr", "Michael", "Wankelmeier", "Bloß freundlich sein !!!", "John \"Die Rechte\" Jefferson", "Adamsweg 3", "00666", "Eisenhüttenstadt", null, null, null, null); c3.addFlag(CustomerFlag.CONFIRMS_DOSSIER); c3.addFlag(CustomerFlag.CONFIRMED_CASH_ON_DELIVERY); c3.setPaymentMethod(PaymentMethod.CASH_ON_DELIVERY); c3.setAllowedSalesChannels(EnumSet.of(SalesChannel.CUSTOMER, SalesChannel.RETAILER)); c3.setPaymentCondition(PaymentCondition.DEALER_3_PERCENT_DISCOUNT); c3.setShippingCondition(ShippingCondition.DEALER_ONE); OldCustomer c4 = new OldCustomer(null, "Frau", "Lisa", "Lüstling", null, null, "Freie Straße 2", "98745", "Heimwehrhausen", "GanzSchnell GmbH", "Dünne Gasse 2", "22222", "Heimwehrhausen"); c4.addFlag(CustomerFlag.CONFIRMS_DOSSIER); c4.setAllowedSalesChannels(EnumSet.of(SalesChannel.CUSTOMER)); c4.setPaymentCondition(PaymentCondition.EMPLOYEE); c4.setShippingCondition(ShippingCondition.DEALER_ONE); c4.setPaymentMethod(PaymentMethod.INVOICE); c4.setEmail("lisa@xxx.com"); // -------- helper.persist(c1); helper.persist(c2); helper.persist(c3); helper.persist(c4); assertEquals("Finding all Customers", 4, eao.findAll().size()); // List<UiCustomer> asUiCustomers = customerService.asUiCustomers("Die Firma", null, "", " ", true); // System.out.println("Y:" + asUiCustomers); // // asUiCustomers = customerService.asUiCustomers("Die Fi", "Max", "", " ", true); // System.out.println("Y:" + asUiCustomers); // // asUiCustomers = customerService.asUiCustomers("Die Fi", "Max", "Muster", " ", true); // System.out.println("Y:" + asUiCustomers); // // asUiCustomers = customerService.asUiCustomers("Die Fi", "Moritz", "", " ", true); // System.out.println("N:" + asUiCustomers); // // asUiCustomers = customerService.asUiCustomers("Die Fi", null, "", " ", false); // System.out.println("N:" + asUiCustomers); // // asUiCustomers = customerService.asUiCustomers("Die Fam", null, "", " ", true); // System.out.println("N:" + asUiCustomers); // // asUiCustomers = customerService.asUiCustomers(null, null, null, "lisa", true); // System.out.println("Y:" + asUiCustomers); assertEquals("Finding all Customers", 4, customerService.asUiCustomers(null, null, "", " ", true).size()); assertEquals(1, customerService.asUiCustomers("Die Firma", null, null, null, true).size()); assertEquals(1, customerService.asUiCustomers("Schla", null, null, null, true).size()); assertEquals(1, customerService.asUiCustomers(null, "Mic", null, null, true).size()); assertEquals(3, customerService.asUiCustomers(null, "M", null, null, true).size()); } @Stateless public static class CustomerServiceSimpleSearchHelper { @Inject @Customers private EntityManager customerEm; @Inject private Mandator mandator; @Inject private DefaultCustomerSalesdata salesData; public void persist(OldCustomer old) { Customer customer = new Customer(); mergeFromOld(old, customer, mandator.getMatchCode(), salesData); customerEm.persist(customer); } } }