ref: v2 model

main
13009 2024-04-18 19:01:53 +08:00
parent 4868fe25f5
commit 0ae63b846b
6 changed files with 180 additions and 4 deletions

12
pom.xml
View File

@ -54,6 +54,18 @@
<version>4.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>

View File

@ -26,6 +26,7 @@ public class AccountService {
* @param openAccSubRequest OpenAccSubRequest
* @return OpenAccSubResponse
*/
@Deprecated
public OpenAccSubResponse openAccSub(OpenAccSubRequest openAccSubRequest) {
String url = "/accInfo/openAccSub";
HttpHeaders headers = new HttpHeaders();

View File

@ -0,0 +1,27 @@
package com.czcb.scfs.api.service;
import com.czcb.scfs.api.core.ApiResponse;
import com.czcb.scfs.api.core.http.HttpMethod;
import com.czcb.scfs.api.core.http.HttpRequest;
import com.czcb.scfs.api.core.http.HttpResponse;
import com.czcb.scfs.api.core.http.OriginalResponse;
/**
* @author wangwei
* @date 2024/4/18
*/
public class TestHttpResponse {
public static <T> HttpResponse<T> create(String url, ApiResponse apiResponse, Class<T> responseType) {
return new HttpResponse.Builder<T>()
.serviceResponseType(responseType)
.originalResponse(new OriginalResponse.Builder()
.request(new HttpRequest.Builder()
.url(url)
.httpMethod(HttpMethod.POST)
.build())
.body(apiResponse.toJsonResponse().getBody())
.build())
.build();
}
}

View File

@ -1,4 +0,0 @@
//package com.czcb.scfs.api.service.sms;
//
//class SmsServiceTest {
//}

View File

@ -0,0 +1,61 @@
package com.czcb.scfs.api.service.v2.account;
import com.czcb.scfs.api.core.ApiClient;
import com.czcb.scfs.api.core.http.HttpHeaders;
import com.czcb.scfs.api.core.http.HttpResponse;
import com.czcb.scfs.api.core.http.RequestBody;
import com.czcb.scfs.api.core.util.Json;
import com.czcb.scfs.api.service.TestHttpResponse;
import com.czcb.scfs.api.service.v2.account.model.ClosedAccRequest;
import com.czcb.scfs.api.service.v2.account.model.ClosedAccResponse;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
@ExtendWith(MockitoExtension.class)
class AccountServiceTest {
@InjectMocks
private AccountService service;
@Mock
private ApiClient apiClient;
@Test
void closedAcc() {
ClosedAccRequest request = new ClosedAccRequest();
request.setChannelNo("setChannelNo");
request.setAppNo("setAppNo");
request.setAccountNo("setAccountNo");
request.setSerialNo("setSerialNo");
request.setTradeNo("setTradeNo");
request.setVerifyCode("setVerifyCode");
request.setTransDate("setTransDate");
request.setTransTradeTime("setTransTradeTime");
ClosedAccResponse response = new ClosedAccResponse();
response.setRecode("setRecode");
response.setRecodeInfo("setRecodeInfo");
response.setSysDate("setSysDate");
response.setSysTime("setSysTime");
HttpResponse<ClosedAccResponse> httpResponse = TestHttpResponse.create("/account/v2/closed-account", response, ClosedAccResponse.class);
Mockito.when(apiClient.post(
Mockito.eq("/account/v2/closed-account"),
Mockito.any(HttpHeaders.class),
Mockito.any(RequestBody.class),
Mockito.eq(ClosedAccResponse.class)))
.thenReturn(httpResponse);
ClosedAccResponse result = service.closedAcc(request);
// 断言结果
assertThatJson(Json.toJson(result)).isEqualTo("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\"," +
"\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}");
}
}

View File

@ -0,0 +1,79 @@
package com.czcb.scfs.api.service.v2.sms;
import com.czcb.scfs.api.core.ApiClient;
import com.czcb.scfs.api.core.http.HttpHeaders;
import com.czcb.scfs.api.core.http.HttpResponse;
import com.czcb.scfs.api.core.http.RequestBody;
import com.czcb.scfs.api.core.util.Json;
import com.czcb.scfs.api.service.TestHttpResponse;
import com.czcb.scfs.api.service.v2.sms.model.SendVerifySignRequest;
import com.czcb.scfs.api.service.v2.sms.model.SendVerifySignResponse;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
@ExtendWith(MockitoExtension.class)
class SmsServiceTest {
@InjectMocks
private SmsService service;
@Mock
private ApiClient apiClient;
@Test
void send() {
SendVerifySignRequest request = new SendVerifySignRequest();
request.setChannelNo("setChannelNo");
request.setAppNo("setAppNo");
request.setSerialNo("setSerialNo");
request.setTradeNo("setTradeNo");
request.setModelNo("setModelNo");
request.setTradeType("setTradeType");
request.setAccountNo("setAccountNo");
request.setAmount("setAmount");
request.setCardNo("setCardNo");
request.setCardName("setCardName");
request.setIdNo("setIdNo");
request.setMobile("setMobile");
request.setTransDate("setTransDate");
request.setTransTradeTime("setTransTradeTime");
// 验证字段是否有变化
assertThatJson(Json.toJson(request)).isEqualTo("{\"channel_no\":\"setChannelNo\"," +
"\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trade_no\":\"setTradeNo\"," +
"\"model_no\":\"setModelNo\",\"trade_type\":\"setTradeType\",\"account_no\":\"setAccountNo\"," +
"\"amount\":\"setAmount\",\"card_no\":\"setCardNo\",\"card_name\":\"setCardName\"," +
"\"id_no\":\"setIdNo\",\"mobile\":\"setMobile\",\"trans_date\":\"setTransDate\"," +
"\"trans_tradetime\":\"setTransTradeTime\"}");
// 模拟结果
SendVerifySignResponse response = new SendVerifySignResponse();
response.setRecode("setRecode");
response.setRecodeInfo("setRecodeInfo");
response.setSysDate("setSysDate");
response.setSysTime("setSysTime");
response.setSmsNo("setSmsNo");
HttpResponse<SendVerifySignResponse> httpResponse = TestHttpResponse.create("/sms/v2/send-verify-code", response, SendVerifySignResponse.class);
// 打桩
Mockito.when(apiClient.post(
Mockito.eq("/sms/v2/send-verify-code"),
Mockito.any(HttpHeaders.class),
Mockito.any(RequestBody.class),
Mockito.eq(SendVerifySignResponse.class)))
.thenReturn(httpResponse);
SendVerifySignResponse result = service.send(request);
// 断言结果
assertThatJson(Json.toJson(result)).isEqualTo("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\"," +
"\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"smsNo\":\"setSmsNo\"}");
}
}