| | |
| | | private ScenicPricingMapper pricingMapper; |
| | | private GuideUserMapper guideUserMapper; |
| | | private PlatformSettingsService platformSettingsService; |
| | | private GuideOrderMatchingService matchingService; |
| | | private GuideNotificationService notificationService; |
| | | private OrderRefundService orderRefundService; |
| | | private MiniTourOrderCommandService commandService; |
| | | |
| | | @BeforeEach |
| | |
| | | pricingMapper = mock(ScenicPricingMapper.class); |
| | | guideUserMapper = mock(GuideUserMapper.class); |
| | | platformSettingsService = mock(PlatformSettingsService.class); |
| | | matchingService = mock(GuideOrderMatchingService.class); |
| | | notificationService = mock(GuideNotificationService.class); |
| | | orderRefundService = mock(OrderRefundService.class); |
| | | commandService = new MiniTourOrderCommandService( |
| | | orderMapper, miniUserService, scenicSpotMapper, meetingPointMapper, pricingMapper, |
| | | guideUserMapper, platformSettingsService, matchingService, notificationService); |
| | | guideUserMapper, platformSettingsService, notificationService, orderRefundService); |
| | | } |
| | | |
| | | @Test |
| | |
| | | } |
| | | |
| | | @Test |
| | | void confirmPaymentShouldMovePendingOrderToPendingAccept() { |
| | | MiniUser visitor = new MiniUser(); |
| | | visitor.setId(7L); |
| | | when(miniUserService.findEnabledById(7L)).thenReturn(visitor); |
| | | |
| | | TourOrder order = new TourOrder(); |
| | | order.setId(99L); |
| | | order.setOrderNo("MJ202607290001"); |
| | | order.setVisitorId(7L); |
| | | order.setAmount(new BigDecimal("144.00")); |
| | | order.setStatus(OrderStatus.PENDING_PAYMENT.getCode()); |
| | | when(orderMapper.selectOne(any())).thenReturn(order); |
| | | when(orderMapper.selectById(99L)).thenReturn(order); |
| | | |
| | | TourOrderResponse response = commandService.confirmPayment(7L, 99L); |
| | | |
| | | assertThat(order.getStatus()).isEqualTo(OrderStatus.PENDING_ACCEPT.getCode()); |
| | | assertThat(order.getPaymentMethod()).isEqualTo("WECHAT"); |
| | | assertThat(order.getPaymentOrderNo()).isEqualTo("LOCALMJ202607290001"); |
| | | assertThat(order.getPaymentAmount()).isEqualByComparingTo("144.00"); |
| | | assertThat(order.getPaymentTime()).isNotNull(); |
| | | assertThat(response.getStatus()).isEqualTo(OrderStatus.PENDING_ACCEPT.getCode()); |
| | | verify(orderMapper).updateById(order); |
| | | } |
| | | |
| | | @Test |
| | | void createShouldRejectVisitorWithUnfinishedOrder() { |
| | | MiniUser visitor = new MiniUser(); |
| | | visitor.setId(7L); |
| | |
| | | order.setStatus(OrderStatus.PENDING_MEETING.getCode()); |
| | | order.setPaymentTime(LocalDateTime.now()); |
| | | order.setPaymentAmount(new BigDecimal("36.00")); |
| | | when(orderMapper.selectOne(any())).thenReturn(order); |
| | | when(orderMapper.selectForUpdate(99L)).thenReturn(order); |
| | | |
| | | commandService.cancel(7L, 99L); |
| | | |
| | | assertThat(order.getStatus()).isEqualTo(OrderStatus.CANCELLED.getCode()); |
| | | verify(orderMapper).updateById(order); |
| | | verify(notificationService).notifyOrderCancelled(order); |
| | | verify(orderRefundService).requestRefund(order); |
| | | verify(notificationService).notifyVisitorCancelledOrder(order); |
| | | } |
| | | } |