From 38d9430caf8bc181a15faf6654aa17c1613b316e Mon Sep 17 00:00:00 2001 From: "akihito.nakano" Date: Sat, 29 Dec 2018 13:55:00 +0900 Subject: [PATCH 1/5] Add test case --- .../codegen/InlineModelResolverTest.java | 16 +++++++++++++++- .../resources/3_0/inline_model_resolver.yaml | 12 ++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java index a1d99c556674..8ab6ebd6a57a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java @@ -385,8 +385,22 @@ public void resolveInlineBodyParameterWithTitle() throws Exception { ObjectSchema impl = (ObjectSchema) body; assertNotNull(impl.getProperties().get("address")); - } + } + */ + + @Test + public void nonModelRequestBody() { + OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/inline_model_resolver.yaml", null, new ParseOptions()).getOpenAPI(); + new InlineModelResolver().flatten(openAPI); + + MediaType mediaType = openAPI.getPaths().get("/non_model_request_body").getPost().getRequestBody().getContent().get("multipart/form-data"); + assertTrue(mediaType.getSchema() instanceof BinarySchema); + assertEquals("string", mediaType.getSchema().getType()); + assertEquals("binary", mediaType.getSchema().getFormat()); + } + +/* @Test public void notResolveNonModelBodyParameter() throws Exception { OpenAPI openapi = new OpenAPI(); diff --git a/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml b/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml index f2c18926b41c..a2be152cdeeb 100644 --- a/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml @@ -41,5 +41,17 @@ paths: responses: '200': description: OK + /non_model_request_body: + post: + requestBody: + content: + multipart/form-data: + schema: + type: string + format: binary + operationId: nonModelRequestBody + responses: + '200': + description: OK components: schemas: \ No newline at end of file From 7acd05484301af1c9723374fcd2af9a087210d4d Mon Sep 17 00:00:00 2001 From: "akihito.nakano" Date: Sat, 29 Dec 2018 13:55:55 +0900 Subject: [PATCH 2/5] Delete legacy test case --- .../codegen/InlineModelResolverTest.java | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java index 8ab6ebd6a57a..5d1dd1a9e27a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java @@ -401,28 +401,6 @@ public void nonModelRequestBody() { } /* - @Test - public void notResolveNonModelBodyParameter() throws Exception { - OpenAPI openapi = new OpenAPI(); - - openapi.path("/hello", new Path() - .get(new Operation() - .parameter(new BodyParameter() - .name("body") - .schema(new ObjectSchema() - .type("string") - .format("binary"))))); - - new InlineModelResolver().flatten(openapi); - - Operation operation = openapi.getPaths().get("/hello").getGet(); - BodyParameter bp = (BodyParameter)operation.getParameters().get(0); - assertTrue(bp.getSchema() instanceof ObjectSchema); - ObjectSchema m = (ObjectSchema) bp.getSchema(); - assertEquals("string", m.getType()); - assertEquals("binary", m.getFormat()); - } - @Test public void resolveInlineArrayBodyParameter() throws Exception { OpenAPI openapi = new OpenAPI(); From 5391b5cc126571697cb2b97ee590aa4d853d8873 Mon Sep 17 00:00:00 2001 From: "akihito.nakano" Date: Sat, 29 Dec 2018 14:25:13 +0900 Subject: [PATCH 3/5] Add a test case: inline array schema --- .../codegen/InlineModelResolverTest.java | 16 +++++++++++++++- .../resources/3_0/inline_model_resolver.yaml | 11 ++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java index 5d1dd1a9e27a..1107a41774c3 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java @@ -274,7 +274,21 @@ public void testInlineResponseModelWithTitle() throws Exception { assertTrue(model.getProperties().get("name") instanceof StringSchema); } + @Test + public void resolveInlineArraySchemaWithTitle() { + OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/inline_model_resolver.yaml", null, new ParseOptions()).getOpenAPI(); + new InlineModelResolver().flatten(openAPI); + + assertTrue(openAPI.getComponents().getSchemas().get("Users") instanceof ArraySchema); + ArraySchema users = (ArraySchema) openAPI.getComponents().getSchemas().get("Users"); + assertTrue(users.getItems() instanceof ObjectSchema); + + ObjectSchema user = (ObjectSchema) users.getItems(); + assertEquals("User", user.getTitle()); + assertTrue(user.getProperties().get("street") instanceof StringSchema); + assertTrue(user.getProperties().get("city") instanceof StringSchema); + } /* @Test @@ -325,7 +339,7 @@ public void resolveInlineArraySchemaWithoutTitle() throws Exception { Model user = openapi.getComponents().getSchemas().get("User_inner"); assertNotNull(user); assertEquals("description", user.getDescription()); - } + } */ @Test diff --git a/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml b/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml index a2be152cdeeb..9d4aa032c2b1 100644 --- a/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml @@ -54,4 +54,13 @@ paths: '200': description: OK components: - schemas: \ No newline at end of file + schemas: + Users: + type: array + items: + type: object + properties: + street: + type: string + city: + type: string From 74eeeed130f53a9cefda837db88e0ff184b8b812 Mon Sep 17 00:00:00 2001 From: "akihito.nakano" Date: Sat, 29 Dec 2018 14:26:01 +0900 Subject: [PATCH 4/5] Delete legacy test case --- .../codegen/InlineModelResolverTest.java | 52 ------------------- 1 file changed, 52 deletions(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java index 1107a41774c3..ace6452efec6 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java @@ -290,58 +290,6 @@ public void resolveInlineArraySchemaWithTitle() { assertTrue(user.getProperties().get("city") instanceof StringSchema); } - /* - @Test - public void resolveInlineArraySchemaWithTitle() throws Exception { - OpenAPI openapi = new OpenAPI(); - - openapi.getComponents().addSchemas("User", new ArraySchema() - .items(new ObjectSchema() - .title("InnerUserTitle") - .access("access") - .readOnly(false) - .required(true) - .description("description") - .name("name") - .addProperties("street", new StringSchema()) - .addProperties("city", new StringSchema()))); - - new InlineModelResolver().flatten(openapi); - - Schema model = openapi.getComponents().getSchemas().get("User"); - assertTrue(model instanceof ArraySchema); - - Schema user = openapi.getComponents().getSchemas().get("InnerUserTitle"); - assertNotNull(user); - assertEquals("description", user.getDescription()); - } -/* - @Test - public void resolveInlineArraySchemaWithoutTitle() throws Exception { - OpenAPI openapi = new OpenAPI(); - - openapi.getComponents().addSchemas("User", new ArraySchema() - .items(new ObjectSchema() - ._default("default") - .access("access") - .readOnly(false) - .required(true) - .description("description") - .name("name") - .addProperties("street", new StringSchema()) - .addProperties("city", new StringSchema()))); - - new InlineModelResolver().flatten(openapi); - - Schema model = openapi.getComponents().getSchemas().get("User"); - assertTrue(model instanceof ArraySchema); - - Model user = openapi.getComponents().getSchemas().get("User_inner"); - assertNotNull(user); - assertEquals("description", user.getDescription()); - } - */ - @Test public void resolveInlineRequestBody() { OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/inline_model_resolver.yaml", null, new ParseOptions()).getOpenAPI(); From efed31a61d9e9e5f48b5689dec177495e5912309 Mon Sep 17 00:00:00 2001 From: "akihito.nakano" Date: Sat, 29 Dec 2018 14:58:45 +0900 Subject: [PATCH 5/5] Fix test yaml --- .../src/test/resources/3_0/inline_model_resolver.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml b/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml index 9d4aa032c2b1..60e6ba402513 100644 --- a/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml @@ -58,6 +58,7 @@ components: Users: type: array items: + title: User type: object properties: street: