【同步】BOOT 和 CLOUD 的功能(PAY 相关功能)

This commit is contained in:
YunaiV
2025-05-11 18:08:17 +08:00
parent d9178edd32
commit 5e2138265f
124 changed files with 2273 additions and 1923 deletions

View File

@@ -311,7 +311,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest {
.thenReturn(mockClient);
// 调用
PayClient client = channelService.getPayClient(id);
PayClient<?> client = channelService.getPayClient(id);
// 断言
assertSame(client, mockClient);
}

View File

@@ -350,7 +350,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
when(channelService.validPayChannel(eq(1L), eq(PayChannelEnum.ALIPAY_APP.getCode())))
.thenReturn(channel);
// mock 方法client
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法()
PayOrderRespDTO unifiedOrderResp = randomPojo(PayOrderRespDTO.class, o ->
@@ -404,7 +404,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
when(channelService.validPayChannel(eq(1L), eq(PayChannelEnum.ALIPAY_APP.getCode())))
.thenReturn(channel);
// mock 方法client
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法(支付渠道的调用)
PayOrderRespDTO unifiedOrderResp = randomPojo(PayOrderRespDTO.class, o -> o.setChannelErrorCode(null).setChannelErrorMsg(null)
@@ -462,7 +462,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
o -> o.setOrderId(id).setStatus(PayOrderStatusEnum.WAITING.getStatus()));
orderExtensionMapper.insert(orderExtension);
// mock 方法PayClient 已支付)
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(orderExtension.getChannelId()))).thenReturn(client);
when(client.getOrder(eq(orderExtension.getNo()))).thenReturn(randomPojo(PayOrderRespDTO.class,
o -> o.setStatus(PayOrderStatusEnum.SUCCESS.getStatus())));
@@ -481,7 +481,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
o -> o.setOrderId(id).setStatus(PayOrderStatusEnum.WAITING.getStatus()));
orderExtensionMapper.insert(orderExtension);
// mock 方法PayClient 已支付)
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(orderExtension.getChannelId()))).thenReturn(client);
when(client.getOrder(eq(orderExtension.getNo()))).thenReturn(randomPojo(PayOrderRespDTO.class,
o -> o.setStatus(PayOrderStatusEnum.WAITING.getStatus())));
@@ -873,7 +873,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
.setCreateTime(LocalDateTime.now()));
orderExtensionMapper.insert(orderExtension);
// mock 方法PayClient
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法PayClient 异常)
when(client.getOrder(any())).thenThrow(new RuntimeException());
@@ -900,7 +900,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
.setCreateTime(LocalDateTime.now()));
orderExtensionMapper.insert(orderExtension);
// mock 方法PayClient
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法PayClient 成功返回)
PayOrderRespDTO respDTO = randomPojo(PayOrderRespDTO.class,
@@ -934,7 +934,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
.setCreateTime(LocalDateTime.now()));
orderExtensionMapper.insert(orderExtension);
// mock 方法PayClient
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法PayClient 成功返回)
PayOrderRespDTO respDTO = randomPojo(PayOrderRespDTO.class,
@@ -965,7 +965,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
.setOrderId(order.getId()));
orderExtensionMapper.insert(orderExtension);
// mock 方法PayClient
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// 调用
@@ -1012,7 +1012,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
.setChannelId(10L));
orderExtensionMapper.insert(orderExtension);
// mock 方法PayClient
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法PayClient 退款返回)
PayOrderRespDTO respDTO = randomPojo(PayOrderRespDTO.class,
@@ -1046,7 +1046,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
.setChannelId(10L));
orderExtensionMapper.insert(orderExtension);
// mock 方法PayClient
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法PayClient 成功返回)
PayOrderRespDTO respDTO = randomPojo(PayOrderRespDTO.class,
@@ -1080,7 +1080,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
.setChannelId(10L));
orderExtensionMapper.insert(orderExtension);
// mock 方法PayClient
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法PayClient 关闭返回)
PayOrderRespDTO respDTO = randomPojo(PayOrderRespDTO.class,

View File

@@ -25,13 +25,13 @@ import cn.iocoder.yudao.module.pay.service.app.PayAppService;
import cn.iocoder.yudao.module.pay.service.channel.PayChannelService;
import cn.iocoder.yudao.module.pay.service.notify.PayNotifyService;
import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.MockedStatic;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import jakarta.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
@@ -215,7 +215,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
when(appService.validPayApp(eq("demo"))).thenReturn(app);
// 调用,并断言异常
assertServiceException(() -> refundService.createPayRefund(reqDTO),
assertServiceException(() -> refundService.createRefund(reqDTO),
PAY_ORDER_NOT_FOUND);
}
@@ -241,7 +241,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
when(orderService.getOrder(eq(1L), eq("100"))).thenReturn(order);
// 调用,并断言异常
assertServiceException(() -> refundService.createPayRefund(reqDTO),
assertServiceException(() -> refundService.createRefund(reqDTO),
PAY_ORDER_REFUND_FAIL_STATUS_ERROR);
}
@@ -260,7 +260,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
when(orderService.getOrder(eq(1L), eq("100"))).thenReturn(order);
// 调用,并断言异常
assertServiceException(() -> refundService.createPayRefund(reqDTO),
assertServiceException(() -> refundService.createRefund(reqDTO),
REFUND_PRICE_EXCEED);
}
@@ -283,7 +283,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
refundMapper.insert(refund);
// 调用,并断言异常
assertServiceException(() -> refundService.createPayRefund(reqDTO),
assertServiceException(() -> refundService.createRefund(reqDTO),
REFUND_PRICE_EXCEED);
}
@@ -307,7 +307,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
when(channelService.validPayChannel(eq(1L))).thenReturn(channel);
// 调用,并断言异常
assertServiceException(() -> refundService.createPayRefund(reqDTO),
assertServiceException(() -> refundService.createRefund(reqDTO),
CHANNEL_NOT_FOUND);
}
@@ -331,7 +331,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
.setCode(PayChannelEnum.ALIPAY_APP.getCode()));
when(channelService.validPayChannel(eq(1L))).thenReturn(channel);
// mock 方法client
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 数据refund 已存在)
PayRefundDO refund = randomPojo(PayRefundDO.class, o ->
@@ -339,7 +339,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
refundMapper.insert(refund);
// 调用,并断言异常
assertServiceException(() -> refundService.createPayRefund(reqDTO),
assertServiceException(() -> refundService.createRefund(reqDTO),
REFUND_EXISTS);
}
@@ -363,13 +363,13 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
.setCode(PayChannelEnum.ALIPAY_APP.getCode()));
when(channelService.validPayChannel(eq(10L))).thenReturn(channel);
// mock 方法client
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法client 调用发生异常)
when(client.unifiedRefund(any(PayRefundUnifiedReqDTO.class))).thenThrow(new RuntimeException());
// 调用
Long refundId = refundService.createPayRefund(reqDTO);
Long refundId = refundService.createRefund(reqDTO);
// 断言
PayRefundDO refundDO = refundMapper.selectById(refundId);
assertPojoEquals(reqDTO, refundDO);
@@ -407,7 +407,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
.setCode(PayChannelEnum.ALIPAY_APP.getCode()));
when(channelService.validPayChannel(eq(10L))).thenReturn(channel);
// mock 方法client
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法client 成功)
PayRefundRespDTO refundRespDTO = randomPojo(PayRefundRespDTO.class);
@@ -422,7 +422,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
}))).thenReturn(refundRespDTO);
// 调用
Long refundId = refundService.createPayRefund(reqDTO);
Long refundId = refundService.createRefund(reqDTO);
// 断言
PayRefundDO refundDO = refundMapper.selectById(refundId);
assertPojoEquals(reqDTO, refundDO);
@@ -664,7 +664,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
.setOrderNo("P110").setNo("R220"));
refundMapper.insert(refund);
// mock 方法client
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法client 返回指定状态)
PayRefundRespDTO respDTO = randomPojo(PayRefundRespDTO.class, o -> o.setStatus(status));
@@ -686,7 +686,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
.setOrderNo("P110").setNo("R220"));
refundMapper.insert(refund);
// mock 方法client
PayClient client = mock(PayClient.class);
PayClient<?> client = mock(PayClient.class);
when(channelService.getPayClient(eq(10L))).thenReturn(client);
// mock 方法client 抛出异常)
when(client.getRefund(eq("P110"), eq("R220"))).thenThrow(new RuntimeException());