| | |
| | | verify(balanceService, never()).credit(8L, new BigDecimal("90.00")); |
| | | } |
| | | |
| | | @Test |
| | | void shouldReverseSettledGuideEarningForRefund() { |
| | | TourOrder order = dueOrder(LocalDateTime.now()); |
| | | order.setSettledAt(LocalDateTime.now()); |
| | | order.setAmount(new BigDecimal("100.00")); |
| | | order.setPaymentAmount(new BigDecimal("100.00")); |
| | | |
| | | service.reverseRefund(order, BigDecimal.ZERO, new BigDecimal("100.00")); |
| | | |
| | | verify(balanceService).debitForRefund(8L, new BigDecimal("90.00")); |
| | | } |
| | | |
| | | @Test |
| | | void shouldReverseOnlyIncrementalAmountForPartialRefund() { |
| | | TourOrder order = dueOrder(LocalDateTime.now()); |
| | | order.setSettledAt(LocalDateTime.now()); |
| | | order.setAmount(new BigDecimal("100.00")); |
| | | order.setPaymentAmount(new BigDecimal("100.00")); |
| | | |
| | | service.reverseRefund(order, new BigDecimal("20.00"), new BigDecimal("50.00")); |
| | | |
| | | verify(balanceService).debitForRefund(8L, new BigDecimal("27.00")); |
| | | } |
| | | |
| | | @Test |
| | | void shouldReverseSettledTeamEarningForRefund() { |
| | | TourOrder order = dueOrder(LocalDateTime.now()); |
| | | order.setSettledAt(LocalDateTime.now()); |
| | | order.setCommissionTeamId(6L); |
| | | order.setAmount(new BigDecimal("100.00")); |
| | | order.setPaymentAmount(new BigDecimal("100.00")); |
| | | |
| | | service.reverseRefund(order, BigDecimal.ZERO, new BigDecimal("100.00")); |
| | | |
| | | verify(balanceService).debitTeamForRefund(6L, new BigDecimal("90.00")); |
| | | } |
| | | |
| | | private TourOrder dueOrder(LocalDateTime dueAt) { |
| | | TourOrder order = new TourOrder(); |
| | | order.setId(10L); |