From d911a71be93ae2a256533ccd5808b245258f9fa8 Mon Sep 17 00:00:00 2001 From: Miguel Teixeira <20668610+msnteixeira@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:43:31 +0100 Subject: [PATCH] [BUG][Kotlin] fix: kotlin code generator should sanitize enum values according to convention (#21459) * fix kotlin code generator should sanitize enum values according to convention * update samples * Revert "update samples" This reverts commit 51a55bcdfe3b58a6d767b3d42a7fa3181e27a9d6. --- .../codegen/languages/AbstractKotlinCodegen.java | 2 +- .../codegen/kotlin/AbstractKotlinCodegenTest.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java index 35795188b6f..3e0d42d1657 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java @@ -572,7 +572,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co if (value.isEmpty()) { modified = "EMPTY"; } else { - modified = value; + modified = value.replaceAll("-", "_"); modified = sanitizeKotlinSpecificNames(modified); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/AbstractKotlinCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/AbstractKotlinCodegenTest.java index aa2674f79af..e9149c07373 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/AbstractKotlinCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/AbstractKotlinCodegenTest.java @@ -48,6 +48,7 @@ public class AbstractKotlinCodegenTest { codegen.setEnumPropertyNaming(camelCase.name()); assertEquals(codegen.toEnumVarName("long Name", null), "longName"); assertEquals(codegen.toEnumVarName("1long Name", null), "_1longName"); + assertEquals(codegen.toEnumVarName("long-Name", null), "longName"); assertEquals(codegen.toEnumVarName("not1long Name", null), "not1longName"); } @@ -56,6 +57,7 @@ public class AbstractKotlinCodegenTest { codegen.setEnumPropertyNaming(UPPERCASE.name()); assertEquals(codegen.toEnumVarName("long Name", null), "LONG_NAME"); assertEquals(codegen.toEnumVarName("1long Name", null), "_1LONG_NAME"); + assertEquals(codegen.toEnumVarName("long-Name", null), "LONG_NAME"); assertEquals(codegen.toEnumVarName("not1long Name", null), "NOT1LONG_NAME"); } @@ -64,6 +66,7 @@ public class AbstractKotlinCodegenTest { codegen.setEnumPropertyNaming(snake_case.name()); assertEquals(codegen.toEnumVarName("long Name", null), "long_name"); assertEquals(codegen.toEnumVarName("1long Name", null), "_1long_name"); + assertEquals(codegen.toEnumVarName("long-Name", null), "long_name"); assertEquals(codegen.toEnumVarName("not1long Name", null), "not1long_name"); } @@ -72,6 +75,7 @@ public class AbstractKotlinCodegenTest { codegen.setEnumPropertyNaming(original.name()); assertEquals(codegen.toEnumVarName("long Name", null), "long_Name"); assertEquals(codegen.toEnumVarName("1long Name", null), "_1long_Name"); + assertEquals(codegen.toEnumVarName("long-Name", null), "longMinusName"); assertEquals(codegen.toEnumVarName("not1long Name", null), "not1long_Name"); assertEquals(codegen.toEnumVarName("data/*", null), "dataSlashStar"); } @@ -81,6 +85,7 @@ public class AbstractKotlinCodegenTest { codegen.setEnumPropertyNaming(PascalCase.name()); assertEquals(codegen.toEnumVarName("long Name", null), "LongName"); assertEquals(codegen.toEnumVarName("1long Name", null), "_1longName"); + assertEquals(codegen.toEnumVarName("long-Name", null), "LongName"); assertEquals(codegen.toEnumVarName("not1long Name", null), "Not1longName"); }