| | |
| | | package com.ruoyi.order.util.task; |
| | | |
| | | import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; |
| | | import com.ruoyi.order.service.TCardChargingOrderService; |
| | | import org.junit.jupiter.api.Test; |
| | | import org.springframework.test.util.ReflectionTestUtils; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.Collections; |
| | | import java.util.Date; |
| | | |
| | | import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; |
| | | import static org.junit.jupiter.api.Assertions.assertFalse; |
| | | import static org.junit.jupiter.api.Assertions.assertTrue; |
| | | import static org.mockito.ArgumentMatchers.any; |
| | | import static org.mockito.Mockito.mock; |
| | | import static org.mockito.Mockito.verify; |
| | | import static org.mockito.Mockito.when; |
| | | |
| | | class TaskUtilCompensationTest { |
| | | |
| | |
| | | assertTrue(TaskUtil.shouldFallbackSettle(null, LocalDateTime.now().minusHours(25), false)); |
| | | } |
| | | |
| | | @Test |
| | | void cardCompensationIsolatesDeductRecoveryFailure() { |
| | | TaskUtil taskUtil = new TaskUtil(); |
| | | TCardChargingOrderService cardChargingOrderService = mock(TCardChargingOrderService.class); |
| | | ReflectionTestUtils.setField(taskUtil, "cardChargingOrderService", cardChargingOrderService); |
| | | // 未扣款回退扫描异常不应阻断后续启动超时/活动订单扫描 |
| | | when(cardChargingOrderService.recoverFinishedOrdersWithoutDeduct()) |
| | | .thenThrow(new RuntimeException("account unavailable")); |
| | | when(cardChargingOrderService.listTimeoutStartingOrders()).thenReturn(Collections.emptyList()); |
| | | when(cardChargingOrderService.listTimeoutChargingOrders()).thenReturn(Collections.emptyList()); |
| | | |
| | | assertDoesNotThrow(() -> ReflectionTestUtils.invokeMethod(taskUtil, "compensateCardOrders")); |
| | | |
| | | verify(cardChargingOrderService).recoverFinishedOrdersWithoutDeduct(); |
| | | verify(cardChargingOrderService).listTimeoutStartingOrders(); |
| | | verify(cardChargingOrderService).listTimeoutChargingOrders(); |
| | | } |
| | | |
| | | private UploadRealTimeMonitoringData monitoringData(Date createTime) { |
| | | UploadRealTimeMonitoringData data = new UploadRealTimeMonitoringData(); |
| | | data.setCreate_time(createTime); |