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