feat: v2 单元测试

main
13009 2024-06-21 16:05:08 +08:00
parent d504028374
commit 73a070bc6e
7 changed files with 34 additions and 254 deletions

View File

@ -89,21 +89,6 @@ public class PayService {
return httpResponse.getServiceResponse();
}
/**
*
*
* @param transferSelfAccRequest TransferSelfAccRequest
* @return TransferSelfAccResponse
*/
@Deprecated
public TransferSelfAccResponse transferSelfAcc(TransferSelfAccRequest transferSelfAccRequest) {
String url = "/zzTrade/transferSelfAcc";
HttpHeaders headers = new HttpHeaders();
headers.addHeader(API_VERSION, V_2);
HttpResponse<TransferSelfAccResponse> httpResponse = apiClient.post(url, headers, transferSelfAccRequest.toJsonRequest(), TransferSelfAccResponse.class);
return httpResponse.getServiceResponse();
}
/**
*
*
@ -118,7 +103,6 @@ public class PayService {
return httpResponse.getServiceResponse();
}
/**
*
*

View File

@ -1,80 +0,0 @@
package com.czcb.scfs.api.service.v2.pay.model;
import com.czcb.scfs.api.core.ApiRequest;
import com.czcb.scfs.api.core.agrs.TransType;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
*
*
* @author wangwei
* @since 2.0.0
*/
@Data
@Accessors(chain = true)
@TransType("100098")
public class TransferSelfAccRequest implements ApiRequest {
/**
*
*/
@SerializedName("channel_no")
private String channelNo;
/**
*
*/
@SerializedName("app_no")
private String appNo;
/**
*
*/
@SerializedName("serial_no")
private String serialNo;
/**
* A2
*/
@SerializedName("account_no")
private String accountNo;
/**
* A1
*/
@SerializedName("opp_account_no")
private String oppAccountNo;
/**
*
*/
@SerializedName("opp_account_name")
private String oppAccountName;
/**
*
*/
@SerializedName("trans_amount")
private BigDecimal transAmount;
/**
*
*/
@SerializedName("trans_summary")
private String transSummary;
/**
*
*/
@SerializedName("trans_date")
private String transDate;
/**
*
*/
@SerializedName("trans_tradetime")
private String transTradeTime;
}

View File

@ -1,51 +0,0 @@
package com.czcb.scfs.api.service.v2.pay.model;
import com.czcb.scfs.api.core.ApiResponse;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.experimental.Accessors;
/**
*
*
* @author wangwei
* @since 2.0.0
*/
@Data
@Accessors(chain = true)
public class TransferSelfAccResponse implements ApiResponse {
/**
* 000000
*/
@SerializedName("recode")
private String recode;
/**
*
*/
@SerializedName("recode_info")
private String recodeInfo;
/**
*
*/
@SerializedName("sys_serial_no")
private String sysSerialNo;
/**
*
*/
@SerializedName("original_serialno")
private String originalSerialNo;
/**
* YYYY-MM-DD
*/
@SerializedName("sys_date")
private String sysDate;
/**
* YYYY-MM-DD hh:mm:ss
*/
@SerializedName("sys_time")
private String sysTime;
}

View File

