Skip to content

Commit 95291d2

Browse files
committed
Add tests
1 parent 836e86a commit 95291d2

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

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

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,85 @@ public void testJdkHttpClientWithJackson3() {
665665
.contains("<groupId>com.fasterxml.jackson.core</groupId>");
666666
}
667667

668+
@Test
669+
public void testJdkHttpClientWithJackson3AndOpenApiNullable() {
670+
final Path output = newTempFolder();
671+
final CodegenConfigurator configurator = new CodegenConfigurator()
672+
.setGeneratorName(JAVA_GENERATOR)
673+
.setLibrary(JavaClientCodegen.NATIVE)
674+
.addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")
675+
.addAdditionalProperty(CodegenConstants.INVOKER_PACKAGE, "xyz.abcdef.invoker")
676+
.addAdditionalProperty(JavaClientCodegen.USE_JACKSON_3, true)
677+
.addAdditionalProperty(JavaClientCodegen.OPENAPI_NULLABLE, true)
678+
.setInputSpec("src/test/resources/3_0/ping.yaml")
679+
.setOutputDir(output.toString().replace("\\", "/"));
680+
681+
List<File> files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate();
682+
683+
validateJavaSourceFiles(files);
684+
assertThat(output.resolve("src/main/java/xyz/abcdef/invoker/ApiClient.java")).content()
685+
.contains("import org.openapitools.jackson.nullable.JsonNullableJackson3Module;")
686+
.contains("new JsonNullableJackson3Module()")
687+
.doesNotContain("JsonNullableModule");
688+
assertThat(output.resolve("src/main/java/xyz/abcdef/invoker/JSON.java")).content()
689+
.contains("import org.openapitools.jackson.nullable.JsonNullableJackson3Module;")
690+
.contains("new JsonNullableJackson3Module()")
691+
.doesNotContain("JsonNullableModule");
692+
assertThat(output.resolve("pom.xml")).content()
693+
.contains("jackson-databind-nullable");
694+
}
695+
696+
@Test
697+
public void testApacheHttpClientWithJackson3() {
698+
final Path output = newTempFolder();
699+
final CodegenConfigurator configurator = new CodegenConfigurator()
700+
.setGeneratorName(JAVA_GENERATOR)
701+
.setLibrary(JavaClientCodegen.APACHE)
702+
.addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")
703+
.addAdditionalProperty(CodegenConstants.INVOKER_PACKAGE, "xyz.abcdef.invoker")
704+
.addAdditionalProperty(JavaClientCodegen.USE_JACKSON_3, true)
705+
.addAdditionalProperty(JavaClientCodegen.OPENAPI_NULLABLE, true)
706+
.setInputSpec("src/test/resources/3_0/ping.yaml")
707+
.setOutputDir(output.toString().replace("\\", "/"));
708+
709+
List<File> files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate();
710+
711+
validateJavaSourceFiles(files);
712+
assertThat(output.resolve("src/main/java/xyz/abcdef/invoker/ApiClient.java")).content()
713+
.contains("import tools.jackson.databind.*")
714+
.contains("import tools.jackson.databind.json.JsonMapper;")
715+
.contains("import org.openapitools.jackson.nullable.JsonNullableJackson3Module;")
716+
.contains("new JsonNullableJackson3Module()")
717+
.doesNotContain("import com.fasterxml.jackson.databind");
718+
assertThat(output.resolve("src/main/java/xyz/abcdef/api/DefaultApi.java")).content()
719+
.contains("import tools.jackson.core.type.TypeReference;")
720+
.doesNotContain("import com.fasterxml.jackson.core.type.TypeReference");
721+
assertThat(output.resolve("pom.xml")).content()
722+
.contains("<groupId>tools.jackson.core</groupId>")
723+
.contains("<groupId>com.fasterxml.jackson.core</groupId>")
724+
.contains("jackson-databind-nullable");
725+
}
726+
727+
@Test(dataProvider = "springBoot4Jackson3Libraries")
728+
void supportsJackson3WithOpenApiNullableForSpringBoot4Libraries(String library) {
729+
String outputDir = newTempFolder().toString();
730+
final CodegenConfigurator configurator = new CodegenConfigurator()
731+
.setGeneratorName(JAVA_GENERATOR)
732+
.setLibrary(library)
733+
.addAdditionalProperty(USE_JACKSON_3, true)
734+
.addAdditionalProperty(USE_SPRING_BOOT4, true)
735+
.addAdditionalProperty(OPENAPI_NULLABLE, true)
736+
.setInputSpec("src/test/resources/3_0/java/autoset_constant.yaml")
737+
.setOutputDir(outputDir);
738+
739+
List<File> files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate();
740+
741+
assertThat(files).isNotEmpty();
742+
assertThat(new File(outputDir, "src/main/java/org/openapitools/client/ApiClient.java"))
743+
.content()
744+
.contains("JsonNullableJackson3Module");
745+
}
746+
668747
@Test
669748
public void testReferencedHeader() {
670749
final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/issue855.yaml");

0 commit comments

Comments
 (0)