Skip to content

Commit d911a71

Browse files
authored
[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 51a55bc.
1 parent 046be5d commit d911a71

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ public String toEnumVarName(String value, String datatype) {
572572
if (value.isEmpty()) {
573573
modified = "EMPTY";
574574
} else {
575-
modified = value;
575+
modified = value.replaceAll("-", "_");
576576
modified = sanitizeKotlinSpecificNames(modified);
577577
}
578578

modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/AbstractKotlinCodegenTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public void camlCaseEnumConverter() {
4848
codegen.setEnumPropertyNaming(camelCase.name());
4949
assertEquals(codegen.toEnumVarName("long Name", null), "longName");
5050
assertEquals(codegen.toEnumVarName("1long Name", null), "_1longName");
51+
assertEquals(codegen.toEnumVarName("long-Name", null), "longName");
5152
assertEquals(codegen.toEnumVarName("not1long Name", null), "not1longName");
5253
}
5354

@@ -56,6 +57,7 @@ public void uppercaseEnumConverter() {
5657
codegen.setEnumPropertyNaming(UPPERCASE.name());
5758
assertEquals(codegen.toEnumVarName("long Name", null), "LONG_NAME");
5859
assertEquals(codegen.toEnumVarName("1long Name", null), "_1LONG_NAME");
60+
assertEquals(codegen.toEnumVarName("long-Name", null), "LONG_NAME");
5961
assertEquals(codegen.toEnumVarName("not1long Name", null), "NOT1LONG_NAME");
6062
}
6163

@@ -64,6 +66,7 @@ public void snake_caseEnumConverter() {
6466
codegen.setEnumPropertyNaming(snake_case.name());
6567
assertEquals(codegen.toEnumVarName("long Name", null), "long_name");
6668
assertEquals(codegen.toEnumVarName("1long Name", null), "_1long_name");
69+
assertEquals(codegen.toEnumVarName("long-Name", null), "long_name");
6770
assertEquals(codegen.toEnumVarName("not1long Name", null), "not1long_name");
6871
}
6972

@@ -72,6 +75,7 @@ public void originalEnumConverter() {
7275
codegen.setEnumPropertyNaming(original.name());
7376
assertEquals(codegen.toEnumVarName("long Name", null), "long_Name");
7477
assertEquals(codegen.toEnumVarName("1long Name", null), "_1long_Name");
78+
assertEquals(codegen.toEnumVarName("long-Name", null), "longMinusName");
7579
assertEquals(codegen.toEnumVarName("not1long Name", null), "not1long_Name");
7680
assertEquals(codegen.toEnumVarName("data/*", null), "dataSlashStar");
7781
}
@@ -81,6 +85,7 @@ public void pascalCaseEnumConverter() {
8185
codegen.setEnumPropertyNaming(PascalCase.name());
8286
assertEquals(codegen.toEnumVarName("long Name", null), "LongName");
8387
assertEquals(codegen.toEnumVarName("1long Name", null), "_1longName");
88+
assertEquals(codegen.toEnumVarName("long-Name", null), "LongName");
8489
assertEquals(codegen.toEnumVarName("not1long Name", null), "Not1longName");
8590
}
8691

0 commit comments

Comments
 (0)