@ -11,7 +11,6 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockserver.client.MockServerClient;
import org.mockserver.junit.jupiter.MockServerExtension;
import org.mockserver.junit.jupiter.MockServerSettings;
@ -23,9 +22,6 @@ import static org.mockserver.model.HttpRequest.request;
class EchoServiceTest {
private MockServerClient client;
@InjectMocks
private EchoService service;
@BeforeEach
public void beforeEachLifecyleMethod(MockServerClient client) {
this.client = client;

View File

@ -39,7 +39,7 @@ class PayServiceTest {
extractedMerWithdrawResponseParams(response);
extractedMerWithdrawResponseAssertions(response);
String responseJson= Json.toJson(response);
String responseJson = Json.toJson(response);
Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"serial_no\":\"setSerialNo\",\"account_no\":\"setAccountNo\",\"account_name\":\"setAccountName\",\"original_tradeno\":\"setOriginalTradeNo\",\"original_serialno\":\"setOriginalSerialNo\",\"trans_amount\":100.0,\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson);
HttpResponse<MerWithdrawResponse> httpResponse = TestHttpResponse.create("/mer-trade/v2/withdraw", response, MerWithdrawResponse.class);
@ -135,7 +135,7 @@ class PayServiceTest {
extractedMerWithdrawForPlatformResponseParams(response);
extractedMerWithdrawForPlatformResponseAssertions(response);
String responseJson= Json.toJson(response);
String responseJson = Json.toJson(response);
Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"account_no\":\"setAccountNo\",\"account_name\":\"setAccountName\",\"original_tradeno\":\"setOriginalTradeNo\",\"original_serialno\":\"setOriginalSerialNo\",\"serial_no\":\"setSerialNo\",\"trans_amount\":100.0,\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson);
HttpResponse<MerWithdrawForPlatformResponse> httpResponse = TestHttpResponse.create("/mer-trade/v2/withdraw-for-platform", response, MerWithdrawForPlatformResponse.class);
@ -469,80 +469,6 @@ class PayServiceTest {
Assertions.assertEquals("setOriginalSerialNo", response.getOriginalSerialNo());
}
@Test
void transferSelfAccTest() {
TransferSelfAccRequest request = new TransferSelfAccRequest();
extractedTransferSelfAccRequestParams(request);
extractedTransferSelfAccRequestAssertions(request);
String requestJson = Json.toJson(request);
Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"account_no\":\"setAccountNo\",\"opp_account_no\":\"setOppAccountNo\",\"opp_account_name\":\"setOppAccountName\",\"trans_amount\":100.0,\"trans_summary\":\"setTransSummary\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\"}", requestJson);
TransferSelfAccResponse response = new TransferSelfAccResponse();
extractedTransferSelfAccResponseParams(response);
extractedTransferSelfAccResponseAssertions(response);
String responseJson = Json.toJson(response);
Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"original_serialno\":\"setOriginalSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson);
HttpResponse<TransferSelfAccResponse> httpResponse = TestHttpResponse.create("/zzTrade/transferSelfAcc", response, TransferSelfAccResponse.class);
Mockito.when(apiClient.post(
Mockito.eq("/zzTrade/transferSelfAcc"),
Mockito.any(HttpHeaders.class),
Mockito.any(RequestBody.class),
Mockito.eq(TransferSelfAccResponse.class)))
.thenReturn(httpResponse);
TransferSelfAccResponse result = service.transferSelfAcc(request);
String resultJson = Json.toJson(result);
Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"original_serialno\":\"setOriginalSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson);
}
void extractedTransferSelfAccRequestParams(TransferSelfAccRequest request) {
request.setSerialNo("setSerialNo");
request.setAppNo("setAppNo");
request.setChannelNo("setChannelNo");
request.setAccountNo("setAccountNo");
request.setTransDate("setTransDate");
request.setTransSummary("setTransSummary");
request.setTransAmount(BigDecimal.valueOf(100.00));
request.setOppAccountNo("setOppAccountNo");
request.setTransTradeTime("setTransTradeTime");
request.setOppAccountName("setOppAccountName");
}
void extractedTransferSelfAccRequestAssertions(TransferSelfAccRequest request) {
Assertions.assertEquals("setSerialNo", request.getSerialNo());
Assertions.assertEquals("setAppNo", request.getAppNo());
Assertions.assertEquals("setChannelNo", request.getChannelNo());
Assertions.assertEquals("setAccountNo", request.getAccountNo());
Assertions.assertEquals("setTransDate", request.getTransDate());
Assertions.assertEquals("setTransSummary", request.getTransSummary());
Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getTransAmount());
Assertions.assertEquals("setOppAccountNo", request.getOppAccountNo());
Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime());
Assertions.assertEquals("setOppAccountName", request.getOppAccountName());
}
void extractedTransferSelfAccResponseParams(TransferSelfAccResponse response) {
response.setSysDate("setSysDate");
response.setRecode("setRecode");
response.setSysSerialNo("setSysSerialNo");
response.setSysTime("setSysTime");
response.setRecodeInfo("setRecodeInfo");
response.setOriginalSerialNo("setOriginalSerialNo");
}
void extractedTransferSelfAccResponseAssertions(TransferSelfAccResponse response) {
Assertions.assertEquals("setSysDate", response.getSysDate());
Assertions.assertEquals("setRecode", response.getRecode());
Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo());
Assertions.assertEquals("setSysTime", response.getSysTime());
Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo());
Assertions.assertEquals("setOriginalSerialNo", response.getOriginalSerialNo());
}
@Test
void insureTest() {
EarnestInsureRequest request = new EarnestInsureRequest();

View File

@ -11,6 +11,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static java.lang.System.out;
@UtilityClass
public class RefGenTestMethod {
private static final String FMT_TEST = "@Test \nvoid %sTest() {\n";
@ -54,10 +56,10 @@ public class RefGenTestMethod {
Class<?> actualType = Class.forName(type.getActualTypeArguments()[0].getTypeName());
list.add(actualType);
String sun = actualType.getSimpleName();
print("\t%s.%s %s = new %s.%s();\n", request.getSimpleName(), actualType.getSimpleName(), sun.toLowerCase(), request.getSimpleName(), actualType.getSimpleName());
print("\textracted%s%sNestParams(%s);\n", request.getSimpleName(), actualType.getSimpleName(), sun.toLowerCase());
print("\trequest.%s(Lists.list(%s));\n", method.getName(), sun.toLowerCase());
String lowerCase = actualType.getSimpleName().toLowerCase();
print("\t%s.%s %s = new %s.%s();\n", request.getSimpleName(), actualType.getSimpleName(), lowerCase, request.getSimpleName(), actualType.getSimpleName());
print("\textracted%s%sNestParams(%s);\n", request.getSimpleName(), actualType.getSimpleName(), lowerCase);
print("\trequest.%s(Lists.list(%s));\n", method.getName(), lowerCase);
} else {
printParams(FMT_REQUEST_METHOD, method);
}
@ -74,7 +76,6 @@ public class RefGenTestMethod {
private static void genRequestAssertions(Class<?> request) {
print("void extracted%sAssertions(%s request) {\n", request.getSimpleName(), request.getSimpleName());
Set<Class<?>> list = new HashSet<>();
Method[] methods = request.getMethods();
for (Method method : methods) {
if (!method.getName().startsWith("set")) {
@ -84,12 +85,11 @@ public class RefGenTestMethod {
if (method.getParameterTypes()[0].isAssignableFrom(List.class)) {
ParameterizedType type = (ParameterizedType) method.getGenericParameterTypes()[0];
Class<?> actualType = Class.forName(type.getActualTypeArguments()[0].getTypeName());
list.add(actualType);
String sun = actualType.getSimpleName();
print("\tfor (%s.%s %s : request.%s()) {\n", request.getSimpleName(), actualType.getSimpleName(), sun.toLowerCase(), method.getName().replace("set", "get"));
print("\t\textracted%s%sNestAssertions(%s);\n", request.getSimpleName(), actualType.getSimpleName(), sun.toLowerCase());
print("\t}\n", method.getName(), sun.toLowerCase());
String lowerCase = actualType.getSimpleName().toLowerCase();
print("\tfor (%s.%s %s : request.%s()) {\n", request.getSimpleName(), actualType.getSimpleName(), lowerCase, method.getName().replace("set", "get"));
print("\t\textracted%s%sNestAssertions(%s);\n", request.getSimpleName(), actualType.getSimpleName(), lowerCase);
print("\t}\n", method.getName(), lowerCase);
} else {
printAssertions(FMT_REQUEST_ASSERTIONS, method, true);
}
@ -112,10 +112,10 @@ public class RefGenTestMethod {
Class<?> actualType = Class.forName(type.getActualTypeArguments()[0].getTypeName());
list.add(actualType);
String sun = actualType.getSimpleName();
print("\t%s.%s %s = new %s.%s();\n", response.getSimpleName(), actualType.getSimpleName(), sun.toLowerCase(), response.getSimpleName(), actualType.getSimpleName());
print("\textracted%s%sNestParams(%s);\n", response.getSimpleName(), actualType.getSimpleName(), sun.toLowerCase());
print("\tresponse.%s(Lists.list(%s));\n", method.getName(), sun.toLowerCase());
String lowerCase = actualType.getSimpleName().toLowerCase();
print("\t%s.%s %s = new %s.%s();\n", response.getSimpleName(), actualType.getSimpleName(), lowerCase, response.getSimpleName(), actualType.getSimpleName());
print("\textracted%s%sNestParams(%s);\n", response.getSimpleName(), actualType.getSimpleName(), lowerCase);
print("\tresponse.%s(Lists.list(%s));\n", method.getName(), lowerCase);
} else {
printParams(FMT_RESPONSE_METHOD, method);
}
@ -131,7 +131,6 @@ public class RefGenTestMethod {
private static void genResponseAssertions(Class<?> response) {
print("void extracted%sAssertions(%s response) {\n", response.getSimpleName(), response.getSimpleName());
Set<Class<?>> list = new HashSet<>();
Method[] methods = response.getMethods();
for (Method method : methods) {
if (!method.getName().startsWith("set")) {
@ -140,12 +139,11 @@ public class RefGenTestMethod {
if (method.getParameterTypes()[0].isAssignableFrom(List.class)) {
ParameterizedType type = (ParameterizedType) method.getGenericParameterTypes()[0];
Class<?> actualType = Class.forName(type.getActualTypeArguments()[0].getTypeName());
list.add(actualType);
String sun = actualType.getSimpleName();
print("\tfor (%s.%s %s : response.%s()) {\n", response.getSimpleName(), actualType.getSimpleName(), sun.toLowerCase(), method.getName().replace("set", "get"));
print("\t\textracted%s%sNestAssertions(%s);\n", response.getSimpleName(), actualType.getSimpleName(), sun.toLowerCase());
print("\t}\n", method.getName(), sun.toLowerCase());
String lowerCase = actualType.getSimpleName().toLowerCase();
print("\tfor (%s.%s %s : response.%s()) {\n", response.getSimpleName(), actualType.getSimpleName(), lowerCase, method.getName().replace("set", "get"));
print("\t\textracted%s%sNestAssertions(%s);\n", response.getSimpleName(), actualType.getSimpleName(), lowerCase);
print("\t}\n", method.getName(), lowerCase);
} else {
printAssertions(FMT_RESPONSE_ASSERTIONS, method, false);
}
@ -211,7 +209,7 @@ public class RefGenTestMethod {
}
private static void print(String format, Object... args) {
System.out.printf(format, args);
out.printf(format, args);
}
private static void printParams(String fmt, Method method) {

View File

@ -6,26 +6,33 @@ import com.czcb.scfs.api.service.v2.trans.model.QueryTradeDetailsHistoryRequest;
import com.czcb.scfs.api.service.v2.trans.model.QueryTradeDetailsHistoryResponse;
import com.czcb.scfs.api.service.v2.trans.model.QueryTradeDetailsRequest;
import com.czcb.scfs.api.service.v2.trans.model.QueryTradeDetailsResponse;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
class RefGenTestMethodTest {
@Test
void gen() {
Assertions.assertDoesNotThrow(() -> {
RefGenTestMethod.gen(QueryTradeDetailsHistoryRequest.class, QueryTradeDetailsHistoryResponse.class,
"queryHistory", "/trade-details/v2/query-history");
RefGenTestMethod.gen(QueryTradeDetailsRequest.class, QueryTradeDetailsResponse.class,
"queryTradeDetails", "/trade-details/v2/query");
});
}
@Test
void genServiceTest() {
Assertions.assertDoesNotThrow(() -> {
RefGenTestMethod.genService(AccountService.class);
});
}
@Test
void genServiceNestTest() {
Assertions.assertDoesNotThrow(() -> {
RefGenTestMethod.genNest(EntPayAgrtQueryListResponse.class, EntPayAgrtQueryListResponse.RecodeList.class);
});
}
}