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 41efd95da4e..ca04304a0e6 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 @@ -3585,6 +3585,7 @@ public class DefaultCodegen implements CodegenConfig { .map(p -> (Schema) p.get(discriminatorPropertyName)) .map(Schema::get$ref) .map(ModelUtils::getSimpleRef) + .map(this::toModelName) .orElseGet(() -> typeMapping.get("string")); discriminator.setPropertyType(propertyType); 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 9fae04d8c15..9debba85c2f 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 @@ -1529,6 +1529,25 @@ public class DefaultCodegenTest { Assert.assertEquals(cm.discriminator.getMappedModels(), hs); } + @Test + public void testComposedSchemaOneOfDiscriminatorMapPreAndPostFix() { + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/oneOfDiscriminator.yaml"); + DefaultCodegen codegen = new DefaultCodegen(); + codegen.setLegacyDiscriminatorBehavior(false); + codegen.setOpenAPI(openAPI); + codegen.setModelNamePrefix("Transfer"); + codegen.setModelNameSuffix("Dto"); + String modelName; + Schema sc; + CodegenModel cm; + + // ref oneOf models with enum property discriminator + modelName = "FruitOneOfEnumMappingDisc"; + sc = openAPI.getComponents().getSchemas().get(modelName); + cm = codegen.fromModel(modelName, sc); + assertThat(cm.discriminator.getPropertyType()).isEqualTo("TransferFruitTypeEnumDto"); + } + @Test public void testComposedSchemaMyPetsOneOfDiscriminatorMap() { final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/allOf_composition_discriminator.yaml");