public void makeCustomerAddressDefault(Long customerAddressId, Long customerId) { List<CustomerAddress> customerAddresses = readActiveCustomerAddressesByCustomerId(customerId); for (CustomerAddress customerAddress : customerAddresses) { customerAddress.getAddress().setDefault(customerAddress.getId().equals(customerAddressId)); em.merge(customerAddress); } }
public String viewCustomerAddress(HttpServletRequest request, Model model, Long customerAddressId) { CustomerAddress customerAddress = customerAddressService.readCustomerAddressById(customerAddressId); if (customerAddress == null) { throw new IllegalArgumentException("Customer Address not found with the specified customerAddressId"); } validateCustomerOwnedData(customerAddress); CustomerAddressForm form = new CustomerAddressForm(); form.setAddress(customerAddress.getAddress()); form.setAddressName(customerAddress.getAddressName()); form.setCustomerAddressId(customerAddress.getId()); model.addAttribute("customerAddressForm", form); return getCustomerAddressesView(); }
if (ca.getAddress().getId() == null) { ca.getAddress().setId(queryFactory.insert(address) .populate(ca.getAddress()) .executeWithKey(address.id)); .set(customerAddress.addressId, ca.getAddress().getId()) .set(customerAddress.addressTypeCode, ca.getAddressTypeCode()) .set(customerAddress.fromDate, ca.getFromDate())
@Override @Transactional(TransactionUtils.DEFAULT_TRANSACTION_MANAGER) public CustomerAddress saveCustomerAddress(CustomerAddress customerAddress) { // if parameter address is set as default, unset all other default addresses List<CustomerAddress> activeCustomerAddresses = readActiveCustomerAddressesByCustomerId(customerAddress.getCustomer().getId()); if (activeCustomerAddresses != null && activeCustomerAddresses.isEmpty()) { customerAddress.getAddress().setDefault(true); } else { if (customerAddress.getAddress().isDefault()) { for (CustomerAddress activeCustomerAddress : activeCustomerAddresses) { if (!activeCustomerAddress.getId().equals(customerAddress.getId()) && activeCustomerAddress.getAddress().isDefault()) { activeCustomerAddress.getAddress().setDefault(false); customerAddressDao.save(activeCustomerAddress); } } } } return customerAddressDao.save(customerAddress); }
@Override public ShippingInfoForm prePopulateShippingInfoForm(ShippingInfoForm shippingInfoForm, Order cart) { FulfillmentGroup firstShippableFulfillmentGroup = fulfillmentGroupService.getFirstShippableFulfillmentGroup(cart); if (firstShippableFulfillmentGroup != null) { //if the cart has already has fulfillment information if (firstShippableFulfillmentGroup.getAddress() != null) { shippingInfoForm.setAddress(firstShippableFulfillmentGroup.getAddress()); } else { //check for a default address for the customer CustomerAddress defaultAddress = customerAddressService.findDefaultCustomerAddress(CustomerState.getCustomer().getId()); if (defaultAddress != null) { shippingInfoForm.setAddress(defaultAddress.getAddress()); shippingInfoForm.setAddressName(defaultAddress.getAddressName()); } } FulfillmentOption fulfillmentOption = firstShippableFulfillmentGroup.getFulfillmentOption(); if (fulfillmentOption != null) { shippingInfoForm.setFulfillmentOption(fulfillmentOption); shippingInfoForm.setFulfillmentOptionId(fulfillmentOption.getId()); } } return shippingInfoForm; }
@Override public void determineIfSavedAddressIsSelected(Model model, ShippingInfoForm shippingInfoForm, PaymentInfoForm paymentInfoForm) { Customer customer = CustomerState.getCustomer(); boolean isSavedShippingAddress = false; boolean isSavedBillingAddress = false; for (CustomerAddress customerAddress : customer.getCustomerAddresses()) { if (addressesContentsAreEqual(shippingInfoForm.getAddress(), customerAddress.getAddress())) { isSavedShippingAddress = true; break; } } for (CustomerAddress customerAddress : customer.getCustomerAddresses()) { if (addressesContentsAreEqual(paymentInfoForm.getAddress(), customerAddress.getAddress())) { isSavedBillingAddress = true; break; } } model.addAttribute("isSavedShippingAddress", isSavedShippingAddress); model.addAttribute("isSavedBillingAddress", isSavedBillingAddress); }
/** * Saves a customerAddress with state KY and country US. Requires that createCountry() and createState() have been called * @param customerAddress */ public CustomerAddress saveCustomerAddress(CustomerAddress customerAddress) { State state = stateService.findStateByAbbreviation("KY"); customerAddress.getAddress().setState(state); Country country = countryService.findCountryByAbbreviation("US"); customerAddress.getAddress().setCountry(country); customerAddress.getAddress().setIsoCountrySubdivision("US-KY"); ISOCountry isoCountry = isoService.findISOCountryByAlpha2Code("US"); customerAddress.getAddress().setIsoCountryAlpha2(isoCountry); return customerAddressService.saveCustomerAddress(customerAddress); }
/** * This method only exists because so many other tests depend on it, but should be removed once tests are more isolated * @param customerAddress */ @Deprecated @Test(groups = "createCustomerAddress", dataProvider = "setupCustomerAddress", dataProviderClass = CustomerAddressDataProvider.class, dependsOnGroups = {"readCustomer", "createCountry", "createState"}) @Transactional @Rollback(false) public void createCustomerAddress(CustomerAddress customerAddress) { userName = "customer1"; Customer customer = customerService.readCustomerByUsername(userName); assert customerAddress.getId() == null; customerAddress.setCustomer(customer); State state = stateService.findStateByAbbreviation("KY"); customerAddress.getAddress().setState(state); Country country = countryService.findCountryByAbbreviation("US"); customerAddress.getAddress().setCountry(country); customerAddress.getAddress().setIsoCountrySubdivision("US-KY"); ISOCountry isoCountry = isoService.findISOCountryByAlpha2Code("US"); customerAddress.getAddress().setIsoCountryAlpha2(isoCountry); customerAddress = customerAddressService.saveCustomerAddress(customerAddress); assert customer.equals(customerAddress.getCustomer()); userId = customerAddress.getCustomer().getId(); }
@Test(groups={"createPaymentInfo"}, dataProvider="basicPaymentInfo", dataProviderClass=PaymentInfoDataProvider.class, dependsOnGroups={"readCustomer", "createOrder"}) @Rollback(false) @Transactional public void createPayment(OrderPayment payment){ userName = "customer1"; Customer customer = customerService.readCustomerByUsername(userName); List<CustomerAddress> addresses = customerAddressDao.readActiveCustomerAddressesByCustomerId(customer.getId()); Address address = null; if (!addresses.isEmpty()) address = addresses.get(0).getAddress(); Order salesOrder = orderService.createNewCartForCustomer(customer); payment.setBillingAddress(address); payment.setOrder(salesOrder); payment.setType(PaymentType.CREDIT_CARD); assert payment.getId() == null; payment = paymentInfoService.save(payment); assert payment.getId() != null; this.paymentInfo = payment; }
@Test(groups={"testCreatePaymentInfo"}, dependsOnGroups={"createPaymentInfo"}) @Transactional public void createTestPayment(){ userName = "customer1"; OrderPayment paymentInfo = paymentInfoService.create(); Customer customer = customerService.readCustomerByUsername(userName); List<CustomerAddress> addresses = customerAddressDao.readActiveCustomerAddressesByCustomerId(customer.getId()); Address address = null; if (!addresses.isEmpty()) address = addresses.get(0).getAddress(); Order salesOrder = orderService.findCartForCustomer(customer); paymentInfo.setBillingAddress(address); paymentInfo.setOrder(salesOrder); paymentInfo.setType(PaymentType.CREDIT_CARD); assert paymentInfo != null; paymentInfo = paymentInfoService.save(paymentInfo); assert paymentInfo.getId() != null; Long paymentInfoId = paymentInfo.getId(); paymentInfoService.delete(paymentInfo); paymentInfo = paymentInfoService.readPaymentById(paymentInfoId); assert paymentInfo == null; }
@Test(groups = "testCustomerAddress") @Transactional public void createNewDefaultAddress() { Customer customer = createCustomerWithAddresses(); CustomerAddress ca = new CustomerAddressImpl(); Address address = new AddressImpl(); address.setAddressLine1("123 Main"); address.setCity("Dallas"); address.setPostalCode("75201"); address.setDefault(true); ca.setAddress(address); ca.setCustomer(customer); ca.setAddressName("address3"); CustomerAddress savedAddress = saveCustomerAddress(ca); List<CustomerAddress> customerAddressList = customerAddressService.readActiveCustomerAddressesByCustomerId(customer.getId()); for (CustomerAddress customerAddress : customerAddressList) { if (customerAddress.getId().equals(savedAddress.getId())) { assert customerAddress.getAddress().isDefault(); } else { assert !customerAddress.getAddress().isDefault(); } } }
@Test(groups = "createFulfillmentGroup", dataProvider = "basicFulfillmentGroup", dataProviderClass = FulfillmentGroupDataProvider.class) @Transactional @Rollback(false) public void createFulfillmentGroup(FulfillmentGroup fulfillmentGroup) { Customer customer = createCustomerWithBasicOrderAndAddresses(); Address address = (customerAddressDao.readActiveCustomerAddressesByCustomerId(customer.getId())).get(0).getAddress(); Order salesOrder = orderDao.readOrdersForCustomer(customer.getId()).get(0); FulfillmentGroup newFG = fulfillmentGroupDao.create(); newFG.setAddress(address); newFG.setRetailShippingPrice(fulfillmentGroup.getRetailShippingPrice()); newFG.setMethod(fulfillmentGroup.getMethod()); newFG.setService(fulfillmentGroup.getService()); newFG.setReferenceNumber(fulfillmentGroup.getReferenceNumber()); newFG.setOrder(salesOrder); assert newFG.getId() == null; fulfillmentGroup = fulfillmentGroupService.save(newFG); assert fulfillmentGroup.getId() != null; fulfillmentGroupId = fulfillmentGroup.getId(); }
@Test(groups = "createItemFulfillmentGroup", dataProvider = "basicFulfillmentGroup", dataProviderClass = FulfillmentGroupDataProvider.class, dependsOnGroups = { "createOrder", "createCustomerAddress" }) @Rollback(false) @Transactional public void createDefaultFulfillmentGroup(FulfillmentGroup fulfillmentGroup) { String userName = "customer1"; Customer customer = customerService.readCustomerByUsername(userName); Address address = (customerAddressDao.readActiveCustomerAddressesByCustomerId(customer.getId())).get(0).getAddress(); salesOrder = orderDao.createNewCartForCustomer(customer); FulfillmentGroup newFG = fulfillmentGroupDao.createDefault(); newFG.setAddress(address); newFG.setRetailShippingPrice(fulfillmentGroup.getRetailShippingPrice()); newFG.setMethod(fulfillmentGroup.getMethod()); newFG.setService(fulfillmentGroup.getService()); newFG.setOrder(salesOrder); newFG.setReferenceNumber(fulfillmentGroup.getReferenceNumber()); assert newFG.getId() == null; this.fulfillmentGroup = fulfillmentGroupService.save(newFG); assert this.fulfillmentGroup.getId() != null; }
@Test(groups = "createDefaultFulfillmentGroup", dataProvider = "basicFulfillmentGroup", dataProviderClass = FulfillmentGroupDataProvider.class) @Transactional @Rollback(false) public void createDefaultFulfillmentGroup(FulfillmentGroup fulfillmentGroup) { Customer customer = createCustomerWithBasicOrderAndAddresses(); Address address = (customerAddressDao.readActiveCustomerAddressesByCustomerId(customer.getId())).get(0).getAddress(); Order salesOrder = orderDao.readOrdersForCustomer(customer.getId()).get(0); FulfillmentGroup newFG = fulfillmentGroupDao.createDefault(); newFG.setAddress(address); newFG.setRetailShippingPrice(fulfillmentGroup.getRetailShippingPrice()); newFG.setMethod(fulfillmentGroup.getMethod()); newFG.setService(fulfillmentGroup.getService()); newFG.setOrder(salesOrder); newFG.setReferenceNumber(fulfillmentGroup.getReferenceNumber()); assert newFG.getId() == null; fulfillmentGroup = fulfillmentGroupService.save(newFG); assert fulfillmentGroup.getId() != null; defaultFulfillmentGroupOrderId = salesOrder.getId(); defaultFulfillmentGroupId = fulfillmentGroup.getId(); }
@Override public CustomerDto createDto(final Customer customer, final boolean embed, final boolean link) { final CustomerDto customerDto = CustomerDto.builder() .firstName(customer.getFirstName()) .lastName(customer.getLastName()) .username(customer.getUsername()) .email(customer.getEmailAddress()) .locale(Optional.ofNullable(customer.getCustomerLocale()).map(Locale::getLocaleCode).orElse(null)) .addresses( customer.getCustomerAddresses().stream() .collect(toMap( CustomerAddress::getAddressName, customerAddress -> addressConverter.createDto(customerAddress.getAddress(), embed, link) )) ) .build(); customerDto.add(ControllerLinkBuilder.linkTo(methodOn(CustomerController.class).readOneCustomer(null, customer.getId().toString(), null, null)).withSelfRel()); if (link) { customerDto.add(linkTo(methodOn(CustomerController.class).createAuthorizationCode(null, customer.getId().toString())).withRel("authorization")); } return customerDto; }