feat(openapi): FormCenterSchemaClient 走标准 appCode 网关 fallback,application.yml 出厂 base-host 默认内部网关
build / build-push (push) Successful in 1m18s
build / build-push (push) Successful in 1m18s
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package com.yunhai.flowcenter.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.sun.net.httpserver.HttpServer;
|
||||
import com.yunhai.platform.openapi.core.*;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class AppCodeFormCenterRoutingTest {
|
||||
@Test
|
||||
void realSdkNeedsOnlyGatewayForCatalogAndExactSchema() throws Exception {
|
||||
List<String> paths = new ArrayList<>();
|
||||
HttpServer gateway = HttpServer.create(new InetSocketAddress("127.0.0.1", 0), 0);
|
||||
gateway.createContext("/", exchange -> {
|
||||
String path = exchange.getRequestURI().getPath(); paths.add(path);
|
||||
String data = path.endsWith("/schema")
|
||||
? "{\"formUuid\":\"test-form\",\"version\":3,\"groups\":[],\"audience\":[]}"
|
||||
: "{\"items\":[],\"total\":0}";
|
||||
byte[] bytes = ("{\"code\":0,\"data\":" + data + "}").getBytes(StandardCharsets.UTF_8);
|
||||
exchange.sendResponseHeaders(200, bytes.length);
|
||||
exchange.getResponseBody().write(bytes); exchange.close();
|
||||
});
|
||||
gateway.start();
|
||||
try {
|
||||
OpenApiProperties open = new OpenApiProperties();
|
||||
open.setBaseHost("http://127.0.0.1:" + gateway.getAddress().getPort());
|
||||
YschOpenCall call = new YschOpenCall(new YschCallProperties(), open, new ObjectMapper(), null);
|
||||
assertFalse(call.hasTarget("form-center"));
|
||||
assertEquals(0, new FormCenterCatalogClient(call).listForms(1L, null, null, 1, 20).getTotal());
|
||||
assertEquals(3, new FormCenterSchemaClient(call, new ObjectMapper())
|
||||
.fetchSchema(1L, "test-form", 3).get("formVersion"));
|
||||
assertEquals(java.util.Arrays.asList("/form-center/oapi/form/forms", "/form-center/oapi/form/schema"), paths);
|
||||
} finally {
|
||||
gateway.stop(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user