Syncs validation properties for arraymodels (#7357)

* Syncs validation properties for arraymodels

* Adds arrayModelHasValidation test
This commit is contained in:
spacether 2020-09-05 18:02:00 -07:00 committed by GitHub
parent 2d5b2726d0
commit 681e821b71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 0 deletions

View File

@ -2272,6 +2272,7 @@ public class DefaultCodegen implements CodegenConfig {
m.isArrayModel = true; m.isArrayModel = true;
m.arrayModelType = fromProperty(name, schema).complexType; m.arrayModelType = fromProperty(name, schema).complexType;
addParentContainer(m, name, schema); addParentContainer(m, name, schema);
ModelUtils.syncValidationProperties(schema, m);
} else if (schema instanceof ComposedSchema) { } else if (schema instanceof ComposedSchema) {
final ComposedSchema composed = (ComposedSchema) schema; final ComposedSchema composed = (ComposedSchema) schema;
Map<String, Schema> properties = new LinkedHashMap<String, Schema>(); Map<String, Schema> properties = new LinkedHashMap<String, Schema>();

View File

@ -2253,4 +2253,17 @@ public class DefaultCodegenTest {
assertEquals(openAPI.getComponents().getSchemas().size(), 2); assertEquals(openAPI.getComponents().getSchemas().size(), 2);
assertNull(cm.getDiscriminator()); assertNull(cm.getDiscriminator());
} }
@Test
public void arrayModelHasValidation() {
final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/issue7356.yaml");
final DefaultCodegen codegen = new DefaultCodegen();
codegen.setOpenAPI(openAPI);
String modelName = "ArrayWithValidations";
Schema sc = openAPI.getComponents().getSchemas().get(modelName);
CodegenModel cm = codegen.fromModel(modelName, sc);
assertEquals((int) cm.getMinItems(), 1);
}
} }

View File

@ -0,0 +1,14 @@
openapi: 3.0.1
info:
title: My title
description: API under test
version: 1.0.7
servers:
- url: https://localhost:9999/root
paths:
components:
schemas:
ArrayWithValidations:
type: array
minItems: 1
items: {}