diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java index c5f6422fc7a..7cf7ce61881 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java @@ -960,7 +960,7 @@ public class ModelUtils { * @param schema potentially containing a '$ref' * @return schema without '$ref' */ - public static Schema getReferencedSchema(OpenAPI openAPI, Schema schema) { + public static Schema getReferencedSchema(OpenAPI openAPI, Schema schema) { if (schema == null) { return null; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenExampleValuesTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenExampleValuesTest.java index 2cbe4c62364..599b40d0b8c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenExampleValuesTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenExampleValuesTest.java @@ -17,11 +17,13 @@ package org.openapitools.codegen.java; +import org.mockito.Answers; +import org.mockito.Mockito; import org.openapitools.codegen.CodegenParameter; import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenType; import org.openapitools.codegen.languages.AbstractJavaCodegen; import org.testng.Assert; +import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.util.Arrays; @@ -29,7 +31,17 @@ import java.util.Collections; public class AbstractJavaCodegenExampleValuesTest { - private final AbstractJavaCodegen fakeJavaCodegen = new P_AbstractJavaCodegen(); + private AbstractJavaCodegen codegen; + + /** + * In TEST-NG, test class (and its fields) is only constructed once (vs. for every test in Jupiter), + * using @BeforeMethod to have a fresh codegen mock for each test + */ + @BeforeMethod void mockAbstractCodegen() { + codegen = Mockito.mock( + AbstractJavaCodegen.class, Mockito.withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() + ); + } @Test void referencedEnumTakeFirstName() { @@ -37,7 +49,7 @@ public class AbstractJavaCodegenExampleValuesTest { p.allowableValues = Collections.singletonMap("values", Arrays.asList("first", "second")); p.dataType = "WrappedEnum"; - fakeJavaCodegen.setParameterExampleValue(p); + codegen.setParameterExampleValue(p); Assert.assertEquals(p.example, "WrappedEnum.fromValue(\"first\")"); } @@ -48,7 +60,7 @@ public class AbstractJavaCodegenExampleValuesTest { p.isEnum = true; p.dataType = "String"; - fakeJavaCodegen.setParameterExampleValue(p); + codegen.setParameterExampleValue(p); Assert.assertEquals(p.example, "\"first\""); } @@ -61,7 +73,7 @@ public class AbstractJavaCodegenExampleValuesTest { p.dataType = "List"; p.items = new CodegenProperty(); - fakeJavaCodegen.setParameterExampleValue(p); + codegen.setParameterExampleValue(p); Assert.assertEquals(p.example, "Arrays.asList()"); } @@ -71,7 +83,7 @@ public class AbstractJavaCodegenExampleValuesTest { p.isDate = true; p.dataType = "LocalDate"; - fakeJavaCodegen.setParameterExampleValue(p); + codegen.setParameterExampleValue(p); Assert.assertEquals(p.example, "LocalDate.now()"); } @@ -82,7 +94,7 @@ public class AbstractJavaCodegenExampleValuesTest { p.dataType = "LocalDate"; p.example = "2017-03-30"; - fakeJavaCodegen.setParameterExampleValue(p); + codegen.setParameterExampleValue(p); Assert.assertEquals(p.example, "LocalDate.parse(\"2017-03-30\")"); } @@ -92,7 +104,7 @@ public class AbstractJavaCodegenExampleValuesTest { p.isDateTime = true; p.dataType = "OffsetDateTime"; - fakeJavaCodegen.setParameterExampleValue(p); + codegen.setParameterExampleValue(p); Assert.assertEquals(p.example, "OffsetDateTime.now()"); } @@ -103,7 +115,7 @@ public class AbstractJavaCodegenExampleValuesTest { p.dataType = "OffsetDateTime"; p.example = "2007-12-03T10:15:30+01:00"; - fakeJavaCodegen.setParameterExampleValue(p); + codegen.setParameterExampleValue(p); Assert.assertEquals(p.example, "OffsetDateTime.parse(\"2007-12-03T10:15:30+01:00\")"); } @@ -113,7 +125,7 @@ public class AbstractJavaCodegenExampleValuesTest { p.isUuid = true; p.dataType = "UUID"; - fakeJavaCodegen.setParameterExampleValue(p); + codegen.setParameterExampleValue(p); Assert.assertEquals(p.example, "UUID.randomUUID()"); } @@ -124,46 +136,7 @@ public class AbstractJavaCodegenExampleValuesTest { p.dataType = "UUID"; p.example = "13b48713-b931-45ea-bd60-b07491245960"; - fakeJavaCodegen.setParameterExampleValue(p); + codegen.setParameterExampleValue(p); Assert.assertEquals(p.example, "UUID.fromString(\"13b48713-b931-45ea-bd60-b07491245960\")"); } - - private static class P_AbstractJavaCodegen extends AbstractJavaCodegen { - @Override - public CodegenType getTag() { - return null; - } - - @Override - public String getName() { - return null; - } - - @Override - public String getHelp() { - return null; - } - - /** - * Gets artifact version. - * Only for testing purposes. - * - * @return version - */ - public String getArtifactVersion() { - return this.artifactVersion; - } - @Test - void customExampleForEnumValue() { - final AbstractJavaCodegen fakeJavaCodegen = new P_AbstractJavaCodegen(); - final CodegenParameter p = new CodegenParameter(); - p.allowableValues = Collections.singletonMap("values", Arrays.asList("first", "second")); - p.dataType = "WrappedEnum"; - p.example = "CustomEnumValue"; - - fakeJavaCodegen.setParameterExampleValue(p); - // Custom example value should not be modified - Assert.assertEquals(p.example, "CustomEnumValue"); - } - } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java index dbca31cda54..b3233495371 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java @@ -31,65 +31,86 @@ import java.time.ZonedDateTime; import java.util.*; import java.util.stream.Collectors; + +import org.mockito.Answers; +import org.mockito.Mockito; import org.openapitools.codegen.*; import org.openapitools.codegen.languages.AbstractJavaCodegen; import org.openapitools.codegen.utils.ModelUtils; import org.testng.Assert; +import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.io.File; import java.time.LocalDate; import java.time.ZoneId; +import static org.assertj.core.api.Assertions.assertThat; + public class AbstractJavaCodegenTest { - private final AbstractJavaCodegen fakeJavaCodegen = new P_AbstractJavaCodegen(); + static final Map FLATTENED_SPEC = Map.of( + "3_0/petstore", TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"), + "3_0/mapSchemas", TestUtils.parseFlattenSpec("src/test/resources/3_0/mapSchemas.yaml"), + "3_0/spring/date-time-parameter-types-for-testing", TestUtils.parseFlattenSpec("src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml") + ); + + private AbstractJavaCodegen codegen; + + /** + * In TEST-NG, test class (and its fields) is only constructed once (vs. for every test in Jupiter), + * using @BeforeMethod to have a fresh codegen mock for each test + */ + @BeforeMethod void mockAbstractCodegen() { + codegen = Mockito.mock( + AbstractJavaCodegen.class, Mockito.withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() + ); + } @Test - public void toEnumVarNameShouldNotShortenUnderScore() throws Exception { - Assert.assertEquals(fakeJavaCodegen.toEnumVarName("_", "String"), "UNDERSCORE"); - Assert.assertEquals(fakeJavaCodegen.toEnumVarName("__", "String"), "__"); - Assert.assertEquals(fakeJavaCodegen.toEnumVarName("_,.", "String"), "__"); + public void toEnumVarNameShouldNotShortenUnderScore() { + Assert.assertEquals(codegen.toEnumVarName("_", "String"), "UNDERSCORE"); + Assert.assertEquals(codegen.toEnumVarName("__", "String"), "__"); + Assert.assertEquals(codegen.toEnumVarName("_,.", "String"), "__"); } /** * As of Java 9, '_' is a keyword, and may not be used as an identifier. */ @Test - public void toEnumVarNameShouldNotResultInSingleUnderscore() throws Exception { - Assert.assertEquals(fakeJavaCodegen.toEnumVarName(" ", "String"), "SPACE"); - Assert.assertEquals(fakeJavaCodegen.toEnumVarName("==", "String"), "u"); + public void toEnumVarNameShouldNotResultInSingleUnderscore() { + Assert.assertEquals(codegen.toEnumVarName(" ", "String"), "SPACE"); + Assert.assertEquals(codegen.toEnumVarName("==", "String"), "u"); } @Test public void toEnumVarNameAddUnderscoresIfValueIsPascalCase() { - Assert.assertEquals(fakeJavaCodegen.toEnumVarName("OnlyCamelCase", "String"), "ONLY_CAMEL_CASE"); - Assert.assertEquals(fakeJavaCodegen.toEnumVarName("WithNumber1", "String"), "WITH_NUMBER1"); - Assert.assertEquals(fakeJavaCodegen.toEnumVarName("_LeadingUnderscore", "String"), "_LEADING_UNDERSCORE"); + Assert.assertEquals(codegen.toEnumVarName("OnlyCamelCase", "String"), "ONLY_CAMEL_CASE"); + Assert.assertEquals(codegen.toEnumVarName("WithNumber1", "String"), "WITH_NUMBER1"); + Assert.assertEquals(codegen.toEnumVarName("_LeadingUnderscore", "String"), "_LEADING_UNDERSCORE"); } @Test - public void toVarNameShouldAvoidOverloadingGetClassMethod() throws Exception { - Assert.assertEquals(fakeJavaCodegen.toVarName("class"), "propertyClass"); - Assert.assertEquals(fakeJavaCodegen.toVarName("_class"), "propertyClass"); - Assert.assertEquals(fakeJavaCodegen.toVarName("__class"), "propertyClass"); + public void toVarNameShouldAvoidOverloadingGetClassMethod() { + Assert.assertEquals(codegen.toVarName("class"), "propertyClass"); + Assert.assertEquals(codegen.toVarName("_class"), "propertyClass"); + Assert.assertEquals(codegen.toVarName("__class"), "propertyClass"); } @Test - public void toModelNameShouldNotUseProvidedMapping() throws Exception { - fakeJavaCodegen.importMapping().put("json_myclass", "com.test.MyClass"); - Assert.assertEquals(fakeJavaCodegen.toModelName("json_myclass"), "JsonMyclass"); + public void toModelNameShouldNotUseProvidedMapping() { + codegen.importMapping().put("json_myclass", "com.test.MyClass"); + Assert.assertEquals(codegen.toModelName("json_myclass"), "JsonMyclass"); } @Test - public void toModelNameUsesPascalCase() throws Exception { - Assert.assertEquals(fakeJavaCodegen.toModelName("json_anotherclass"), "JsonAnotherclass"); + public void toModelNameUsesPascalCase() { + Assert.assertEquals(codegen.toModelName("json_anotherclass"), "JsonAnotherclass"); } @Test - public void testPreprocessOpenApiIncludeAllMediaTypesInAcceptHeader() throws Exception { - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"); - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + public void testPreprocessOpenApiIncludeAllMediaTypesInAcceptHeader() { + final OpenAPI openAPI = FLATTENED_SPEC.get("3_0/petstore"); codegen.preprocessOpenAPI(openAPI); Assert.assertEquals(codegen.getArtifactVersion(), openAPI.getInfo().getVersion()); @@ -100,10 +121,9 @@ public class AbstractJavaCodegenTest { } @Test - public void testPreprocessOpenAPINumVersion() throws Exception { + public void testPreprocessOpenAPINumVersion() { final OpenAPI openAPIOtherNumVersion = TestUtils.parseFlattenSpec("src/test/resources/2_0/duplicateOperationIds.yaml"); - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - + codegen.preprocessOpenAPI(openAPIOtherNumVersion); Assert.assertEquals(codegen.getArtifactVersion(), openAPIOtherNumVersion.getInfo().getVersion()); @@ -111,52 +131,54 @@ public class AbstractJavaCodegenTest { @Test public void convertVarName() { - Assert.assertEquals(fakeJavaCodegen.toVarName("name"), "name"); - Assert.assertEquals(fakeJavaCodegen.toVarName("$name"), "$name"); - Assert.assertEquals(fakeJavaCodegen.toVarName("nam$$e"), "nam$$e"); - Assert.assertEquals(fakeJavaCodegen.toVarName("user-name"), "userName"); - Assert.assertEquals(fakeJavaCodegen.toVarName("user_name"), "userName"); - Assert.assertEquals(fakeJavaCodegen.toVarName("user|name"), "userName"); - Assert.assertEquals(fakeJavaCodegen.toVarName("uSername"), "uSername"); - Assert.assertEquals(fakeJavaCodegen.toVarName("USERname"), "usERname"); - Assert.assertEquals(fakeJavaCodegen.toVarName("USERNAME"), "USERNAME"); - Assert.assertEquals(fakeJavaCodegen.toVarName("USER123NAME"), "USER123NAME"); - Assert.assertEquals(fakeJavaCodegen.toVarName("1"), "_1"); - Assert.assertEquals(fakeJavaCodegen.toVarName("1a"), "_1a"); - Assert.assertEquals(fakeJavaCodegen.toVarName("1A"), "_1A"); - Assert.assertEquals(fakeJavaCodegen.toVarName("1AAAA"), "_1AAAA"); - Assert.assertEquals(fakeJavaCodegen.toVarName("1AAaa"), "_1aAaa"); - - AbstractJavaCodegen withCaml = new P_AbstractJavaCodegen(); - withCaml.setCamelCaseDollarSign(true); - Assert.assertEquals(withCaml.toVarName("$name"), "$Name"); - Assert.assertEquals(withCaml.toVarName("1AAaa"), "_1AAaa"); + Assert.assertEquals(codegen.toVarName("name"), "name"); + Assert.assertEquals(codegen.toVarName("$name"), "$name"); + Assert.assertEquals(codegen.toVarName("nam$$e"), "nam$$e"); + Assert.assertEquals(codegen.toVarName("user-name"), "userName"); + Assert.assertEquals(codegen.toVarName("user_name"), "userName"); + Assert.assertEquals(codegen.toVarName("user|name"), "userName"); + Assert.assertEquals(codegen.toVarName("uSername"), "uSername"); + Assert.assertEquals(codegen.toVarName("USERname"), "usERname"); + Assert.assertEquals(codegen.toVarName("USERNAME"), "USERNAME"); + Assert.assertEquals(codegen.toVarName("USER123NAME"), "USER123NAME"); + Assert.assertEquals(codegen.toVarName("1"), "_1"); + Assert.assertEquals(codegen.toVarName("1a"), "_1a"); + Assert.assertEquals(codegen.toVarName("1A"), "_1A"); + Assert.assertEquals(codegen.toVarName("1AAAA"), "_1AAAA"); + Assert.assertEquals(codegen.toVarName("1AAaa"), "_1aAaa"); } + @Test + public void convertVarNameWithCaml() { + codegen.setCamelCaseDollarSign(true); + + Assert.assertEquals(codegen.toVarName("$name"), "$Name"); + Assert.assertEquals(codegen.toVarName("1AAaa"), "_1AAaa"); + } + @Test public void convertModelName() { - Assert.assertEquals(fakeJavaCodegen.toModelName("name"), "Name"); - Assert.assertEquals(fakeJavaCodegen.toModelName("$name"), "Name"); - Assert.assertEquals(fakeJavaCodegen.toModelName("nam#e"), "Name"); - Assert.assertEquals(fakeJavaCodegen.toModelName("$another-fake?"), "AnotherFake"); - Assert.assertEquals(fakeJavaCodegen.toModelName("1a"), "Model1a"); - Assert.assertEquals(fakeJavaCodegen.toModelName("1A"), "Model1A"); - Assert.assertEquals(fakeJavaCodegen.toModelName("AAAb"), "AAAb"); - Assert.assertEquals(fakeJavaCodegen.toModelName("aBB"), "ABB"); - Assert.assertEquals(fakeJavaCodegen.toModelName("AaBBa"), "AaBBa"); - Assert.assertEquals(fakeJavaCodegen.toModelName("A_B"), "AB"); - Assert.assertEquals(fakeJavaCodegen.toModelName("A-B"), "AB"); - Assert.assertEquals(fakeJavaCodegen.toModelName("Aa_Bb"), "AaBb"); - Assert.assertEquals(fakeJavaCodegen.toModelName("Aa-Bb"), "AaBb"); - Assert.assertEquals(fakeJavaCodegen.toModelName("Aa_bb"), "AaBb"); - Assert.assertEquals(fakeJavaCodegen.toModelName("Aa-bb"), "AaBb"); + Assert.assertEquals(codegen.toModelName("name"), "Name"); + Assert.assertEquals(codegen.toModelName("$name"), "Name"); + Assert.assertEquals(codegen.toModelName("nam#e"), "Name"); + Assert.assertEquals(codegen.toModelName("$another-fake?"), "AnotherFake"); + Assert.assertEquals(codegen.toModelName("1a"), "Model1a"); + Assert.assertEquals(codegen.toModelName("1A"), "Model1A"); + Assert.assertEquals(codegen.toModelName("AAAb"), "AAAb"); + Assert.assertEquals(codegen.toModelName("aBB"), "ABB"); + Assert.assertEquals(codegen.toModelName("AaBBa"), "AaBBa"); + Assert.assertEquals(codegen.toModelName("A_B"), "AB"); + Assert.assertEquals(codegen.toModelName("A-B"), "AB"); + Assert.assertEquals(codegen.toModelName("Aa_Bb"), "AaBb"); + Assert.assertEquals(codegen.toModelName("Aa-Bb"), "AaBb"); + Assert.assertEquals(codegen.toModelName("Aa_bb"), "AaBb"); + Assert.assertEquals(codegen.toModelName("Aa-bb"), "AaBb"); } @Test public void testInitialConfigValues() throws Exception { OpenAPI openAPI = TestUtils.createOpenAPI(); - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.processOpts(); codegen.preprocessOpenAPI(openAPI); @@ -177,7 +199,6 @@ public class AbstractJavaCodegenTest { public void testSettersForConfigValues() throws Exception { OpenAPI openAPI = TestUtils.createOpenAPI(); - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setHideGenerationTimestamp(true); codegen.setModelPackage("xyz.yyyyy.zzzzzzz.model"); @@ -204,18 +225,15 @@ public class AbstractJavaCodegenTest { @Test public void testAdditionalPropertiesPutForConfigValues() throws Exception { - OpenAPI openAPI = TestUtils.createOpenAPI(); - - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.additionalProperties().put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, false); codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.yyyyy.model.oooooo"); codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.yyyyy.api.oooooo"); codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE, "xyz.yyyyy.invoker.oooooo"); codegen.additionalProperties().put(AbstractJavaCodegen.BOOLEAN_GETTER_PREFIX, "getBoolean"); codegen.additionalProperties().put(CodegenConstants.ARTIFACT_VERSION, "0.8.0-SNAPSHOT"); - codegen.processOpts(); - codegen.preprocessOpenAPI(openAPI); + codegen.processOpts(); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.FALSE); Assert.assertFalse(codegen.isHideGenerationTimestamp()); @@ -231,119 +249,62 @@ public class AbstractJavaCodegenTest { } @Test - public void testAdditionalModelTypeAnnotationsSemiColon() throws Exception { - OpenAPI openAPI = TestUtils.createOpenAPI(); - - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + public void testAdditionalModelTypeAnnotationsSemiColon() { codegen.additionalProperties().put(AbstractJavaCodegen.ADDITIONAL_MODEL_TYPE_ANNOTATIONS, "@Foo;@Bar"); codegen.processOpts(); - codegen.preprocessOpenAPI(openAPI); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); - final List additionalModelTypeAnnotations = new ArrayList(); - additionalModelTypeAnnotations.add("@Foo"); - additionalModelTypeAnnotations.add("@Bar"); - - final List sortedCodegenAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - final List sortedAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - - Collections.sort(sortedCodegenAdditionalModelTypeAnnotations); - Collections.sort(sortedAdditionalModelTypeAnnotations); - Assert.assertEquals(sortedCodegenAdditionalModelTypeAnnotations, sortedAdditionalModelTypeAnnotations); + assertThat(codegen.getAdditionalModelTypeAnnotations()) + .containsExactlyInAnyOrder("@Bar", "@Foo"); } @Test - public void testAdditionalModelTypeAnnotationsNewLineLinux() throws Exception { - OpenAPI openAPI = TestUtils.createOpenAPI(); - - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + public void testAdditionalModelTypeAnnotationsNewLineLinux() { codegen.additionalProperties().put(AbstractJavaCodegen.ADDITIONAL_MODEL_TYPE_ANNOTATIONS, "@Foo\n@Bar"); codegen.processOpts(); - codegen.preprocessOpenAPI(openAPI); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); - final List additionalModelTypeAnnotations = new ArrayList(); - additionalModelTypeAnnotations.add("@Foo"); - additionalModelTypeAnnotations.add("@Bar"); - - final List sortedCodegenAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - final List sortedAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - - Collections.sort(sortedCodegenAdditionalModelTypeAnnotations); - Collections.sort(sortedAdditionalModelTypeAnnotations); - Assert.assertEquals(sortedCodegenAdditionalModelTypeAnnotations, sortedAdditionalModelTypeAnnotations); + assertThat(codegen.getAdditionalModelTypeAnnotations()) + .containsExactlyInAnyOrder("@Bar", "@Foo"); } @Test - public void testAdditionalModelTypeAnnotationsNewLineWindows() throws Exception { - OpenAPI openAPI = TestUtils.createOpenAPI(); - - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + public void testAdditionalModelTypeAnnotationsNewLineWindows() { codegen.additionalProperties().put(AbstractJavaCodegen.ADDITIONAL_MODEL_TYPE_ANNOTATIONS, "@Foo\r\n@Bar"); codegen.processOpts(); - codegen.preprocessOpenAPI(openAPI); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); - final List additionalModelTypeAnnotations = new ArrayList(); - additionalModelTypeAnnotations.add("@Foo"); - additionalModelTypeAnnotations.add("@Bar"); - - final List sortedCodegenAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - final List sortedAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - - Collections.sort(sortedCodegenAdditionalModelTypeAnnotations); - Collections.sort(sortedAdditionalModelTypeAnnotations); - Assert.assertEquals(sortedCodegenAdditionalModelTypeAnnotations, sortedAdditionalModelTypeAnnotations); + assertThat(codegen.getAdditionalModelTypeAnnotations()) + .containsExactlyInAnyOrder("@Bar", "@Foo"); } @Test - public void testAdditionalModelTypeAnnotationsMixed() throws Exception { - OpenAPI openAPI = TestUtils.createOpenAPI(); - - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + public void testAdditionalModelTypeAnnotationsMixed() { codegen.additionalProperties().put(AbstractJavaCodegen.ADDITIONAL_MODEL_TYPE_ANNOTATIONS, " \t @Foo;\r\n@Bar ;\n @Foobar "); codegen.processOpts(); - codegen.preprocessOpenAPI(openAPI); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); - final List additionalModelTypeAnnotations = new ArrayList(); - additionalModelTypeAnnotations.add("@Foo"); - additionalModelTypeAnnotations.add("@Bar"); - additionalModelTypeAnnotations.add("@Foobar"); - - final List sortedCodegenAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - final List sortedAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - - Collections.sort(sortedCodegenAdditionalModelTypeAnnotations); - Collections.sort(sortedAdditionalModelTypeAnnotations); - Assert.assertEquals(sortedCodegenAdditionalModelTypeAnnotations, sortedAdditionalModelTypeAnnotations); + assertThat(codegen.getAdditionalModelTypeAnnotations()) + .containsExactlyInAnyOrder("@Bar", "@Foo", "@Foobar"); } @Test - public void testAdditionalModelTypeAnnotationsNoDuplicate() throws Exception { - OpenAPI openAPI = TestUtils.createOpenAPI(); - - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + public void testAdditionalModelTypeAnnotationsNoDuplicate() { codegen.additionalProperties().put(AbstractJavaCodegen.ADDITIONAL_MODEL_TYPE_ANNOTATIONS, "@Foo;@Bar;@Foo"); codegen.processOpts(); - codegen.preprocessOpenAPI(openAPI); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); - final List additionalModelTypeAnnotations = new ArrayList(); - additionalModelTypeAnnotations.add("@Foo"); - additionalModelTypeAnnotations.add("@Bar"); - - final List sortedCodegenAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - final List sortedAdditionalModelTypeAnnotations = new ArrayList<>(codegen.getAdditionalModelTypeAnnotations()); - - Collections.sort(sortedCodegenAdditionalModelTypeAnnotations); - Collections.sort(sortedAdditionalModelTypeAnnotations); - Assert.assertEquals(sortedCodegenAdditionalModelTypeAnnotations, sortedAdditionalModelTypeAnnotations); + assertThat(codegen.getAdditionalModelTypeAnnotations()) + .containsExactlyInAnyOrder("@Bar", "@Foo", "@Foo"); } @Test public void toEnumValue() { - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); Assert.assertEquals(codegen.toEnumValue("1", "Integer"), "1"); Assert.assertEquals(codegen.toEnumValue("42", "Double"), "42"); Assert.assertEquals(codegen.toEnumValue("1337", "Long"), "1337l"); @@ -353,7 +314,6 @@ public class AbstractJavaCodegenTest { @Test public void apiFileFolder() { - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setOutputDir("/User/open.api.tools"); codegen.setSourceFolder("source.folder"); codegen.setApiPackage("org.openapitools.codegen.api"); @@ -362,7 +322,6 @@ public class AbstractJavaCodegenTest { @Test public void apiTestFileFolder() { - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setOutputDir("/User/open.api.tools"); codegen.setTestFolder("test.folder"); codegen.setApiPackage("org.openapitools.codegen.api"); @@ -371,7 +330,6 @@ public class AbstractJavaCodegenTest { @Test public void modelTestFileFolder() { - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setOutputDir("/User/open.api.tools"); codegen.setTestFolder("test.folder"); codegen.setModelPackage("org.openapitools.codegen.model"); @@ -380,7 +338,6 @@ public class AbstractJavaCodegenTest { @Test public void apiTestFileFolderDirect() { - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setOutputTestFolder("/User/open.api.tools"); codegen.setTestFolder("test.folder"); codegen.setApiPackage("org.openapitools.codegen.api"); @@ -389,7 +346,6 @@ public class AbstractJavaCodegenTest { @Test public void modelTestFileFolderDirect() { - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setOutputTestFolder("/User/open.api.tools"); codegen.setTestFolder("test.folder"); codegen.setModelPackage("org.openapitools.codegen.model"); @@ -398,7 +354,6 @@ public class AbstractJavaCodegenTest { @Test public void modelFileFolder() { - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setOutputDir("/User/open.api.tools"); codegen.setSourceFolder("source.folder"); codegen.setModelPackage("org.openapitools.codegen.model"); @@ -407,69 +362,57 @@ public class AbstractJavaCodegenTest { @Test public void apiDocFileFolder() { - final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setOutputDir("/User/open.api.tools"); Assert.assertEquals(codegen.apiDocFileFolder(), "/User/open.api.tools/docs/".replace('/', File.separatorChar)); } @Test(description = "tests if API version specification is used if no version is provided in additional properties") public void openApiVersionTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - OpenAPI api = TestUtils.createOpenAPI(); codegen.processOpts(); - codegen.preprocessOpenAPI(api); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); Assert.assertEquals(codegen.getArtifactVersion(), "1.0.7"); } @Test(description = "tests if API version specification is used if no version is provided in additional properties with snapshot version") public void openApiSnapShotVersionTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - codegen.additionalProperties().put("snapshotVersion", "true"); - OpenAPI api = TestUtils.createOpenAPI(); codegen.processOpts(); - codegen.preprocessOpenAPI(api); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); Assert.assertEquals(codegen.getArtifactVersion(), "1.0.7-SNAPSHOT"); } @Test(description = "tests if artifactVersion additional property is used") public void additionalPropertyArtifactVersionTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - codegen.additionalProperties().put("artifactVersion", "1.1.1"); - OpenAPI api = TestUtils.createOpenAPI(); codegen.processOpts(); - codegen.preprocessOpenAPI(api); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); Assert.assertEquals(codegen.getArtifactVersion(), "1.1.1"); } @Test(description = "tests if artifactVersion additional property is used with snapshot parameter") public void additionalPropertyArtifactSnapShotVersionTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.additionalProperties().put("artifactVersion", "1.1.1"); codegen.additionalProperties().put("snapshotVersion", "true"); - OpenAPI api = TestUtils.createOpenAPI(); codegen.processOpts(); - codegen.preprocessOpenAPI(api); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); Assert.assertEquals(codegen.getArtifactVersion(), "1.1.1-SNAPSHOT"); } @Test(description = "tests if default version is used when neither OpenAPI version nor artifactVersion additional property has been provided") public void defaultVersionTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setArtifactVersion(null); - OpenAPI api = TestUtils.createOpenAPI(); api.getInfo().setVersion(null); + codegen.processOpts(); codegen.preprocessOpenAPI(api); @@ -478,12 +421,11 @@ public class AbstractJavaCodegenTest { @Test(description = "tests if default version with snapshot is used when neither OpenAPI version nor artifactVersion additional property has been provided") public void snapshotVersionTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.additionalProperties().put("snapshotVersion", "true"); - OpenAPI api = TestUtils.createOpenAPI(); api.getInfo().setVersion(null); + codegen.processOpts(); codegen.preprocessOpenAPI(api); @@ -492,12 +434,11 @@ public class AbstractJavaCodegenTest { @Test(description = "tests if default version with snapshot is used when OpenAPI version has been provided") public void snapshotVersionOpenAPITest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "true"); - OpenAPI api = TestUtils.createOpenAPI(); api.getInfo().setVersion("2.0"); + codegen.processOpts(); codegen.preprocessOpenAPI(api); @@ -506,12 +447,11 @@ public class AbstractJavaCodegenTest { @Test(description = "tests if setting an artifact version programmatically persists to additional properties, when openapi version is null") public void allowsProgrammaticallySettingArtifactVersionWithNullOpenApiVersion() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); final String version = "9.8.7-rc1"; codegen.setArtifactVersion(version); - OpenAPI api = TestUtils.createOpenAPI(); api.getInfo().setVersion(null); + codegen.processOpts(); codegen.preprocessOpenAPI(api); @@ -521,12 +461,11 @@ public class AbstractJavaCodegenTest { @Test(description = "tests if setting an artifact version programmatically persists to additional properties, even when openapi version is specified") public void allowsProgrammaticallySettingArtifactVersionWithSpecifiedOpenApiVersion() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); final String version = "9.8.7-rc1"; codegen.setArtifactVersion(version); - OpenAPI api = TestUtils.createOpenAPI(); api.getInfo().setVersion("1.2.3-SNAPSHOT"); + codegen.processOpts(); codegen.preprocessOpenAPI(api); @@ -536,9 +475,7 @@ public class AbstractJavaCodegenTest { @Test(description = "tests if a null in addition properties artifactVersion results in default version") public void usesDefaultVersionWhenAdditionalPropertiesVersionIsNull() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); final String version = "1.0.0"; - OpenAPI api = TestUtils.createOpenAPI(); api.getInfo().setVersion(null); codegen.setArtifactVersion(null); @@ -554,21 +491,18 @@ public class AbstractJavaCodegenTest { @Test(description = "tests if default version with snapshot is used when setArtifactVersion is used") public void snapshotVersionAlreadySnapshotTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "true"); - - OpenAPI api = TestUtils.createOpenAPI(); codegen.setArtifactVersion("4.1.2-SNAPSHOT"); - codegen.processOpts(); - codegen.preprocessOpenAPI(api); + codegen.processOpts(); + codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); + Assert.assertEquals(codegen.getArtifactVersion(), "4.1.2-SNAPSHOT"); } @Test public void toDefaultValueDateTimeLegacyTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setDateLibrary("legacy"); String defaultValue; @@ -601,11 +535,9 @@ public class AbstractJavaCodegenTest { @Test public void toDefaultValueTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setDateLibrary("java8"); - - Schema schema = createObjectSchemaWithMinItems(); + Schema schema = new ObjectSchema().addProperty("id", new IntegerSchema().format("int32")).minItems(1); String defaultValue = codegen.toDefaultValue(schema); Assert.assertEquals(defaultValue, "null"); @@ -614,7 +546,7 @@ public class AbstractJavaCodegenTest { codegen.setOpenAPI(new OpenAPI().components(new Components().addSchemas("NestedArray", nestedArraySchema))); // Create an array schema with item type set to the array alias - schema = new ArraySchema().items(new Schema().$ref("#/components/schemas/NestedArray")); + schema = new ArraySchema().items(new Schema<>().$ref("#/components/schemas/NestedArray")); ModelUtils.setGenerateAliasAsModel(false); defaultValue = codegen.toDefaultValue(codegen.fromProperty("", schema), schema); @@ -625,7 +557,7 @@ public class AbstractJavaCodegenTest { Assert.assertEquals(defaultValue, "new ArrayList<>()"); // Create a map schema with additionalProperties type set to array alias - schema = new MapSchema().additionalProperties(new Schema().$ref("#/components/schemas/NestedArray")); + schema = new MapSchema().additionalProperties(new Schema<>().$ref("#/components/schemas/NestedArray")); ModelUtils.setGenerateAliasAsModel(false); defaultValue = codegen.toDefaultValue(codegen.fromProperty("", schema), schema); @@ -641,14 +573,14 @@ public class AbstractJavaCodegenTest { Date date = Date.from(defaultLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); dateSchema.setDefault(date); defaultValue = codegen.toDefaultValue(codegen.fromProperty("", schema), dateSchema); - Assert.assertEquals(defaultValue, "LocalDate.parse(\"" + defaultLocalDate.toString() + "\")"); + Assert.assertEquals(defaultValue, "LocalDate.parse(\"" + defaultLocalDate + "\")"); DateTimeSchema dateTimeSchema = new DateTimeSchema(); OffsetDateTime defaultDateTime = OffsetDateTime.parse("1984-12-19T03:39:57-08:00"); ZonedDateTime expectedDateTime = defaultDateTime.atZoneSameInstant(ZoneId.systemDefault()); dateTimeSchema.setDefault(defaultDateTime); defaultValue = codegen.toDefaultValue(codegen.fromProperty("", schema), dateTimeSchema); - Assert.assertTrue(defaultValue.startsWith("OffsetDateTime.parse(\"" + expectedDateTime.toString())); + Assert.assertTrue(defaultValue.startsWith("OffsetDateTime.parse(\"" + expectedDateTime)); // Test default value for number without format NumberSchema numberSchema = new NumberSchema(); @@ -665,15 +597,14 @@ public class AbstractJavaCodegenTest { @Test public void dateDefaultValueIsIsoDate() { - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml"); - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + final OpenAPI openAPI = FLATTENED_SPEC.get("3_0/spring/date-time-parameter-types-for-testing"); codegen.setOpenAPI(openAPI); Set imports = new HashSet<>(); CodegenParameter parameter = codegen.fromParameter(openAPI.getPaths().get("/thingy/{date}").getGet().getParameters().get(2), imports); Assert.assertEquals(parameter.dataType, "Date"); - Assert.assertEquals(parameter.isDate, true); + Assert.assertTrue(parameter.isDate); Assert.assertEquals(parameter.defaultValue, "1974-01-01"); Assert.assertEquals(imports.size(), 1); Assert.assertEquals(imports.iterator().next(), "Date"); @@ -684,15 +615,14 @@ public class AbstractJavaCodegenTest { @Test public void dateDefaultValueIsIsoDateTime() { - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml"); - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + final OpenAPI openAPI = FLATTENED_SPEC.get("3_0/spring/date-time-parameter-types-for-testing"); codegen.setOpenAPI(openAPI); Set imports = new HashSet<>(); CodegenParameter parameter = codegen.fromParameter(openAPI.getPaths().get("/thingy/{date}").getGet().getParameters().get(1), imports); Assert.assertEquals(parameter.dataType, "Date"); - Assert.assertEquals(parameter.isDateTime, true); + Assert.assertTrue(parameter.isDateTime); Assert.assertEquals(parameter.defaultValue, "1973-12-19T03:39:57-08:00"); Assert.assertEquals(imports.size(), 1); Assert.assertEquals(imports.iterator().next(), "Date"); @@ -703,19 +633,19 @@ public class AbstractJavaCodegenTest { @Test public void getTypeDeclarationGivenSchemaMappingTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.schemaMapping().put("MyStringType", "com.example.foo"); codegen.setOpenAPI(new OpenAPI().components(new Components().addSchemas("MyStringType", new StringSchema()))); - Schema schema = new ArraySchema().items(new Schema().$ref("#/components/schemas/MyStringType")); + Schema schema = new ArraySchema().items(new Schema<>().$ref("#/components/schemas/MyStringType")); + String defaultValue = codegen.getTypeDeclaration(schema); + Assert.assertEquals(defaultValue, "List"); } @Test public void getTypeDeclarationTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - Schema schema = createObjectSchemaWithMinItems(); + Schema schema = new ObjectSchema().addProperty("id", new IntegerSchema().format("int32")).minItems(1); String defaultValue = codegen.getTypeDeclaration(schema); Assert.assertEquals(defaultValue, "Object"); @@ -724,7 +654,7 @@ public class AbstractJavaCodegenTest { codegen.setOpenAPI(new OpenAPI().components(new Components().addSchemas("NestedArray", nestedArraySchema))); // Create an array schema with item type set to the array alias - schema = new ArraySchema().items(new Schema().$ref("#/components/schemas/NestedArray")); + schema = new ArraySchema().items(new Schema<>().$ref("#/components/schemas/NestedArray")); ModelUtils.setGenerateAliasAsModel(false); defaultValue = codegen.getTypeDeclaration(schema); @@ -735,7 +665,7 @@ public class AbstractJavaCodegenTest { Assert.assertEquals(defaultValue, "List"); // Create an array schema with item type set to the array alias - schema = new ArraySchema().items(new Schema().$ref("#/components/schemas/NestedArray")); + schema = new ArraySchema().items(new Schema<>().$ref("#/components/schemas/NestedArray")); schema.setUniqueItems(true); ModelUtils.setGenerateAliasAsModel(false); @@ -747,7 +677,7 @@ public class AbstractJavaCodegenTest { Assert.assertEquals(defaultValue, "Set"); // Create a map schema with additionalProperties type set to array alias - schema = new MapSchema().additionalProperties(new Schema().$ref("#/components/schemas/NestedArray")); + schema = new MapSchema().additionalProperties(new Schema<>().$ref("#/components/schemas/NestedArray")); ModelUtils.setGenerateAliasAsModel(false); defaultValue = codegen.getTypeDeclaration(schema); @@ -760,66 +690,63 @@ public class AbstractJavaCodegenTest { @Test public void processOptsBooleanTrueFromString() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"); codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "true"); - codegen.preprocessOpenAPI(openAPI); + + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); + Assert.assertTrue((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); } @Test public void processOptsBooleanTrueFromBoolean() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"); codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, true); - codegen.preprocessOpenAPI(openAPI); + + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); + Assert.assertTrue((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); } @Test public void processOptsBooleanFalseFromString() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"); codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "false"); - codegen.preprocessOpenAPI(openAPI); + + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); + Assert.assertFalse((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); } @Test public void processOptsBooleanFalseFromBoolean() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"); codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, false); - codegen.preprocessOpenAPI(openAPI); + + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); + Assert.assertFalse((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); } @Test public void processOptsBooleanFalseFromGarbage() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"); codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "blibb"); - codegen.preprocessOpenAPI(openAPI); + + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); + Assert.assertFalse((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); } @Test public void processOptsBooleanFalseFromNumeric() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"); codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, 42L); - codegen.preprocessOpenAPI(openAPI); + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); Assert.assertFalse((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); } @Test public void nullDefaultValueForModelWithDynamicProperties() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/mapSchemas.yaml"); + final OpenAPI openAPI = FLATTENED_SPEC.get("3_0/mapSchemas"); codegen.additionalProperties().put(CodegenConstants.GENERATE_ALIAS_AS_MODEL, true); codegen.setOpenAPI(openAPI); - Schema schema = openAPI.getComponents().getSchemas().get("ModelWithAdditionalProperties"); + Schema schema = openAPI.getComponents().getSchemas().get("ModelWithAdditionalProperties"); CodegenModel cm = codegen.fromModel("ModelWithAdditionalProperties", schema); Assert.assertEquals(cm.vars.size(), 1, "Expected single declared var"); Assert.assertEquals(cm.vars.get(0).name, "id"); @@ -831,12 +758,11 @@ public class AbstractJavaCodegenTest { @Test public void maplikeDefaultValueForModelWithStringToStringMapping() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/mapSchemas.yaml"); + final OpenAPI openAPI = FLATTENED_SPEC.get("3_0/mapSchemas"); codegen.additionalProperties().put(CodegenConstants.GENERATE_ALIAS_AS_MODEL, true); codegen.setOpenAPI(openAPI); - Schema schema = openAPI.getComponents().getSchemas().get("ModelWithStringToStringMapping"); + Schema schema = openAPI.getComponents().getSchemas().get("ModelWithStringToStringMapping"); CodegenModel cm = codegen.fromModel("ModelWithAdditionalProperties", schema); Assert.assertEquals(cm.vars.size(), 0, "Expected no declared vars"); Assert.assertNull(cm.defaultValue, "Expected no defined default value in spec"); @@ -847,12 +773,11 @@ public class AbstractJavaCodegenTest { @Test public void maplikeDefaultValueForModelWithStringToModelMapping() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/mapSchemas.yaml"); + final OpenAPI openAPI = FLATTENED_SPEC.get("3_0/mapSchemas"); codegen.additionalProperties().put(CodegenConstants.GENERATE_ALIAS_AS_MODEL, true); codegen.setOpenAPI(openAPI); - Schema schema = openAPI.getComponents().getSchemas().get("ModelWithStringToModelMapping"); + Schema schema = openAPI.getComponents().getSchemas().get("ModelWithStringToModelMapping"); CodegenModel cm = codegen.fromModel("ModelWithStringToModelMapping", schema); Assert.assertEquals(cm.vars.size(), 0, "Expected no declared vars"); Assert.assertNull(cm.defaultValue, "Expected no defined default value in spec"); @@ -865,20 +790,19 @@ public class AbstractJavaCodegenTest { public void srcMainFolderShouldNotBeOperatingSystemSpecificPaths() { // it's not responsibility of the generator to fix OS-specific paths. This is left to template manager. // This path must be non-OS-specific for expectations in source outputs (e.g. gradle build files) - Assert.assertEquals(fakeJavaCodegen.getSourceFolder(), "src/main/java"); + Assert.assertEquals(codegen.getSourceFolder(), "src/main/java"); } @Test public void srcTestFolderShouldNotBeOperatingSystemSpecificPaths() { // it's not responsibility of the generator to fix OS-specific paths. This is left to template manager. // This path must be non-OS-specific for expectations in source outputs (e.g. gradle build files) - Assert.assertEquals(fakeJavaCodegen.getTestFolder(), "src/test/java"); + Assert.assertEquals(codegen.getTestFolder(), "src/test/java"); } @Test - public void testOneOfModelImports() throws Exception { + public void testOneOfModelImports() { final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/oneOf_nonPrimitive.yaml"); - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setOpenAPI(openAPI); codegen.preprocessOpenAPI(openAPI); @@ -891,16 +815,15 @@ public class AbstractJavaCodegenTest { } @Test - public void arrayParameterDefaultValueDoesNotNeedBraces() throws Exception { + public void arrayParameterDefaultValueDoesNotNeedBraces() { ParseOptions parseOptions = new ParseOptions(); parseOptions.setResolve(true); final OpenAPI openAPI = new OpenAPIParser() .readLocation("src/test/resources/3_0/issue_16223.yaml", null, parseOptions) .getOpenAPI(); - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.setOpenAPI(openAPI); - Map schemas = openAPI.getPaths().get("/test").getGet().getParameters().stream() + Map> schemas = openAPI.getPaths().get("/test").getGet().getParameters().stream() .collect(Collectors.toMap( Parameter::getName, p -> ModelUtils.getReferencedSchema(openAPI, p.getSchema()))); @@ -912,7 +835,6 @@ public class AbstractJavaCodegenTest { @Test public void ignoreBeanValidationAnnotationsTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.additionalProperties().put("useBeanValidation", true); Schema schema = new Schema<>().type("string").format("uuid").pattern("^[a-z]$").maxLength(36); @@ -938,7 +860,6 @@ public class AbstractJavaCodegenTest { @Test public void ignoreBeanValidationAnnotationsContainerTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.additionalProperties().put("useBeanValidation", true); Schema schema = new ArraySchema().items(new Schema<>().type("string").format("uuid").pattern("^[a-z]$").maxLength(36)); @@ -964,7 +885,6 @@ public class AbstractJavaCodegenTest { @Test public void AnnotationsContainerTest() { - final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); codegen.additionalProperties().put("useBeanValidation", true); // 1. string type @@ -1048,37 +968,4 @@ public class AbstractJavaCodegenTest { defaultValue = codegen.getTypeDeclaration(schema); Assert.assertEquals(defaultValue, "List<@Max(10)Integer>"); } - - private static Schema createObjectSchemaWithMinItems() { - return new ObjectSchema() - .addProperties("id", new IntegerSchema().format("int32")) - .minItems(1); - } - - private static class P_AbstractJavaCodegen extends AbstractJavaCodegen { - @Override - public CodegenType getTag() { - return null; - } - - @Override - public String getName() { - return null; - } - - @Override - public String getHelp() { - return null; - } - - /** - * Gets artifact version. - * Only for testing purposes. - * - * @return version - */ - public String getArtifactVersion() { - return this.artifactVersion; - } - } }