forked from loafle/openapi-generator-original
Update swagger parser to 2.1.14 (#15644)
* update swagger parser to 2.1.14 * minor fix, update tests
This commit is contained in:
parent
5afa33980c
commit
e4bf068a88
@ -3616,6 +3616,10 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
}
|
||||
|
||||
protected void updatePropertyForMap(CodegenProperty property, Schema p) {
|
||||
// throw exception if additionalProperties is false
|
||||
if (p.getAdditionalProperties() instanceof Boolean && Boolean.FALSE.equals(p.getAdditionalProperties())) {
|
||||
throw new RuntimeException("additionalProperties cannot be false in updatePropertyForMap.");
|
||||
}
|
||||
property.isContainer = true;
|
||||
property.containerType = "map";
|
||||
// TODO remove this hack in the future, code should use minProperties and maxProperties for object schemas
|
||||
|
@ -524,6 +524,11 @@ public class ModelUtils {
|
||||
* @return true if the specified schema is a Map schema.
|
||||
*/
|
||||
public static boolean isMapSchema(Schema schema) {
|
||||
// additionalProperties explicitly set to false
|
||||
if (schema.getAdditionalProperties() instanceof Boolean && Boolean.FALSE.equals(schema.getAdditionalProperties())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (schema instanceof MapSchema) ||
|
||||
(schema.getAdditionalProperties() instanceof Schema) ||
|
||||
(schema.getAdditionalProperties() instanceof Boolean && (Boolean) schema.getAdditionalProperties());
|
||||
|
@ -337,10 +337,11 @@ public class DefaultCodegenTest {
|
||||
// It is unfortunate that child.getAdditionalProperties() returns null for a V2 schema.
|
||||
// We cannot differentiate between 'additionalProperties' not present and
|
||||
// additionalProperties: true.
|
||||
Assert.assertNull(map_with_additional_properties_sc.getAdditionalProperties());
|
||||
// UPDATE fixed in swagger parser 2.1.14
|
||||
Assert.assertTrue((Boolean) map_with_additional_properties_sc.getAdditionalProperties());
|
||||
addProps = ModelUtils.getAdditionalProperties(openAPI, map_with_additional_properties_sc);
|
||||
Assert.assertNull(addProps);
|
||||
Assert.assertNull(map_with_additional_properties_cp.getAdditionalProperties());
|
||||
Assert.assertEquals(addProps, new Schema());
|
||||
Assert.assertNotNull(map_with_additional_properties_cp.getAdditionalProperties());
|
||||
|
||||
// map_without_additional_properties
|
||||
// This property has the following inline schema.
|
||||
@ -349,7 +350,8 @@ public class DefaultCodegenTest {
|
||||
// It is unfortunate that child.getAdditionalProperties() returns null for a V2 schema.
|
||||
// We cannot differentiate between 'additionalProperties' not present and
|
||||
// additionalProperties: false.
|
||||
Assert.assertNull(map_without_additional_properties_sc.getAdditionalProperties());
|
||||
// UPDATE fixed in swagger parser 2.1.14
|
||||
Assert.assertFalse((Boolean) map_without_additional_properties_sc.getAdditionalProperties());
|
||||
addProps = ModelUtils.getAdditionalProperties(openAPI, map_without_additional_properties_sc);
|
||||
Assert.assertNull(addProps);
|
||||
Assert.assertNull(map_without_additional_properties_cp.getAdditionalProperties());
|
||||
@ -426,9 +428,10 @@ public class DefaultCodegenTest {
|
||||
// It is unfortunate that child.getAdditionalProperties() returns null for a V2 schema.
|
||||
// We cannot differentiate between 'additionalProperties' not present and
|
||||
// additionalProperties: true.
|
||||
Assert.assertNull(map_with_additional_properties_sc.getAdditionalProperties());
|
||||
// UPDATE fixed in swagger parser 2.1.14
|
||||
Assert.assertTrue((Boolean) map_with_additional_properties_sc.getAdditionalProperties());
|
||||
addProps = ModelUtils.getAdditionalProperties(openAPI, map_with_additional_properties_sc);
|
||||
Assert.assertNull(addProps);
|
||||
Assert.assertEquals(addProps, new Schema());
|
||||
Assert.assertNotNull(map_with_additional_properties_cp.getAdditionalProperties());
|
||||
|
||||
// map_without_additional_properties
|
||||
@ -438,10 +441,11 @@ public class DefaultCodegenTest {
|
||||
// It is unfortunate that child.getAdditionalProperties() returns null for a V2 schema.
|
||||
// We cannot differentiate between 'additionalProperties' not present and
|
||||
// additionalProperties: false.
|
||||
Assert.assertNull(map_without_additional_properties_sc.getAdditionalProperties());
|
||||
// UPDATE fixed in swagger parser 2.1.14
|
||||
Assert.assertFalse((Boolean) map_without_additional_properties_sc.getAdditionalProperties());
|
||||
addProps = ModelUtils.getAdditionalProperties(openAPI, map_without_additional_properties_sc);
|
||||
Assert.assertNull(addProps);
|
||||
Assert.assertNotNull(map_without_additional_properties_cp.getAdditionalProperties());
|
||||
Assert.assertEquals(addProps, null);
|
||||
Assert.assertNull(map_without_additional_properties_cp.getAdditionalProperties());
|
||||
|
||||
// check of composed schema model
|
||||
String schemaName = "Parent";
|
||||
@ -2386,7 +2390,7 @@ public class DefaultCodegenTest {
|
||||
assertTrue(names.contains("password"));
|
||||
assertTrue(names.contains("passwordConfirmation"));
|
||||
assertTrue(names.contains("oldPassword"));
|
||||
|
||||
|
||||
Optional<CodegenParameter> passwordParameter = operation.formParams.stream().filter(p -> "password".equals(p.paramName)).findFirst();
|
||||
assertTrue(passwordParameter.isPresent());
|
||||
assertTrue(passwordParameter.get().isPassword);
|
||||
@ -4277,7 +4281,7 @@ public class DefaultCodegenTest {
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// JUnit assertions
|
||||
assertEquals("Messages: " + logsList.stream().map(ILoggingEvent::getMessage).collect(Collectors.toList()),8, logsList.size());
|
||||
assertEquals("Messages: " + logsList.stream().map(ILoggingEvent::getMessage).collect(Collectors.toList()), 8, logsList.size());
|
||||
assertEquals("Validation 'minItems' has no effect on schema 'string'. Ignoring!", logsList.get(0)
|
||||
.getMessage());
|
||||
assertEquals("Validation 'maxItems' has no effect on schema 'string'. Ignoring!", logsList.get(1)
|
||||
@ -4324,7 +4328,7 @@ public class DefaultCodegenTest {
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// JUnit assertions
|
||||
assertEquals("Messages: " + logsList.stream().map(ILoggingEvent::getMessage).collect(Collectors.toList()),8, logsList.size());
|
||||
assertEquals("Messages: " + logsList.stream().map(ILoggingEvent::getMessage).collect(Collectors.toList()), 8, logsList.size());
|
||||
assertEquals("Validation 'minItems' has no effect on schema 'integer'. Ignoring!", logsList.get(0)
|
||||
.getMessage());
|
||||
assertEquals("Validation 'maxItems' has no effect on schema 'integer'. Ignoring!", logsList.get(1)
|
||||
@ -4371,7 +4375,7 @@ public class DefaultCodegenTest {
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// JUnit assertions
|
||||
assertEquals("Messages: " + logsList.stream().map(ILoggingEvent::getMessage).collect(Collectors.toList()),0, logsList.size());
|
||||
assertEquals("Messages: " + logsList.stream().map(ILoggingEvent::getMessage).collect(Collectors.toList()), 0, logsList.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -112,10 +112,13 @@ public class YamlGeneratorTest {
|
||||
TestUtils.ensureContainsFile(files, output, ".openapi-generator/FILES");
|
||||
TestUtils.ensureContainsFile(files, output, ".openapi-generator/VERSION");
|
||||
|
||||
OpenAPI generated = TestUtils.parseSpec(new File(output, "issue_9086.yaml").getPath());
|
||||
OpenAPI actual = TestUtils.parseSpec("src/test/resources/2_0/issue_9086.yaml");
|
||||
OpenAPI expected = TestUtils.parseSpec("src/test/resources/2_0/issue_9086_expected.yaml");
|
||||
|
||||
// use #toString because the equals methods is a little stricter than necessary for this test
|
||||
Assert.assertEquals(expected.toString(), generated.toString());
|
||||
Assert.assertEquals(actual.getComponents().getSchemas().get("bar2").getAdditionalProperties(),
|
||||
expected.getComponents().getSchemas().get("bar2").getAdditionalProperties());
|
||||
Assert.assertEquals(actual.getPaths().get("/foo/bar").getPost().getResponses().get("200").getContent().get("*/*").getSchema().getAdditionalProperties(),
|
||||
expected.getComponents().getSchemas().get("_foo_bar_post_200_response").getAdditionalProperties());
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ paths:
|
||||
components:
|
||||
schemas:
|
||||
bar2:
|
||||
additionalProperties: false
|
||||
example:
|
||||
"n": 4.56
|
||||
properties:
|
||||
@ -34,6 +35,7 @@ components:
|
||||
type: number
|
||||
type: object
|
||||
_foo_bar_post_200_response:
|
||||
additionalProperties: false
|
||||
example:
|
||||
"n": 1.23
|
||||
properties:
|
||||
|
2
pom.xml
2
pom.xml
@ -1478,7 +1478,7 @@
|
||||
<maven-surefire-plugin.version>3.0.0</maven-surefire-plugin.version>
|
||||
<openrewrite.version>7.22.0</openrewrite.version>
|
||||
<swagger-parser-groupid.version>io.swagger.parser.v3</swagger-parser-groupid.version>
|
||||
<swagger-parser.version>2.1.6</swagger-parser.version>
|
||||
<swagger-parser.version>2.1.14</swagger-parser.version>
|
||||
<testng.version>7.5</testng.version>
|
||||
<violations-maven-plugin.version>1.34</violations-maven-plugin.version>
|
||||
<wagon-ssh-external.version>3.4.3</wagon-ssh-external.version>
|
||||
|
Loading…
x
Reference in New Issue
Block a user