[JAVA][KOTLIN] fix var Naming for all uppercase with Numbers (#2794)

This commit is contained in:
Vincent Devos 2019-05-05 11:41:06 +02:00 committed by William Cheng
parent f2f12b9e04
commit c33547e0f1
5 changed files with 48 additions and 12 deletions

View File

@ -607,7 +607,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
}
// if it's all uppper case, do nothing
if (name.matches("^[A-Z_]*$")) {
if (name.matches("^[A-Z0-9_]*$")) {
return name;
}

View File

@ -717,7 +717,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co
}
// if it's all uppper case, do nothing
if (name.matches("^[A-Z_]*$")) {
if (name.matches("^[A-Z0-9_]*$")) {
return name;
}

View File

@ -68,20 +68,24 @@ public class AbstractJavaCodegenTest {
@Test
public void convertVarName() throws Exception {
Assert.assertEquals(fakeJavaCodegen.toVarName("name"), "name");
Assert.assertEquals(fakeJavaCodegen.toVarName("$name"), "$name");
Assert.assertEquals(fakeJavaCodegen.toVarName("nam$$e"), "nam$$e");
Assert.assertEquals(fakeJavaCodegen.toVarName("user-name"), "userName");
Assert.assertEquals(fakeJavaCodegen.toVarName("user_name"), "userName");
Assert.assertEquals(fakeJavaCodegen.toVarName("user|name"), "userName");
Assert.assertEquals(fakeJavaCodegen.toVarName("name"), "name");
Assert.assertEquals(fakeJavaCodegen.toVarName("$name"), "$name");
Assert.assertEquals(fakeJavaCodegen.toVarName("nam$$e"), "nam$$e");
Assert.assertEquals(fakeJavaCodegen.toVarName("user-name"), "userName");
Assert.assertEquals(fakeJavaCodegen.toVarName("user_name"), "userName");
Assert.assertEquals(fakeJavaCodegen.toVarName("user|name"), "userName");
Assert.assertEquals(fakeJavaCodegen.toVarName("uSername"), "uSername");
Assert.assertEquals(fakeJavaCodegen.toVarName("USERname"), "usERname");
Assert.assertEquals(fakeJavaCodegen.toVarName("USERNAME"), "USERNAME");
Assert.assertEquals(fakeJavaCodegen.toVarName("USER123NAME"), "USER123NAME");
}
@Test
public void convertModelName() throws Exception {
Assert.assertEquals(fakeJavaCodegen.toModelName("name"), "Name");
Assert.assertEquals(fakeJavaCodegen.toModelName("$name"), "Name");
Assert.assertEquals(fakeJavaCodegen.toModelName("nam#e"), "Name");
Assert.assertEquals(fakeJavaCodegen.toModelName("$another-fake?"), "AnotherFake");
Assert.assertEquals(fakeJavaCodegen.toModelName("name"), "Name");
Assert.assertEquals(fakeJavaCodegen.toModelName("$name"), "Name");
Assert.assertEquals(fakeJavaCodegen.toModelName("nam#e"), "Name");
Assert.assertEquals(fakeJavaCodegen.toModelName("$another-fake?"), "AnotherFake");
}
@Test

View File

@ -448,6 +448,34 @@ public class JavaModelTest {
Assert.assertFalse(property.isContainer);
}
@Test(description = "convert a model with upper-case property names and Numbers")
public void upperCaseNamesNumbersTest() {
final Schema schema = new Schema()
.description("a model with upper-case property names and numbers")
.addProperties("NAME1", new StringSchema())
.addRequiredItem("NAME1");
final DefaultCodegen codegen = new JavaClientCodegen();
OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", schema);
codegen.setOpenAPI(openAPI);
final CodegenModel cm = codegen.fromModel("sample", schema);
Assert.assertEquals(cm.name, "sample");
Assert.assertEquals(cm.classname, "Sample");
Assert.assertEquals(cm.vars.size(), 1);
final CodegenProperty property = cm.vars.get(0);
Assert.assertEquals(property.baseName, "NAME1");
Assert.assertEquals(property.getter, "getNAME1");
Assert.assertEquals(property.setter, "setNAME1");
Assert.assertEquals(property.dataType, "String");
Assert.assertEquals(property.name, "NAME1");
Assert.assertEquals(property.defaultValue, null);
Assert.assertEquals(property.baseType, "String");
Assert.assertFalse(property.hasMore);
Assert.assertTrue(property.required);
Assert.assertFalse(property.isContainer);
}
@Test(description = "convert a model with a 2nd char upper-case property names")
public void secondCharUpperCaseNamesTest() {
final Schema schema = new Schema()

View File

@ -117,6 +117,10 @@ public class AbstractKotlinCodegenTest {
assertEquals(codegen.toVarName("Pony?"), "ponyQuestionMark");
assertEquals(codegen.toVarName("nam#e"), "namHashE");
assertEquals(codegen.toVarName("Pony>=>="), "ponyGreaterThanEqualGreaterThanEqual");
assertEquals(codegen.toVarName("uSername"), "uSername");
assertEquals(codegen.toVarName("USERname"), "usERname");
assertEquals(codegen.toVarName("USERNAME"), "USERNAME");
assertEquals(codegen.toVarName("USER123NAME"), "USER123NAME");
}
}