|
|
@@ -49,116 +49,147 @@ public class TKHttpAPIServiceTest1 {
|
|
|
|
|
|
@BeforeAll
|
|
|
public static void before() {
|
|
|
-// // 配置HTTP连接池
|
|
|
-// ConnectionProvider connectionProvider = ConnectionProvider
|
|
|
-// .builder("http")
|
|
|
-// .maxConnections(500)
|
|
|
-// .maxIdleTime(Duration.ofSeconds(30))
|
|
|
-// .build();
|
|
|
-//
|
|
|
-// // 配置HTTP客户端
|
|
|
-// reactor.netty.http.client.HttpClient httpClient = reactor.netty.http.client.HttpClient
|
|
|
-// .create(connectionProvider)
|
|
|
-// .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000)
|
|
|
-// .responseTimeout(Duration.ofSeconds(50))
|
|
|
-// .doOnConnected(conn ->
|
|
|
-// conn
|
|
|
-// .addHandlerLast(new ReadTimeoutHandler(50))
|
|
|
-// .addHandlerLast(new WriteTimeoutHandler(50)));
|
|
|
-// // 构建WebClient实例
|
|
|
-// WebClient webClient = WebClient
|
|
|
-// .builder()
|
|
|
-// .clientConnector(new ReactorClientHttpConnector(httpClient))
|
|
|
-// .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
|
|
|
-// .defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE)
|
|
|
-// .filter(ExchangeFilterFunction.ofRequestProcessor(
|
|
|
-// clientRequest -> {
|
|
|
-// // 打印请求头信息
|
|
|
-// clientRequest
|
|
|
-// .headers()
|
|
|
-// .forEach((key, values) -> {
|
|
|
-// logger.info("请求头: {}: {}", key, values);
|
|
|
-// });
|
|
|
-// return Mono.just(clientRequest);
|
|
|
-// }
|
|
|
-// ))
|
|
|
-// .codecs(item->item.defaultCodecs().maxInMemorySize(10 * 1024 * 1024))
|
|
|
-// .build();
|
|
|
-//
|
|
|
-//
|
|
|
-// RequestComponent requestComponent = new RequestComponent(webClient);
|
|
|
-//
|
|
|
-// TKHttpClient client = new TKHttpClient();
|
|
|
-//
|
|
|
-// client.setRequestComponent(requestComponent);
|
|
|
-//
|
|
|
-// httpService = new TKHttpAPIService();
|
|
|
-// httpService.setClient(client);
|
|
|
+ // 配置HTTP连接池
|
|
|
+ ConnectionProvider connectionProvider = ConnectionProvider
|
|
|
+ .builder("http")
|
|
|
+ .maxConnections(500)
|
|
|
+ .maxIdleTime(Duration.ofSeconds(30))
|
|
|
+ .build();
|
|
|
+
|
|
|
+ // 配置HTTP客户端
|
|
|
+ reactor.netty.http.client.HttpClient httpClient = reactor.netty.http.client.HttpClient
|
|
|
+ .create(connectionProvider)
|
|
|
+ .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000)
|
|
|
+ .responseTimeout(Duration.ofSeconds(50))
|
|
|
+ .doOnConnected(conn ->
|
|
|
+ conn
|
|
|
+ .addHandlerLast(new ReadTimeoutHandler(50))
|
|
|
+ .addHandlerLast(new WriteTimeoutHandler(50)));
|
|
|
+ // 构建WebClient实例
|
|
|
+ WebClient webClient = WebClient
|
|
|
+ .builder()
|
|
|
+ .clientConnector(new ReactorClientHttpConnector(httpClient))
|
|
|
+ .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
|
|
|
+ .defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE)
|
|
|
+ .filter(ExchangeFilterFunction.ofRequestProcessor(
|
|
|
+ clientRequest -> {
|
|
|
+ // 打印请求头信息
|
|
|
+ clientRequest
|
|
|
+ .headers()
|
|
|
+ .forEach((key, values) -> {
|
|
|
+ logger.info("请求头: {}: {}", key, values);
|
|
|
+ });
|
|
|
+ return Mono.just(clientRequest);
|
|
|
+ }
|
|
|
+ ))
|
|
|
+ .codecs(item->item.defaultCodecs().maxInMemorySize(10 * 1024 * 1024))
|
|
|
+ .build();
|
|
|
+
|
|
|
+
|
|
|
+ RequestComponent requestComponent = new RequestComponent(webClient, null);
|
|
|
+
|
|
|
+ TKHttpClient client = new TKHttpClient();
|
|
|
+
|
|
|
+ client.setRequestComponent(requestComponent);
|
|
|
+
|
|
|
+ httpService = new TKHttpAPIService();
|
|
|
+ httpService.setClient(client);
|
|
|
+
|
|
|
+ // 自动执行登录流程,初始化测试数据
|
|
|
+ try {
|
|
|
+ performLogin();
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("测试前登录初始化失败", e);
|
|
|
+ }
|
|
|
}
|
|
|
+ private static void performLogin() {
|
|
|
+ // 获取临时token
|
|
|
+ IdentityTokenResult tempTokenResult = httpService.identityToken();
|
|
|
+ if (tempTokenResult == null || tempTokenResult.getTkCarRequestToken() == null) {
|
|
|
+ logger.error("获取临时token失败");
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
- @Test
|
|
|
- @Order(0)
|
|
|
- public void login() {
|
|
|
- IdentityTokenResult result1 = httpService.identityToken();
|
|
|
-
|
|
|
- assertNotNull(result1);
|
|
|
-
|
|
|
- // 先获取到一个匿名登录的 `临时token`
|
|
|
- String firstToken = result1.getTkCarRequestToken();
|
|
|
-
|
|
|
- assertNotNull(firstToken);
|
|
|
-
|
|
|
- System.out.println("临时 token" + firstToken);
|
|
|
-
|
|
|
- LoginResult result = httpService.login(firstToken, "Tgengchenjie", "Gcj123456#");
|
|
|
-
|
|
|
- assertNotNull(result);
|
|
|
- assertNotNull(result.getToken());
|
|
|
- assertNotNull(result.getTplatLoginKey());
|
|
|
- assertNotNull(result.getTplatformId());
|
|
|
- assertNotNull(result.getUserId());
|
|
|
- assertNotNull(result.getWebsysUserVo());
|
|
|
- assertNotNull(result.getWebsysUserVo().getWebsysUserAreaVos());
|
|
|
- assertNotNull(result.getWebsysUserVo().getFromid());
|
|
|
- assertEquals(1, result.getWebsysUserVo().getWebsysUserAreaVos().size()); // todo 其它接口所需要 comCode 字段来自此处,需要检查超过 1 个时如何使用。
|
|
|
- assertEquals("0", result.getLoginStatus());
|
|
|
- assertEquals("feda77e829d4dedbbd8b4e236bacfac5", result.getTplatformId()); // tplatformId 好像不会变化,每次都一样
|
|
|
- assertEquals("7cdb1f7e7d276af4f4fc03df508083eb1", result.getTplatLoginKey()); // tplatLoginKey 可能会变化
|
|
|
- assertEquals("67107", result.getWebsysUserVo().getFromid()); // todo 注意 fromId 在其它字段上也存在,可能需要多次甄别不同字段的区别
|
|
|
-
|
|
|
- Map<String, Object> unknownFields = result.getUnknownFields();
|
|
|
-
|
|
|
- System.out.println("unknownFields: " + JSON.toJSONString(unknownFields));
|
|
|
-
|
|
|
- assertNull(unknownFields);
|
|
|
+ // 执行登录
|
|
|
+ LoginResult result = httpService.login(tempTokenResult.getTkCarRequestToken(), "Tgengchenjie", "Gcj123456#");
|
|
|
+ if (result == null) {
|
|
|
+ logger.error("登录失败,返回结果为null");
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
TKHttpAPIServiceTest1.loginResult = result;
|
|
|
- }
|
|
|
+ logger.info("登录成功,tpplatformId: {}", result.getTplatformId());
|
|
|
|
|
|
- @Test
|
|
|
- @Order(1)
|
|
|
- public void identityToken() {
|
|
|
- // feda77e829d4dedbbd8b4e236bacfac5
|
|
|
- String tplatformId = TKHttpAPIServiceTest1.loginResult.getTplatformId();
|
|
|
-
|
|
|
- // 通过临时 token 获取正式 token
|
|
|
- IdentityTokenResult result = httpService.identityToken(null, tplatformId);
|
|
|
-
|
|
|
- assertNotNull(result);
|
|
|
- assertNotNull(result.getTkCarRequestToken());
|
|
|
-
|
|
|
- System.out.println("token: " + result.getTkCarRequestToken());
|
|
|
-
|
|
|
- Map<String, Object> unknownFields = result.getUnknownFields();
|
|
|
-
|
|
|
- System.out.println("unknownFields: " + JSON.toJSONString(unknownFields));
|
|
|
-
|
|
|
- assertNull(unknownFields);
|
|
|
-
|
|
|
- tokenResult = result;
|
|
|
+ // 获取正式token
|
|
|
+ IdentityTokenResult tokenResult = httpService.identityToken(null, result.getTplatformId());
|
|
|
+ if (tokenResult != null && tokenResult.getTkCarRequestToken() != null) {
|
|
|
+ TKHttpAPIServiceTest1.tokenResult = tokenResult;
|
|
|
+ logger.info("获取正式token成功");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+// @Test
|
|
|
+// @Order(0)
|
|
|
+// public void login() {
|
|
|
+// IdentityTokenResult result1 = httpService.identityToken();
|
|
|
+//
|
|
|
+// assertNotNull(result1);
|
|
|
+//
|
|
|
+// // 先获取到一个匿名登录的 `临时token`
|
|
|
+// String firstToken = result1.getTkCarRequestToken();
|
|
|
+//
|
|
|
+// assertNotNull(firstToken);
|
|
|
+//
|
|
|
+// System.out.println("临时 token" + firstToken);
|
|
|
+//
|
|
|
+// LoginResult result = httpService.login(firstToken, "Tgengchenjie", "Gcj123456#");
|
|
|
+//
|
|
|
+// assertNotNull(result);
|
|
|
+// assertNotNull(result.getToken());
|
|
|
+// assertNotNull(result.getTplatLoginKey());
|
|
|
+// assertNotNull(result.getTplatformId());
|
|
|
+// assertNotNull(result.getUserId());
|
|
|
+// assertNotNull(result.getWebsysUserVo());
|
|
|
+// assertNotNull(result.getWebsysUserVo().getWebsysUserAreaVos());
|
|
|
+// assertNotNull(result.getWebsysUserVo().getFromid());
|
|
|
+// assertEquals(1, result.getWebsysUserVo().getWebsysUserAreaVos().size()); // todo 其它接口所需要 comCode 字段来自此处,需要检查超过 1 个时如何使用。
|
|
|
+// assertEquals("0", result.getLoginStatus());
|
|
|
+// assertEquals("feda77e829d4dedbbd8b4e236bacfac5", result.getTplatformId()); // tplatformId 好像不会变化,每次都一样
|
|
|
+// assertEquals("7cdb1f7e7d276af4f4fc03df508083eb1", result.getTplatLoginKey()); // tplatLoginKey 可能会变化
|
|
|
+// assertEquals("67107", result.getWebsysUserVo().getFromid()); // todo 注意 fromId 在其它字段上也存在,可能需要多次甄别不同字段的区别
|
|
|
+//
|
|
|
+// Map<String, Object> unknownFields = result.getUnknownFields();
|
|
|
+//
|
|
|
+// System.out.println("unknownFields: " + JSON.toJSONString(unknownFields));
|
|
|
+//
|
|
|
+// assertNull(unknownFields);
|
|
|
+//
|
|
|
+// TKHttpAPIServiceTest1.loginResult = result;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Test
|
|
|
+// @Order(1)
|
|
|
+// public void identityToken() {
|
|
|
+// // feda77e829d4dedbbd8b4e236bacfac5
|
|
|
+// String tplatformId = TKHttpAPIServiceTest1.loginResult.getTplatformId();
|
|
|
+//
|
|
|
+// // 通过临时 token 获取正式 token
|
|
|
+// IdentityTokenResult result = httpService.identityToken(null, tplatformId);
|
|
|
+//
|
|
|
+// assertNotNull(result);
|
|
|
+// assertNotNull(result.getTkCarRequestToken());
|
|
|
+//
|
|
|
+// System.out.println("token: " + result.getTkCarRequestToken());
|
|
|
+//
|
|
|
+// Map<String, Object> unknownFields = result.getUnknownFields();
|
|
|
+//
|
|
|
+// System.out.println("unknownFields: " + JSON.toJSONString(unknownFields));
|
|
|
+//
|
|
|
+// assertNull(unknownFields);
|
|
|
+//
|
|
|
+// tokenResult = result;
|
|
|
+// }
|
|
|
+
|
|
|
@Test
|
|
|
@Order(2)
|
|
|
public void initBasicData() {
|
|
|
@@ -1243,7 +1274,9 @@ public class TKHttpAPIServiceTest1 {
|
|
|
String orderId = "WBPC202503261450434440000";
|
|
|
String fullProposalNo = "";
|
|
|
String proposalNo = "";
|
|
|
- TKEntranceFor000086Result tkEntranceFor000086Result = httpService.entranceFor000086(token, tplatformId, fromId, orderId, proposalNo, fullProposalNo);
|
|
|
+ String carssToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXFNYXAiOiJ7XCJmcm9tXCI6XCJ0cGxhdFwiLFwidXNlck5hbWVcIjpcImYyMThlOThlYzBiMmI5Y2IwNTdiNTc1YWNmNzY5YzYyMVwifSIsImlzcyI6InRrLmNuIiwiZXhwIjoxNzc5MTUzMTY5fQ.zNvt6Cee9okWqx6nsLg5YQGPogSUnpPRrGXh8gXLi6Q";
|
|
|
+ String userId = "f218e98ec0b2b9cb057b575acf769c621";
|
|
|
+ TKEntranceFor000086Result tkEntranceFor000086Result = httpService.entranceFor000086(token, carssToken,tplatformId, fromId, orderId, proposalNo, fullProposalNo, userId);
|
|
|
|
|
|
assertNotNull(tkEntranceFor000086Result);
|
|
|
|