package com.mozu.test.framework.helper; import java.util.ArrayList; import java.util.List; import com.mozu.api.contracts.commerceruntime.carts.CartItem; import com.mozu.api.contracts.commerceruntime.commerce.PackageMeasurements; import com.mozu.api.contracts.commerceruntime.fulfillment.FulfillmentAction; import com.mozu.api.contracts.commerceruntime.fulfillment.FulfillmentInfo; import com.mozu.api.contracts.commerceruntime.fulfillment.PackageItem; import com.mozu.api.contracts.commerceruntime.fulfillment.Pickup; import com.mozu.api.contracts.commerceruntime.fulfillment.PickupItem; import com.mozu.api.contracts.commerceruntime.orders.OrderAction; import com.mozu.api.contracts.commerceruntime.payments.BillingInfo; import com.mozu.api.contracts.commerceruntime.payments.PaymentAction; import com.mozu.api.contracts.commerceruntime.products.Product; import com.mozu.api.contracts.commerceruntime.returns.Return; import com.mozu.api.contracts.commerceruntime.returns.ReturnAction; import com.mozu.api.contracts.commerceruntime.returns.ReturnItem; import com.mozu.api.contracts.commerceruntime.returns.ReturnReason; import com.mozu.api.contracts.core.Address; import com.mozu.api.contracts.core.Contact; import com.mozu.api.contracts.core.Measurement; import com.mozu.api.contracts.core.User; import com.mozu.api.contracts.customer.CustomerAccount; import com.mozu.api.contracts.customer.CustomerAccountAndAuthInfo; import com.mozu.api.contracts.customer.CustomerContact; import com.mozu.api.contracts.customer.CustomerUserAuthInfo; public class CustomerGenerator { public static User generate(Boolean isActive, String password) { User user = new User(); user.setEmailAddress(Generator.randomEmailAddress()); user.setFirstName(Generator.randomString(5, Generator.AlphaChars)); user.setLastName(Generator.randomString(5, Generator.AlphaChars)); user.setIsActive(isActive); user.setLocaleCode(Constants.LocaleCode); user.setPassword(password); return user; } // public static CustomerAccount generateCustomerAccount(String userId) // { // CustomerAccount account = new CustomerAccount(); // account.setUserId(userId); // return account; // } // public static Address generateAddress(String state) { Address addr = new Address(); if (state.equalsIgnoreCase("tx")) { addr.setAddress1("9801 Parmer Ln"); addr.setCityOrTown("Austin"); addr.setStateOrProvince("TX"); addr.setPostalOrZipCode("78717"); } else if(state.equalsIgnoreCase("ca")) { addr.setAddress1("1156 High Street"); addr.setCityOrTown("Santa Cruz"); addr.setStateOrProvince("CA"); addr.setPostalOrZipCode("95064"); } addr.setCountryCode(Constants.CountryCode); addr.setAddressType("Residential"); return addr; } public static Address generateInvalidAddress() { Address addr = new Address(); addr.setAddress1("9801 Pamer Ln"); addr.setCityOrTown("Austin"); addr.setStateOrProvince("TX"); addr.setPostalOrZipCode("78717"); addr.setCountryCode(Constants.CountryCode); return addr; } public static CustomerContact generateCustomerContact(Integer accountId, String email, String firstName, String lastNameOrSurname) { CustomerContact contact = new CustomerContact(); contact.setAccountId(accountId); contact.setEmail(email); contact.setFirstName(firstName); contact.setLastNameOrSurname(lastNameOrSurname); contact.setAddress(generateAddress("tx")); contact.setPhoneNumbers(Generator.randomPhone()); return contact; } public static Contact generateContact(String email, String firstName, String lastNameOrSurname) { Contact contact = new Contact(); contact.setAddress(generateAddress("ca")); contact.setEmail(email); contact.setFirstName(firstName); contact.setLastNameOrSurname(lastNameOrSurname); contact.setPhoneNumbers(Generator.randomPhone()); return contact; } public static CustomerUserAuthInfo generateUserAuthInfo(String username, String passwd) { CustomerUserAuthInfo info = new CustomerUserAuthInfo(); info.setUsername(username); info.setPassword(passwd); return info; } public static CartItem generateCartItem(com.mozu.api.contracts.productruntime.Product product, Integer count) { CartItem item = new CartItem(); Product pr = new Product(); pr.setProductCode(product.getProductCode()); item.setProduct(pr); item.setQuantity(count); return item; } public static CartItem generateCartItem(com.mozu.api.contracts.productruntime.Product product, Integer count, String fulfillmentLocationCode, String fulfillmentMethod) { CartItem item = generateCartItem(product, count); item.setFulfillmentLocationCode(fulfillmentLocationCode); item.setFulfillmentMethod(fulfillmentMethod); return item; } public static CustomerAccountAndAuthInfo generateCustomerAccountAndAuthInfo() { CustomerAccount customer = new CustomerAccount(); customer.setAcceptsMarketing(false); customer.setCompanyOrOrganization(Generator.randomString(8, Generator.AlphaChars)); ArrayList<CustomerContact> contacts = new ArrayList<CustomerContact>(); contacts.add(generateCustomerContact(null, Generator.randomEmailAddress(), Generator.randomString(5, Generator.AlphaChars), Generator.randomString(6, Generator.AlphaChars))); customer.setContacts(contacts); customer.setEmailAddress(Generator.randomEmailAddress()); customer.setFirstName(Generator.randomString(5, Generator.AlphaChars)); customer.setLastName(Generator.randomString(6, Generator.AlphaChars)); customer.setLocaleCode(Constants.LocaleCode); customer.setUserName(Generator.randomString(6, Generator.AlphaChars)); CustomerAccountAndAuthInfo customerAccountAndAuthInfo = new CustomerAccountAndAuthInfo(); customerAccountAndAuthInfo.setAccount(customer); customerAccountAndAuthInfo.setPassword(Constants.Password); return customerAccountAndAuthInfo; } public static CustomerAccountAndAuthInfo generateCustomerAccountAndAuthInfo(Boolean taxExempt, String taxId) { CustomerAccountAndAuthInfo info = generateCustomerAccountAndAuthInfo(); CustomerAccount customer = info.getAccount(); customer.setTaxExempt(taxExempt); customer.setTaxId(taxId); info.setAccount(customer); return info; } public static FulfillmentInfo generateFulfillmentInfo(Boolean isDestinationCommercial, Contact fulfillmentContact, String shippingMethodCode, String shippingMethodName) { FulfillmentInfo info = new FulfillmentInfo(); info.setIsDestinationCommercial(isDestinationCommercial); info.setFulfillmentContact(fulfillmentContact); info.setShippingMethodCode(shippingMethodCode); info.setShippingMethodName(shippingMethodName); return info; } public static FulfillmentAction generateFulfillmentAction(String actionName, String packageId, String pickupId) { FulfillmentAction action = new FulfillmentAction(); action.setActionName(actionName); List<String> list = new ArrayList<String>(); if(packageId != null) { list.add(packageId); action.setPackageIds(list); } if(pickupId != null) { list.clear(); list.add(pickupId); action.setPickupIds(list); } return action; } public static BillingInfo generateBillingInfo(Contact billingContact, String paymentType, Boolean isSameBillingShippingAddress) { BillingInfo info = new BillingInfo(); info.setBillingContact(billingContact); info.setPaymentType(paymentType); info.setIsSameBillingShippingAddress(isSameBillingShippingAddress); return info; } public static PaymentAction generatePaymentAction(String actionName, Double amount, String checkNumber, String referenceSourcePaymentId) { PaymentAction action = new PaymentAction(); action.setActionName(actionName); action.setAmount(amount); action.setCheckNumber(checkNumber); action.setReferenceSourcePaymentId(referenceSourcePaymentId); action.setCurrencyCode(Constants.Currency); return action; } public static OrderAction generateOrderAction(String actionName) { OrderAction action = new OrderAction(); action.setActionName(actionName); return action; } public static Pickup generatePickup(PickupItem item, String fulfillmentLocationCode) { Pickup pickup = new Pickup(); List<PickupItem> list = new ArrayList<PickupItem>(); list.add(item); pickup.setItems(list); pickup.setFulfillmentLocationCode(fulfillmentLocationCode); return pickup; } public static PickupItem generatePickupItem(String productCode, Integer quantity) { PickupItem item = new PickupItem(); item.setProductCode(productCode); item.setQuantity(quantity); return item; } public static com.mozu.api.contracts.commerceruntime.fulfillment.Package generatePackage(String shippingMethodCode, String shippingMethodName, String productCode, Integer quantity) { com.mozu.api.contracts.commerceruntime.fulfillment.Package pk = new com.mozu.api.contracts.commerceruntime.fulfillment.Package(); pk.setShippingMethodCode(shippingMethodCode); pk.setShippingMethodName(shippingMethodName); List<PackageItem> list = new ArrayList<PackageItem>(); list.add(generateItem(productCode, quantity)); pk.setItems(list); return pk; } public static PackageItem generateItem(String productCode, Integer quantity) { PackageItem item = new PackageItem(); item.setProductCode(productCode); item.setQuantity(quantity); return item; } public static Return generateReturn(String returnType, String returnOrderId, ReturnItem item) { Return rt = new Return(); rt.setReturnType(returnType); rt.setReturnOrderId(returnOrderId); List<ReturnItem> list = new ArrayList<ReturnItem>(); list.add(item); rt.setItems(list); rt.setRefundAmount(200.); return rt; } public static ReturnItem generateReturnItem(String orderItemId, Product product, Integer quantity) { ReturnItem item = new ReturnItem(); item.setOrderItemId(orderItemId); item.setProduct(product); List<ReturnReason> reasons = new ArrayList<ReturnReason>(); reasons.add(generateReturnReason(quantity, "Damaged")); item.setReasons(reasons); return item; } public static ReturnReason generateReturnReason(Integer quantity, String reason) { ReturnReason rreason = new ReturnReason(); rreason.setQuantity(quantity); rreason.setReason(reason); return rreason; } public static ReturnAction generateReturnAction(String actionName, String returnId) { ReturnAction action = new ReturnAction(); action.setActionName(actionName); List<String> returnIds = new ArrayList<String>(); returnIds.add(returnId); action.setReturnIds(returnIds); return action; } }