diff --git a/src/Atc.OpenApi/Extensions/OpenApiSchemaExtensions.cs b/src/Atc.OpenApi/Extensions/OpenApiSchemaExtensions.cs index 6943dd20..4d2a2e22 100644 --- a/src/Atc.OpenApi/Extensions/OpenApiSchemaExtensions.cs +++ b/src/Atc.OpenApi/Extensions/OpenApiSchemaExtensions.cs @@ -780,9 +780,13 @@ public static string GetModelName(this OpenApiSchema schema, bool ensureFirstCha if (ensureFirstCharacterToUpper) { - return schema.Items is null - ? schema.Reference.Id.EnsureFirstCharacterToUpper() - : schema.Items.Reference.Id.EnsureFirstCharacterToUpper(); + var dataType = schema.Items is null + ? schema.Reference.Id + : schema.Items.Reference.Id; + + return string.Equals(dataType, OpenApiDataTypeConstants.String, StringComparison.Ordinal) + ? dataType + : dataType.PascalCase(ModelNameSeparators, removeSeparators: true); } return schema.Items is null diff --git a/test/Atc.OpenApi.Tests/XUnitTestData/TestMemberDataForOpenApiSchemaExtensions.cs b/test/Atc.OpenApi.Tests/XUnitTestData/TestMemberDataForOpenApiSchemaExtensions.cs index 78fb9368..2c51d57c 100644 --- a/test/Atc.OpenApi.Tests/XUnitTestData/TestMemberDataForOpenApiSchemaExtensions.cs +++ b/test/Atc.OpenApi.Tests/XUnitTestData/TestMemberDataForOpenApiSchemaExtensions.cs @@ -1287,6 +1287,11 @@ public static TheoryData GetModelNameItemData { "Pet", TestDataOpenApiFactory.CreateSchemaPet() }, { string.Empty, TestDataOpenApiSchemaOfTypeFactory.CreateString() }, { string.Empty, TestDataOpenApiSchemaOfTypeFactory.CreateListString() }, + { "HalloWorld", TestDataOpenApiFactory.CreateSchemaWithModelName("Hallo World") }, + { "HalloWorld", TestDataOpenApiFactory.CreateSchemaWithModelName("Hallo_World_") }, + { "HalloWorld", TestDataOpenApiFactory.CreateSchemaWithModelName("Hallo.World_") }, + { "HalloWorld", TestDataOpenApiFactory.CreateSchemaWithModelName("HalloWorld_") }, + { "HalloWorld", TestDataOpenApiFactory.CreateSchemaWithModelName("HalloWorld.") }, }; public static TheoryData GetModelNameEnsureFirstCharacterToUpperItemData