[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()) {
modified = "EMPTY";
} else {
modified = value;
modified = value.replaceAll("-", "_");
modified = sanitizeKotlinSpecificNames(modified);
}

View File

@ -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");
}