mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
[WLOS-050] 补齐白名单状态修正的单测/集成测试与回归场景
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
package com.jsowell.service;
|
||||
|
||||
import com.jsowell.common.enums.ykc.OrderPayModeEnum;
|
||||
import com.jsowell.common.enums.ykc.OrderStatusEnum;
|
||||
import com.jsowell.pile.domain.OrderBasicInfo;
|
||||
import com.jsowell.pile.service.OrderBasicInfoService;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
class OrderServiceWhitelistCompletionTest {
|
||||
|
||||
private static OrderService newOrderService(OrderBasicInfoService orderBasicInfoService) {
|
||||
OrderService service = new OrderService();
|
||||
setField(service, "orderBasicInfoService", orderBasicInfoService);
|
||||
return service;
|
||||
}
|
||||
|
||||
private static void setField(Object target, String fieldName, Object value) {
|
||||
try {
|
||||
Field field = target.getClass().getDeclaredField(fieldName);
|
||||
field.setAccessible(true);
|
||||
field.set(target, value);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void completeWhitelistOrderIfNeeded_shouldComplete_whenAbnormal() {
|
||||
OrderBasicInfoService orderBasicInfoService = Mockito.mock(OrderBasicInfoService.class);
|
||||
|
||||
OrderBasicInfo orderBasicInfo = new OrderBasicInfo();
|
||||
orderBasicInfo.setOrderCode("O1");
|
||||
orderBasicInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue());
|
||||
orderBasicInfo.setOrderStatus(OrderStatusEnum.ABNORMAL.getValue());
|
||||
orderBasicInfo.setPayAmount(new BigDecimal("10"));
|
||||
|
||||
when(orderBasicInfoService.getOrderInfoByOrderCode("O1")).thenReturn(orderBasicInfo);
|
||||
when(orderBasicInfoService.updateOrderBasicInfo(any(OrderBasicInfo.class))).thenReturn(1);
|
||||
|
||||
OrderService service = newOrderService(orderBasicInfoService);
|
||||
|
||||
boolean updated = service.completeWhitelistOrderIfNeeded("O1");
|
||||
|
||||
assertTrue(updated);
|
||||
assertEquals(OrderStatusEnum.ORDER_COMPLETE.getValue(), orderBasicInfo.getOrderStatus());
|
||||
assertNotNull(orderBasicInfo.getSettlementTime());
|
||||
assertEquals(new BigDecimal("10"), orderBasicInfo.getOrderAmount());
|
||||
assertEquals(new BigDecimal("10"), orderBasicInfo.getVirtualAmount());
|
||||
assertEquals(BigDecimal.ZERO, orderBasicInfo.getSettleAmount());
|
||||
assertEquals(BigDecimal.ZERO, orderBasicInfo.getActualReceivedAmount());
|
||||
|
||||
verify(orderBasicInfoService).updateOrderBasicInfo(orderBasicInfo);
|
||||
verify(orderBasicInfoService).cleanCacheByOrderCode("O1", null);
|
||||
}
|
||||
|
||||
@Test
|
||||
void completeWhitelistOrderIfNeeded_shouldComplete_whenStaySettlement() {
|
||||
OrderBasicInfoService orderBasicInfoService = Mockito.mock(OrderBasicInfoService.class);
|
||||
|
||||
OrderBasicInfo orderBasicInfo = new OrderBasicInfo();
|
||||
orderBasicInfo.setOrderCode("O2");
|
||||
orderBasicInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue());
|
||||
orderBasicInfo.setOrderStatus(OrderStatusEnum.STAY_SETTLEMENT.getValue());
|
||||
|
||||
when(orderBasicInfoService.getOrderInfoByOrderCode("O2")).thenReturn(orderBasicInfo);
|
||||
when(orderBasicInfoService.updateOrderBasicInfo(any(OrderBasicInfo.class))).thenReturn(1);
|
||||
|
||||
OrderService service = newOrderService(orderBasicInfoService);
|
||||
|
||||
boolean updated = service.completeWhitelistOrderIfNeeded("O2");
|
||||
|
||||
assertTrue(updated);
|
||||
assertEquals(OrderStatusEnum.ORDER_COMPLETE.getValue(), orderBasicInfo.getOrderStatus());
|
||||
assertNotNull(orderBasicInfo.getSettlementTime());
|
||||
|
||||
verify(orderBasicInfoService).updateOrderBasicInfo(orderBasicInfo);
|
||||
}
|
||||
|
||||
@Test
|
||||
void completeWhitelistOrderIfNeeded_shouldNoop_whenNotWhitelistPayMode() {
|
||||
OrderBasicInfoService orderBasicInfoService = Mockito.mock(OrderBasicInfoService.class);
|
||||
|
||||
OrderBasicInfo orderBasicInfo = new OrderBasicInfo();
|
||||
orderBasicInfo.setOrderCode("O3");
|
||||
orderBasicInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue());
|
||||
orderBasicInfo.setOrderStatus(OrderStatusEnum.ABNORMAL.getValue());
|
||||
|
||||
when(orderBasicInfoService.getOrderInfoByOrderCode("O3")).thenReturn(orderBasicInfo);
|
||||
|
||||
OrderService service = newOrderService(orderBasicInfoService);
|
||||
|
||||
boolean updated = service.completeWhitelistOrderIfNeeded("O3");
|
||||
|
||||
assertFalse(updated);
|
||||
verify(orderBasicInfoService, never()).updateOrderBasicInfo(any(OrderBasicInfo.class));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user