优化 AlipayPcPayClientTest 的方法命名,补全 assert 断言

This commit is contained in:
YunaiV 2023-08-27 16:33:19 +08:00
parent 35c1ba44d3
commit 1baa7f4aee

View File

@ -16,8 +16,8 @@ import org.mockito.InjectMocks;
import static cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum.CLOSED; import static cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum.CLOSED;
import static cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum.WAITING; import static cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum.WAITING;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertSame; import static org.junit.jupiter.api.Assertions.assertNull;
import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@ -39,36 +39,40 @@ public class AlipayPcPayClientTest extends AbstractAlipayClientTest {
} }
@Test @Test
@DisplayName("支付宝 PC 网站支付 URL Display Mode 下单成功") @DisplayName("支付宝 PC 网站支付URL Display Mode 下单成功")
public void test_unified_order_url_display_mode_success() throws AlipayApiException { public void testUnifiedOrder_urlSuccess() throws AlipayApiException {
// 准备返回对象 // mock 方法
String notifyUrl = randomURL(); String notifyUrl = randomURL();
AlipayTradePagePayResponse response = randomPojo(AlipayTradePagePayResponse.class, o -> o.setSubCode("")); AlipayTradePagePayResponse response = randomPojo(AlipayTradePagePayResponse.class, o -> o.setSubCode(""));
// mock
when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradePagePayRequest>) request -> true), when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradePagePayRequest>) request -> true),
eq(Method.GET.name()))).thenReturn(response); eq(Method.GET.name()))).thenReturn(response);
// 准备请求参数 // 准备请求参数
String outTradeNo = randomString(); String outTradeNo = randomString();
Integer price = randomInteger(); Integer price = randomInteger();
PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(notifyUrl, outTradeNo, price); PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(notifyUrl, outTradeNo, price);
// 设置 displayMode null.
reqDTO.setDisplayMode(null); reqDTO.setDisplayMode(null);
// 调用
PayOrderRespDTO resp = client.unifiedOrder(reqDTO); PayOrderRespDTO resp = client.unifiedOrder(reqDTO);
// 断言 // 断言
assertEquals(WAITING.getStatus(), resp.getStatus()); assertEquals(WAITING.getStatus(), resp.getStatus());
assertEquals(PayOrderDisplayModeEnum.URL.getMode(), resp.getDisplayMode());
assertEquals(outTradeNo, resp.getOutTradeNo()); assertEquals(outTradeNo, resp.getOutTradeNo());
assertNull(resp.getChannelOrderNo());
assertNull(resp.getChannelUserId());
assertNull(resp.getSuccessTime());
assertEquals(PayOrderDisplayModeEnum.URL.getMode(), resp.getDisplayMode());
assertEquals(response.getBody(), resp.getDisplayContent());
assertSame(response, resp.getRawData()); assertSame(response, resp.getRawData());
assertNull(resp.getChannelErrorCode());
assertNull(resp.getChannelErrorMsg());
} }
@Test @Test
@DisplayName("支付宝 PC 网站支付 FORM Display Mode 下单成功") @DisplayName("支付宝 PC 网站支付Form Display Mode 下单成功")
public void test_unified_order_form_display_mode_success() throws AlipayApiException { public void testUnifiedOrder_formSuccess() throws AlipayApiException {
// 准备返回对象 // mock
String notifyUrl = randomURL(); String notifyUrl = randomURL();
AlipayTradePagePayResponse response = randomPojo(AlipayTradePagePayResponse.class, o -> o.setSubCode("")); AlipayTradePagePayResponse response = randomPojo(AlipayTradePagePayResponse.class, o -> o.setSubCode(""));
// mock
when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradePagePayRequest>) request -> true), when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradePagePayRequest>) request -> true),
eq(Method.POST.name()))).thenReturn(response); eq(Method.POST.name()))).thenReturn(response);
// 准备请求参数 // 准备请求参数
@ -77,36 +81,51 @@ public class AlipayPcPayClientTest extends AbstractAlipayClientTest {
PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(notifyUrl, outTradeNo, price); PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(notifyUrl, outTradeNo, price);
reqDTO.setDisplayMode(PayOrderDisplayModeEnum.FORM.getMode()); reqDTO.setDisplayMode(PayOrderDisplayModeEnum.FORM.getMode());
// 调用
PayOrderRespDTO resp = client.unifiedOrder(reqDTO); PayOrderRespDTO resp = client.unifiedOrder(reqDTO);
// 断言 // 断言
assertEquals(WAITING.getStatus(), resp.getStatus()); assertEquals(WAITING.getStatus(), resp.getStatus());
assertEquals(PayOrderDisplayModeEnum.FORM.getMode(), resp.getDisplayMode());
assertEquals(outTradeNo, resp.getOutTradeNo()); assertEquals(outTradeNo, resp.getOutTradeNo());
assertNull(resp.getChannelOrderNo());
assertNull(resp.getChannelUserId());
assertNull(resp.getSuccessTime());
assertEquals(PayOrderDisplayModeEnum.FORM.getMode(), resp.getDisplayMode());
assertEquals(response.getBody(), resp.getDisplayContent());
assertSame(response, resp.getRawData()); assertSame(response, resp.getRawData());
assertNull(resp.getChannelErrorCode());
assertNull(resp.getChannelErrorMsg());
} }
@Test @Test
@DisplayName("支付宝 PC 网站支付,渠道返回失败") @DisplayName("支付宝 PC 网站支付渠道返回失败")
public void test_unified_order_channel_failed() throws AlipayApiException { public void testUnifiedOrder_channelFailed() throws AlipayApiException {
// 准备响应对象 // mock
String subCode = randomString(); String subCode = randomString();
String subMsg = randomString(); String subMsg = randomString();
AlipayTradePagePayResponse response = randomPojo(AlipayTradePagePayResponse.class, o -> { AlipayTradePagePayResponse response = randomPojo(AlipayTradePagePayResponse.class, o -> {
o.setSubCode(subCode); o.setSubCode(subCode);
o.setSubMsg(subMsg); o.setSubMsg(subMsg);
}); });
// mock
when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradePagePayRequest>) request -> true), when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradePagePayRequest>) request -> true),
eq(Method.GET.name()))).thenReturn(response); eq(Method.GET.name()))).thenReturn(response);
// 准备请求参数 // 准备请求参数
PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), randomString(), randomInteger()); String outTradeNo = randomString();
PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), outTradeNo, randomInteger());
reqDTO.setDisplayMode(PayOrderDisplayModeEnum.URL.getMode()); reqDTO.setDisplayMode(PayOrderDisplayModeEnum.URL.getMode());
// 调用
PayOrderRespDTO resp = client.unifiedOrder(reqDTO); PayOrderRespDTO resp = client.unifiedOrder(reqDTO);
// 断言 // 断言
assertEquals(CLOSED.getStatus(), resp.getStatus()); assertEquals(CLOSED.getStatus(), resp.getStatus());
assertEquals(outTradeNo, resp.getOutTradeNo());
assertNull(resp.getChannelOrderNo());
assertNull(resp.getChannelUserId());
assertNull(resp.getSuccessTime());
assertNull(resp.getDisplayMode());
assertNull(resp.getDisplayContent());
assertSame(response, resp.getRawData());
assertEquals(subCode, resp.getChannelErrorCode()); assertEquals(subCode, resp.getChannelErrorCode());
assertEquals(subMsg, resp.getChannelErrorMsg()); assertEquals(subMsg, resp.getChannelErrorMsg());
assertSame(response, resp.getRawData());
} }
} }