From 836e40f1d22fca7466be20fa55b64da3e1c42db8 Mon Sep 17 00:00:00 2001 From: Justin Black Date: Fri, 3 Dec 2021 10:21:36 -0800 Subject: [PATCH] Fixes CodegenMediaType schema baseName (#11030) --- .../java/org/openapitools/codegen/DefaultCodegen.java | 8 ++++++-- .../java/org/openapitools/codegen/DefaultCodegenTest.java | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) 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 046d8609d3c..042ffc089c3 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 @@ -6558,6 +6558,10 @@ public class DefaultCodegen implements CodegenConfig { codegenParameter.pattern = toRegularExpression(schema.getPattern()); } + protected String toMediaTypeSchemaName(String contentType) { + return toModelName(contentType + "Schema"); + } + protected LinkedHashMap getContent(Content content, Set imports) { if (content == null) { return null; @@ -6605,9 +6609,9 @@ public class DefaultCodegen implements CodegenConfig { ceMap.put(propName, ce); } } - CodegenProperty schemaProp = fromProperty("schema", mt.getSchema()); - CodegenMediaType codegenMt = new CodegenMediaType(schemaProp, ceMap); String contentType = contentEntry.getKey(); + CodegenProperty schemaProp = fromProperty(toMediaTypeSchemaName(contentType), mt.getSchema()); + CodegenMediaType codegenMt = new CodegenMediaType(schemaProp, ceMap); cmtContent.put(contentType, codegenMt); } return cmtContent; 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 28748850f1b..87486da4c36 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 @@ -3922,11 +3922,13 @@ public class DefaultCodegenTest { CodegenMediaType mt = content.get("application/json"); assertNull(mt.getEncoding()); CodegenProperty cp = mt.getSchema(); + assertEquals(cp.baseName, "ApplicationJsonSchema"); assertNotNull(cp); mt = content.get("text/plain"); assertNull(mt.getEncoding()); cp = mt.getSchema(); + assertEquals(cp.baseName, "TextPlainSchema"); assertNotNull(cp); // Note: the inline model resolver has a bug for this use case; it extracts an inline request body into a component // but the schema it references is not string type @@ -3940,11 +3942,13 @@ public class DefaultCodegenTest { mt = content.get("application/json"); assertNull(mt.getEncoding()); cp = mt.getSchema(); + assertEquals(cp.baseName, "ApplicationJsonSchema"); assertEquals(cp.complexType, "coordinates"); mt = content.get("text/plain"); assertNull(mt.getEncoding()); cp = mt.getSchema(); + assertEquals(cp.baseName, "TextPlainSchema"); assertTrue(cp.isString); } }