@Override @Transactional(TransactionUtils.DEFAULT_TRANSACTION_MANAGER) public CustomerPhone saveCustomerPhone(CustomerPhone customerPhone) { List<CustomerPhone> activeCustomerPhones = readActiveCustomerPhonesByCustomerId(customerPhone.getCustomer().getId()); if (activeCustomerPhones != null && activeCustomerPhones.isEmpty()) { customerPhone.getPhone().setDefault(true); } else { // if parameter customerPhone is set as default, unset all other default phones if (customerPhone.getPhone().isDefault()) { for (CustomerPhone activeCustomerPhone : activeCustomerPhones) { if (!activeCustomerPhone.getId().equals(customerPhone.getId()) && activeCustomerPhone.getPhone().isDefault()) { activeCustomerPhone.getPhone().setDefault(false); customerPhoneDao.save(activeCustomerPhone); } } } } return customerPhoneDao.save(customerPhone); }
@Test(groups = "makePhoneDefaultOnCustomerPhoneController", dependsOnGroups = "createCustomerPhoneFromController") @Transactional public void makePhoneDefaultOnCustomerPhoneController() { Long nonDefaultPhoneId = null; List<CustomerPhone> phones_1 = customerPhoneService.readAllCustomerPhonesByCustomerId(userId); for (CustomerPhone p : phones_1) { if (!p.getPhone().isDefault()) { nonDefaultPhoneId = p.getId(); break; } } request = this.getNewServletInstance(); String view = customerPhoneController.makePhoneDefault(nonDefaultPhoneId, request); assert (view.indexOf("viewPhone") >= 0); List<CustomerPhone> phones = customerPhoneService.readAllCustomerPhonesByCustomerId(userId); for (CustomerPhone p : phones) { if (p.getId() == nonDefaultPhoneId) { assert (p.getPhone().isDefault()); break; } } }
@Override public PaymentRequestDTO populateCustomerInfo(PaymentRequestDTO requestDTO, Customer customer, String defaultEmailAddress) { String phoneNumber = null; for (CustomerPhone phone : ListUtils.emptyIfNull(customer.getCustomerPhones())) { if (phone.getPhone().isDefault()) { phoneNumber = phone.getPhone().getPhoneNumber(); } } String emailAddress = (customer.getEmailAddress() == null)? defaultEmailAddress : customer.getEmailAddress(); return requestDTO.customer() .customerId(customer.getId().toString()) .firstName(customer.getFirstName()) .lastName(customer.getLastName()) .email(emailAddress) .phone(phoneNumber) .done(); } }