Skip to content

Commit 4f94561

Browse files
committed
create reproducer unit test for java client codegen
1 parent 08bd2cc commit 4f94561

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

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

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,14 @@
4040
import org.openapitools.codegen.java.assertions.JavaFileAssert;
4141
import org.openapitools.codegen.languages.AbstractJavaCodegen;
4242
import org.openapitools.codegen.languages.JavaClientCodegen;
43+
import org.openapitools.codegen.languages.RubyClientCodegen;
4344
import org.openapitools.codegen.languages.features.BeanValidationFeatures;
4445
import org.openapitools.codegen.languages.features.CXFServerFeatures;
4546
import org.openapitools.codegen.meta.features.SecurityFeature;
4647
import org.openapitools.codegen.model.OperationMap;
4748
import org.openapitools.codegen.model.OperationsMap;
4849
import org.openapitools.codegen.testutils.ConfigAssert;
50+
import org.testng.Assert;
4951
import org.testng.annotations.DataProvider;
5052
import org.testng.annotations.Parameters;
5153
import org.testng.annotations.Test;
@@ -67,6 +69,8 @@
6769
import static org.assertj.core.api.Assertions.assertThat;
6870
import static org.assertj.core.api.Assertions.entry;
6971
import static org.assertj.core.api.InstanceOfAssertFactories.FILE;
72+
import static org.junit.jupiter.api.Assertions.assertEquals;
73+
import static org.junit.jupiter.api.Assertions.assertTrue;
7074
import static org.openapitools.codegen.CodegenConstants.*;
7175
import static org.openapitools.codegen.TestUtils.*;
7276
import static org.openapitools.codegen.languages.JavaClientCodegen.*;
@@ -3837,4 +3841,49 @@ public void queryParameterJsonSerialization(String library) {
38373841
public static Object[] springClients() {
38383842
return new Object[]{RESTCLIENT, WEBCLIENT};
38393843
}
3844+
3845+
@Test(description = "test oneOf (OAS3)")
3846+
public void oneOfTest() {
3847+
final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/oneOf.yaml");
3848+
final JavaClientCodegen codegen = new JavaClientCodegen();
3849+
3850+
final Schema schema = openAPI.getComponents().getSchemas().get("fruit");
3851+
codegen.setOpenAPI(openAPI);
3852+
CodegenModel fruit = codegen.fromModel("Fruit", schema);
3853+
3854+
Set<String> oneOf = new TreeSet<String>();
3855+
oneOf.add("Apple");
3856+
oneOf.add("Banana");
3857+
oneOf.add("Orange");
3858+
Assert.assertEquals(fruit.oneOf, oneOf);
3859+
3860+
assertEquals(4, fruit.optionalVars.size());
3861+
assertEquals(4, fruit.vars.size());
3862+
}
3863+
3864+
@Test
3865+
public void oneOfInheritanceArrayFieldTest() {
3866+
final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/oneOf_inheritance.yaml");
3867+
final JavaClientCodegen codegen = new JavaClientCodegen();
3868+
3869+
final Schema schema = openAPI.getComponents().getSchemas().get("RandomAnimalsResponse_animals_inner");
3870+
codegen.setOpenAPI(openAPI);
3871+
CodegenModel randomAnimalsResponseInner = codegen.fromModel("RandomAnimalsResponse_animals_inner", schema);
3872+
3873+
Set<String> oneOf = new TreeSet<>();
3874+
oneOf.add("Mouse");
3875+
oneOf.add("Cat");
3876+
oneOf.add("Dog");
3877+
assertEquals(oneOf, randomAnimalsResponseInner.oneOf);
3878+
assertEquals(4, randomAnimalsResponseInner.vars.size());
3879+
// make sure that RandomAnimalsResponseInner has the property species
3880+
boolean speciesSeen = false;
3881+
for (CodegenProperty cp : randomAnimalsResponseInner.vars) {
3882+
if ("species".equals(cp.name)) {
3883+
speciesSeen = true;
3884+
break;
3885+
}
3886+
}
3887+
assertTrue(speciesSeen);
3888+
}
38403889
}

0 commit comments

Comments
 (0)