public Objective(String name, Percentage allocation) { this(name, allocation, Money.zero(EUR)); }
public Objective(String name, Percentage allocation) { this(name, allocation, Money.zero(EUR)); }
public Money calculatePaybackFor(Account account, Purchase purchase) { if (paybackPolicy.isEligible(account, purchase)) { return purchase.getAmount().multipliedBy(payback.asBigDecimal(), HALF_EVEN); } else { return Money.zero(EUR); } }
public Money calculatePaybackFor(Account account, Purchase purchase) { if (paybackPolicy.isEligible(account, purchase)) { return purchase.getAmount().multipliedBy(payback.asBigDecimal(), HALF_EVEN); } else { return Money.zero(EUR); } }
public Money calculatePaybackFor(Account account, Purchase purchase) { if (paybackPolicy.isEligible(account, purchase)) { return purchase.getAmount().multipliedBy(payback.asBigDecimal(), HALF_EVEN); } else { return Money.zero(EUR); } }
public Money calculatePaybackFor(Account account, Purchase purchase) { if (paybackPolicy.isEligible(account, purchase)) { return purchase.getAmount().multipliedBy(payback.asBigDecimal(), HALF_EVEN); } else { return Money.zero(EUR); } }
@Test public void shouldReturnZeroIfNotEligible() { when(paybackPolicy.isEligible(any(Account.class), any(Purchase.class))).thenReturn(FALSE); Money payback = merchant.calculatePaybackFor(account(), purchase()); assertThat(payback).isEqualTo(Money.zero(EUR)); } }
@Test public void shouldReturnZeroIfNotEligible() { when(paybackPolicy.isEligible(any(Account.class), any(Purchase.class))).thenReturn(FALSE); Money payback = merchant.calculatePaybackFor(account(), purchase()); assertThat(payback).isEqualTo(Money.zero(EUR)); } }
@Test public void shouldReturnZeroIfNotEligible() { when(paybackPolicy.isEligible(account, purchase)).thenReturn(FALSE); Money payback = merchant.calculatePaybackFor(account, purchase); assertThat(payback).isEqualTo(Money.zero(EUR)); } }
@Test public void shouldReturnZeroIfNotEligible() { when(paybackPolicy.isEligible(account, purchase)).thenReturn(FALSE); Money payback = merchant.calculatePaybackFor(account, purchase); assertThat(payback).isEqualTo(Money.zero(EUR)); } }
@Test public void shouldReturnZeroIfNotEligible() { when(paybackPolicy.isEligible(any(Account.class), any(Purchase.class))).thenReturn(FALSE); Money payback = merchant.calculatePaybackFor(account(), purchase()); assertThat(payback).isEqualTo(Money.zero(EUR)); } }
@Test public void shouldReturnZeroIfNotEligible() { when(paybackPolicy.isEligible(any(Account.class), any(Purchase.class))).thenReturn(FALSE); Money payback = merchant.calculatePaybackFor(account(), purchase()); assertThat(payback).isEqualTo(Money.zero(EUR)); } }
@Test public void shouldReturnZeroIfNotEligible() { when(paybackPolicy.isEligible(any(Account.class), any(Purchase.class))).thenReturn(FALSE); Money payback = merchant.calculatePaybackFor(account(), purchase()); assertThat(payback).isEqualTo(Money.zero(EUR)); } }
@Test public void shouldRegisterPaybackInTransaction() throws Exception { doThrow(new RuntimeException("DB error!")) .when(paybackRepository).save(any(AccountIncome.class), any(Purchase.class)); catchException(bookKeeper, RuntimeException.class).registerPaybackFor(purchase()); assertThat(caughtException()).isNotNull(); assertThat(paybackRepository.findByAccountNumber(accountNumber)).isEmpty(); for (Objective objective : accountRepository.findByCreditCardsNumber(creditCardNumber).getObjectives()) { assertThat(objective.getSavings()).isEqualTo(Money.zero(EUR)); } } }
@Test public void shouldRegisterPaybackInTransaction() throws Exception { doThrow(new RuntimeException("DB error!")) .when(paybackRepository).save(any(AccountIncome.class), any(Purchase.class)); catchException(bookKeeper, RuntimeException.class).registerPaybackFor(purchase); assertThat(caughtException()).isNotNull(); assertThat(paybackRepository.findAllByAccountNumber(accountNumber)).isEmpty(); for (Objective objective : accountRepository.findByCreditCard(creditCardNumber).getObjectives()) { assertThat(objective.getSavings()).isEqualTo(Money.zero(EUR)); } } }
@Test public void shouldRegisterPaybackInTransaction() throws Exception { doThrow(new RuntimeException("DB error!")) .when(paybackRepository).save(any(AccountIncome.class), any(Purchase.class)); catchException(bookKeeper, RuntimeException.class).registerPaybackFor(purchase()); assertThat(caughtException()).isNotNull(); assertThat(paybackRepository.findAllByAccountNumber(accountNumber)).isEmpty(); for (Objective objective : accountRepository.findByCreditCard(creditCardNumber).getObjectives()) { assertThat(objective.getSavings()).isEqualTo(Money.zero(EUR)); } } }
@Test public void shouldRegisterPaybackInTransaction() throws Exception { doThrow(new RuntimeException("DB error!")) .when(paybackRepository).save(any(AccountIncome.class), any(Purchase.class)); catchException(bookKeeper, RuntimeException.class).registerPaybackFor(purchase); assertThat(caughtException()).isNotNull(); assertThat(paybackRepository.findAllByAccountNumber(accountNumber)).isEmpty(); for (Objective objective : accountRepository.findByCreditCard(creditCardNumber).getObjectives()) { assertThat(objective.getSavings()).isEqualTo(Money.zero(EUR)); } } }
@Test public void shouldRegisterPaybackInTransaction() throws Exception { doThrow(new RuntimeException("DB error!")) .when(paybackRepository).save(any(AccountIncome.class), any(Purchase.class)); catchException(bookKeeper, RuntimeException.class).registerPaybackFor(purchase()); assertThat(caughtException()).isNotNull(); assertThat(paybackRepository.findByAccountNumber(accountNumber)).isEmpty(); for (Objective objective : accountRepository.findByCreditCardsNumber(creditCardNumber).getObjectives()) { assertThat(objective.getSavings()).isEqualTo(Money.zero(EUR)); } } }
@Test public void shouldRegisterPaybackInTransaction() throws Exception { doThrow(new RuntimeException("DB error!")) .when(paybackRepository).save(any(AccountIncome.class), any(Purchase.class)); catchException(bookKeeper, RuntimeException.class).registerPaybackFor(purchase()); assertThat(caughtException()).isNotNull(); assertThat(paybackRepository.findByAccountNumber(accountNumber)).isEmpty(); for (Objective objective : accountRepository.findByCreditCardsNumber(creditCardNumber).getObjectives()) { assertThat(objective.getSavings()).isEqualTo(Money.zero(EUR)); } } }
@Test public void shouldRegisterPaybackInTransaction() throws Exception { doThrow(new RuntimeException("DB error!")) .when(paybackRepository).save(any(AccountIncome.class), any(Purchase.class)); catchException(bookKeeper, RuntimeException.class).registerPaybackFor(purchase()); assertThat(caughtException()).isNotNull(); assertThat(paybackRepository.findByAccountNumber(accountNumber)).isEmpty(); for (Objective objective : accountRepository.findByCreditCardsNumber(creditCardNumber).getObjectives()) { assertThat(objective.getSavings()).isEqualTo(Money.zero(EUR)); } } }