Commit 1baa7f4aee6ab958961fa804d9adeb10c171045e
1 parent
35c1ba44
优化 AlipayPcPayClientTest 的方法命名,补全 assert 断言
Showing
1 changed file
with
38 additions
and
19 deletions
yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn/iocoder/yudao/framework/pay/core/client/impl/alipay/AlipayPcPayClientTest.java
| ... | ... | @@ -16,8 +16,8 @@ import org.mockito.InjectMocks; |
| 16 | 16 | import static cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum.CLOSED; |
| 17 | 17 | import static cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum.WAITING; |
| 18 | 18 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| 19 | -import static org.junit.jupiter.api.Assertions.assertEquals; | |
| 20 | -import static org.junit.jupiter.api.Assertions.assertSame; | |
| 19 | +import static org.junit.jupiter.api.Assertions.*; | |
| 20 | +import static org.junit.jupiter.api.Assertions.assertNull; | |
| 21 | 21 | import static org.mockito.ArgumentMatchers.argThat; |
| 22 | 22 | import static org.mockito.ArgumentMatchers.eq; |
| 23 | 23 | import static org.mockito.Mockito.when; |
| ... | ... | @@ -39,36 +39,40 @@ public class AlipayPcPayClientTest extends AbstractAlipayClientTest { |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | 41 | @Test |
| 42 | - @DisplayName("支付宝 PC 网站支付 URL Display Mode 下单成功") | |
| 43 | - public void test_unified_order_url_display_mode_success() throws AlipayApiException { | |
| 44 | - // 准备返回对象 | |
| 42 | + @DisplayName("支付宝 PC 网站支付:URL Display Mode 下单成功") | |
| 43 | + public void testUnifiedOrder_urlSuccess() throws AlipayApiException { | |
| 44 | + // mock 方法 | |
| 45 | 45 | String notifyUrl = randomURL(); |
| 46 | 46 | AlipayTradePagePayResponse response = randomPojo(AlipayTradePagePayResponse.class, o -> o.setSubCode("")); |
| 47 | - // mock | |
| 48 | 47 | when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradePagePayRequest>) request -> true), |
| 49 | 48 | eq(Method.GET.name()))).thenReturn(response); |
| 50 | 49 | // 准备请求参数 |
| 51 | 50 | String outTradeNo = randomString(); |
| 52 | 51 | Integer price = randomInteger(); |
| 53 | 52 | PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(notifyUrl, outTradeNo, price); |
| 54 | - // 设置 displayMode 为 null. | |
| 55 | 53 | reqDTO.setDisplayMode(null); |
| 56 | 54 | |
| 55 | + // 调用 | |
| 57 | 56 | PayOrderRespDTO resp = client.unifiedOrder(reqDTO); |
| 58 | 57 | // 断言 |
| 59 | 58 | assertEquals(WAITING.getStatus(), resp.getStatus()); |
| 60 | - assertEquals(PayOrderDisplayModeEnum.URL.getMode(), resp.getDisplayMode()); | |
| 61 | 59 | assertEquals(outTradeNo, resp.getOutTradeNo()); |
| 60 | + assertNull(resp.getChannelOrderNo()); | |
| 61 | + assertNull(resp.getChannelUserId()); | |
| 62 | + assertNull(resp.getSuccessTime()); | |
| 63 | + assertEquals(PayOrderDisplayModeEnum.URL.getMode(), resp.getDisplayMode()); | |
| 64 | + assertEquals(response.getBody(), resp.getDisplayContent()); | |
| 62 | 65 | assertSame(response, resp.getRawData()); |
| 66 | + assertNull(resp.getChannelErrorCode()); | |
| 67 | + assertNull(resp.getChannelErrorMsg()); | |
| 63 | 68 | } |
| 64 | 69 | |
| 65 | 70 | @Test |
| 66 | - @DisplayName("支付宝 PC 网站支付 FORM Display Mode 下单成功") | |
| 67 | - public void test_unified_order_form_display_mode_success() throws AlipayApiException { | |
| 68 | - // 准备返回对象 | |
| 71 | + @DisplayName("支付宝 PC 网站支付:Form Display Mode 下单成功") | |
| 72 | + public void testUnifiedOrder_formSuccess() throws AlipayApiException { | |
| 73 | + // mock | |
| 69 | 74 | String notifyUrl = randomURL(); |
| 70 | 75 | AlipayTradePagePayResponse response = randomPojo(AlipayTradePagePayResponse.class, o -> o.setSubCode("")); |
| 71 | - // mock | |
| 72 | 76 | when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradePagePayRequest>) request -> true), |
| 73 | 77 | eq(Method.POST.name()))).thenReturn(response); |
| 74 | 78 | // 准备请求参数 |
| ... | ... | @@ -77,36 +81,51 @@ public class AlipayPcPayClientTest extends AbstractAlipayClientTest { |
| 77 | 81 | PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(notifyUrl, outTradeNo, price); |
| 78 | 82 | reqDTO.setDisplayMode(PayOrderDisplayModeEnum.FORM.getMode()); |
| 79 | 83 | |
| 84 | + // 调用 | |
| 80 | 85 | PayOrderRespDTO resp = client.unifiedOrder(reqDTO); |
| 81 | 86 | // 断言 |
| 82 | 87 | assertEquals(WAITING.getStatus(), resp.getStatus()); |
| 83 | - assertEquals(PayOrderDisplayModeEnum.FORM.getMode(), resp.getDisplayMode()); | |
| 84 | 88 | assertEquals(outTradeNo, resp.getOutTradeNo()); |
| 89 | + assertNull(resp.getChannelOrderNo()); | |
| 90 | + assertNull(resp.getChannelUserId()); | |
| 91 | + assertNull(resp.getSuccessTime()); | |
| 92 | + assertEquals(PayOrderDisplayModeEnum.FORM.getMode(), resp.getDisplayMode()); | |
| 93 | + assertEquals(response.getBody(), resp.getDisplayContent()); | |
| 85 | 94 | assertSame(response, resp.getRawData()); |
| 95 | + assertNull(resp.getChannelErrorCode()); | |
| 96 | + assertNull(resp.getChannelErrorMsg()); | |
| 86 | 97 | } |
| 87 | 98 | |
| 88 | 99 | @Test |
| 89 | - @DisplayName("支付宝 PC 网站支付,渠道返回失败") | |
| 90 | - public void test_unified_order_channel_failed() throws AlipayApiException { | |
| 91 | - // 准备响应对象 | |
| 100 | + @DisplayName("支付宝 PC 网站支付:渠道返回失败") | |
| 101 | + public void testUnifiedOrder_channelFailed() throws AlipayApiException { | |
| 102 | + // mock | |
| 92 | 103 | String subCode = randomString(); |
| 93 | 104 | String subMsg = randomString(); |
| 94 | 105 | AlipayTradePagePayResponse response = randomPojo(AlipayTradePagePayResponse.class, o -> { |
| 95 | 106 | o.setSubCode(subCode); |
| 96 | 107 | o.setSubMsg(subMsg); |
| 97 | 108 | }); |
| 98 | - // mock | |
| 99 | 109 | when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradePagePayRequest>) request -> true), |
| 100 | 110 | eq(Method.GET.name()))).thenReturn(response); |
| 101 | 111 | // 准备请求参数 |
| 102 | - PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), randomString(), randomInteger()); | |
| 112 | + String outTradeNo = randomString(); | |
| 113 | + PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), outTradeNo, randomInteger()); | |
| 103 | 114 | reqDTO.setDisplayMode(PayOrderDisplayModeEnum.URL.getMode()); |
| 104 | 115 | |
| 116 | + // 调用 | |
| 105 | 117 | PayOrderRespDTO resp = client.unifiedOrder(reqDTO); |
| 106 | 118 | // 断言 |
| 107 | 119 | assertEquals(CLOSED.getStatus(), resp.getStatus()); |
| 120 | + assertEquals(outTradeNo, resp.getOutTradeNo()); | |
| 121 | + assertNull(resp.getChannelOrderNo()); | |
| 122 | + assertNull(resp.getChannelUserId()); | |
| 123 | + assertNull(resp.getSuccessTime()); | |
| 124 | + assertNull(resp.getDisplayMode()); | |
| 125 | + assertNull(resp.getDisplayContent()); | |
| 126 | + assertSame(response, resp.getRawData()); | |
| 108 | 127 | assertEquals(subCode, resp.getChannelErrorCode()); |
| 109 | 128 | assertEquals(subMsg, resp.getChannelErrorMsg()); |
| 110 | - assertSame(response, resp.getRawData()); | |
| 111 | 129 | } |
| 130 | + | |
| 112 | 131 | } | ... | ... |