[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.
This commit is contained in:
Miguel Teixeira 2025-06-25 16:43:31 +01:00 committed by GitHub
parent 046be5dba1
commit d911a71be9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 1 deletions

View File

@ -572,7 +572,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co
if (value.isEmpty()) { if (value.isEmpty()) {
modified = "EMPTY"; modified = "EMPTY";
} else { } else {
modified = value; modified = value.replaceAll("-", "_");
modified = sanitizeKotlinSpecificNames(modified); modified = sanitizeKotlinSpecificNames(modified);
} }

View File

@ -48,6 +48,7 @@ public class AbstractKotlinCodegenTest {
codegen.setEnumPropertyNaming(camelCase.name()); codegen.setEnumPropertyNaming(camelCase.name());
assertEquals(codegen.toEnumVarName("long Name", null), "longName"); assertEquals(codegen.toEnumVarName("long Name", null), "longName");
assertEquals(codegen.toEnumVarName("1long Name", null), "_1longName"); assertEquals(codegen.toEnumVarName("1long Name", null), "_1longName");
assertEquals(codegen.toEnumVarName("long-Name", null), "longName");
assertEquals(codegen.toEnumVarName("not1long Name", null), "not1longName"); assertEquals(codegen.toEnumVarName("not1long Name", null), "not1longName");
} }
@ -56,6 +57,7 @@ public class AbstractKotlinCodegenTest {
codegen.setEnumPropertyNaming(UPPERCASE.name()); codegen.setEnumPropertyNaming(UPPERCASE.name());
assertEquals(codegen.toEnumVarName("long Name", null), "LONG_NAME"); assertEquals(codegen.toEnumVarName("long Name", null), "LONG_NAME");
assertEquals(codegen.toEnumVarName("1long Name", null), "_1LONG_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"); assertEquals(codegen.toEnumVarName("not1long Name", null), "NOT1LONG_NAME");
} }
@ -64,6 +66,7 @@ public class AbstractKotlinCodegenTest {
codegen.setEnumPropertyNaming(snake_case.name()); codegen.setEnumPropertyNaming(snake_case.name());
assertEquals(codegen.toEnumVarName("long Name", null), "long_name"); assertEquals(codegen.toEnumVarName("long Name", null), "long_name");
assertEquals(codegen.toEnumVarName("1long Name", null), "_1long_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"); assertEquals(codegen.toEnumVarName("not1long Name", null), "not1long_name");
} }
@ -72,6 +75,7 @@ public class AbstractKotlinCodegenTest {
codegen.setEnumPropertyNaming(original.name()); codegen.setEnumPropertyNaming(original.name());
assertEquals(codegen.toEnumVarName("long Name", null), "long_Name"); assertEquals(codegen.toEnumVarName("long Name", null), "long_Name");
assertEquals(codegen.toEnumVarName("1long Name", null), "_1long_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("not1long Name", null), "not1long_Name");
assertEquals(codegen.toEnumVarName("data/*", null), "dataSlashStar"); assertEquals(codegen.toEnumVarName("data/*", null), "dataSlashStar");
} }
@ -81,6 +85,7 @@ public class AbstractKotlinCodegenTest {
codegen.setEnumPropertyNaming(PascalCase.name()); codegen.setEnumPropertyNaming(PascalCase.name());
assertEquals(codegen.toEnumVarName("long Name", null), "LongName"); assertEquals(codegen.toEnumVarName("long Name", null), "LongName");
assertEquals(codegen.toEnumVarName("1long Name", null), "_1longName"); assertEquals(codegen.toEnumVarName("1long Name", null), "_1longName");
assertEquals(codegen.toEnumVarName("long-Name", null), "LongName");
assertEquals(codegen.toEnumVarName("not1long Name", null), "Not1longName"); assertEquals(codegen.toEnumVarName("not1long Name", null), "Not1longName");
} }