From 681e821b719065099470fe4df69f4d3df95ba75c Mon Sep 17 00:00:00 2001 From: spacether Date: Sat, 5 Sep 2020 18:02:00 -0700 Subject: [PATCH] Syncs validation properties for arraymodels (#7357) * Syncs validation properties for arraymodels * Adds arrayModelHasValidation test --- .../org/openapitools/codegen/DefaultCodegen.java | 1 + .../openapitools/codegen/DefaultCodegenTest.java | 13 +++++++++++++ .../src/test/resources/3_0/issue7356.yaml | 14 ++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 modules/openapi-generator/src/test/resources/3_0/issue7356.yaml diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index a9bb1318147..6fee1e5686b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -2272,6 +2272,7 @@ public class DefaultCodegen implements CodegenConfig { m.isArrayModel = true; m.arrayModelType = fromProperty(name, schema).complexType; addParentContainer(m, name, schema); + ModelUtils.syncValidationProperties(schema, m); } else if (schema instanceof ComposedSchema) { final ComposedSchema composed = (ComposedSchema) schema; Map properties = new LinkedHashMap(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java index 4dec1cb3441..f36cd51e2c3 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java @@ -2253,4 +2253,17 @@ public class DefaultCodegenTest { assertEquals(openAPI.getComponents().getSchemas().size(), 2); 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); + } + } diff --git a/modules/openapi-generator/src/test/resources/3_0/issue7356.yaml b/modules/openapi-generator/src/test/resources/3_0/issue7356.yaml new file mode 100644 index 00000000000..bcdf72f5bf6 --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/issue7356.yaml @@ -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: {} \ No newline at end of file