diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 066f424bfa16..cdad83de4d5d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -585,6 +585,11 @@ public String toVarName(String name) { name = "_u"; } + // numbers are not allowed at the beginning + if (name.matches("^\\d.*")) { + name = "_" + name; + } + // if it's all uppper case, do nothing if (name.matches("^[A-Z0-9_]*$")) { return name; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java index 3db02060a1b7..f2569fb6709a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java @@ -89,15 +89,31 @@ public void convertVarName() throws Exception { Assert.assertEquals(fakeJavaCodegen.toVarName("USERname"), "usERname"); Assert.assertEquals(fakeJavaCodegen.toVarName("USERNAME"), "USERNAME"); Assert.assertEquals(fakeJavaCodegen.toVarName("USER123NAME"), "USER123NAME"); - } + Assert.assertEquals(fakeJavaCodegen.toVarName("1"), "_1"); + Assert.assertEquals(fakeJavaCodegen.toVarName("1a"), "_1a"); + Assert.assertEquals(fakeJavaCodegen.toVarName("1A"), "_1A"); + Assert.assertEquals(fakeJavaCodegen.toVarName("1AAAA"), "_1AAAA"); + Assert.assertEquals(fakeJavaCodegen.toVarName("1AAaa"), "_1aAaa"); + } - @Test - public void convertModelName() throws Exception { + @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("1a"), "Model1a"); + Assert.assertEquals(fakeJavaCodegen.toModelName("1A"), "Model1A"); + Assert.assertEquals(fakeJavaCodegen.toModelName("AAAb"), "AAAb"); + Assert.assertEquals(fakeJavaCodegen.toModelName("aBB"), "ABB"); + Assert.assertEquals(fakeJavaCodegen.toModelName("AaBBa"), "AaBBa"); + Assert.assertEquals(fakeJavaCodegen.toModelName("A_B"), "AB"); + Assert.assertEquals(fakeJavaCodegen.toModelName("A-B"), "AB"); + Assert.assertEquals(fakeJavaCodegen.toModelName("Aa_Bb"), "AaBb"); + Assert.assertEquals(fakeJavaCodegen.toModelName("Aa-Bb"), "AaBb"); + Assert.assertEquals(fakeJavaCodegen.toModelName("Aa_bb"), "AaBb"); + Assert.assertEquals(fakeJavaCodegen.toModelName("Aa-bb"), "AaBb"); + } @Test public void testInitialConfigValues() throws Exception { @@ -163,7 +179,7 @@ public void testAdditionalPropertiesPutForConfigValues() throws Exception { } @Test - public void toEnumValue(){ + public void toEnumValue() { final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); Assert.assertEquals(codegen.toEnumValue("1", "Integer"), "1"); Assert.assertEquals(codegen.toEnumValue("42", "Double"), "42"); @@ -213,7 +229,7 @@ public void apiDocFileFolder() { codegen.setOutputDir("/User/open.api.tools"); Assert.assertEquals(codegen.apiDocFileFolder(), "/User/open.api.tools/docs/".replace('/', File.separatorChar)); } - + @Test(description = "tests if API version specification is used if no version is provided in additional properties") public void openApiversionTest() { final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); @@ -310,6 +326,7 @@ public String getHelp() { /** * Gets artifact version. * Only for testing purposes. + * * @return version */ public String getArtifactVersion() {