@Bean public CustomerEditRepository customerEditRepository() { return new CustomerOperationsRepository(customerJpaRepository); } }
@Bean public CustomerRepository customerRepository() { return new CustomerDetailsRepository(customerJpaRepository); }
@Override public void create(final Customer customer) { customerJpaRepository.save(customerEntity(customer)); }
private CustomerEntity customerEntity(final Customer customer) { final long id = customer.getId().getId(); final Name name = name(customer.getName()); return new CustomerEntity(id, name); }
@Test public void shouldUpdateCustomer() throws Exception { customerOperationsRepository.update(customer()); verify(customerJpaRepository, times(1)).save(customerEntity(customer())); }
@Test public void shouldCreateCustomer() throws Exception { customerOperationsRepository.create(customer()); verify(customerJpaRepository, times(1)).save(customerEntity(customer())); }
@Test public void shouldDeleteCustomer() throws Exception { customerOperationsRepository.delete(customer().getId()); verify(customerJpaRepository, times(1)).deleteById(customer().getId().getId()); } }
@Test public void shouldGetCustomers() throws Exception { given(customerJpaRepository.findAll()).willReturn(ImmutableList.of(customerEntity())); final List<Customer> customers = customerDetailsRepository.customers(); assertThat(customers).isNotEmpty(); assertThat(customers).hasSize(1); final Name name = customers.get(0).getName(); assertThat(name.firstName().value()).isEqualTo(customerEntity().getName().getFirstName()); assertThat(name.lastName().value()).isEqualTo(customerEntity().getName().getLastName()); }
@Test public void shouldGetCustomer() throws Exception { given(customerJpaRepository.findById(any(Long.class))).willReturn(Optional.of(customerEntity())); final Customer customer = customerDetailsRepository.customer(Customer.Id.of(123L)); final Name name = customer.getName(); assertThat(name.firstName().value()).isEqualTo(customerEntity().getName().getFirstName()); assertThat(name.lastName().value()).isEqualTo(customerEntity().getName().getLastName()); } }
@Before public void setUp() throws Exception { customerOperationsRepository = new CustomerOperationsRepository(customerJpaRepository); }
@Before public void setUp() throws Exception { customerDetailsRepository = new CustomerDetailsRepository(customerJpaRepository); }
@Override public void update(final Customer customer) { customerJpaRepository.save(customerEntity(customer)); }