Skip to content

Commit e12459f

Browse files
sulliswing328
authored andcommitted
[java-client] add unit test for JDK 11 HttpClient (#3735)
1 parent 8cd5a41 commit e12459f

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

+38
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,44 @@ public void testGeneratePing() throws Exception {
331331
output.deleteOnExit();
332332
}
333333

334+
@Test
335+
public void testJdkHttpClient() throws Exception {
336+
Map<String, Object> properties = new HashMap<>();
337+
properties.put(JavaClientCodegen.JAVA8_MODE, true);
338+
properties.put(CodegenConstants.API_PACKAGE, "xyz.abcdef.api");
339+
340+
File output = Files.createTempDirectory("test").toFile();
341+
output.deleteOnExit();
342+
343+
final CodegenConfigurator configurator = new CodegenConfigurator()
344+
.setGeneratorName("java")
345+
.setLibrary(JavaClientCodegen.NATIVE)
346+
.setAdditionalProperties(properties)
347+
.setInputSpec("src/test/resources/3_0/ping.yaml")
348+
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
349+
350+
final ClientOptInput clientOptInput = configurator.toClientOptInput();
351+
MockDefaultGenerator generator = new MockDefaultGenerator();
352+
generator.opts(clientOptInput).generate();
353+
354+
Map<String, String> generatedFiles = generator.getFiles();
355+
Assert.assertEquals(generatedFiles.size(), 23);
356+
validateJavaSourceFiles(generatedFiles);
357+
358+
String defaultApiFilename = new File(output, "src/main/java/xyz/abcdef/api/DefaultApi.java").getAbsolutePath().replace("\\", "/");
359+
String defaultApiContent = generatedFiles.get(defaultApiFilename);
360+
assertTrue(defaultApiContent.contains("public class DefaultApi"));
361+
assertTrue(defaultApiContent.contains("import java.net.http.HttpClient;"));
362+
assertTrue(defaultApiContent.contains("import java.net.http.HttpRequest;"));
363+
assertTrue(defaultApiContent.contains("import java.net.http.HttpResponse;"));
364+
365+
String apiClientFilename = new File(output, "src/main/java/xyz/abcdef/ApiClient.java").getAbsolutePath().replace("\\", "/");
366+
String apiClientContent = generatedFiles.get(apiClientFilename);
367+
assertTrue(apiClientContent.contains("public class ApiClient"));
368+
assertTrue(apiClientContent.contains("import java.net.http.HttpClient;"));
369+
assertTrue(apiClientContent.contains("import java.net.http.HttpRequest;"));
370+
}
371+
334372
@Test
335373
public void testReferencedHeader() {
336374
final OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/issue855.yaml");

0 commit comments

Comments
 (0)