From aeadd7678beebc6668a0f457009eecc6fc269614 Mon Sep 17 00:00:00 2001 From: mbohlool Date: Fri, 21 Oct 2016 14:00:57 -0700 Subject: [PATCH] Fix sanitizeTag to retain numbers and underscore in tag names --- .../main/java/io/swagger/codegen/DefaultCodegen.java | 7 ++++++- .../src/test/java/io/swagger/codegen/CodegenTest.java | 11 +++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index e50d69dabfb..ff75ae6255a 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -3171,7 +3171,12 @@ public class DefaultCodegen { buf.append(StringUtils.capitalize(part)); } } - return buf.toString().replaceAll("[^a-zA-Z ]", ""); + String returnTag = buf.toString().replaceAll("[^a-zA-Z0-9_]", ""); + if (returnTag.matches("\\d.*")) { + return "_" + returnTag; + } else { + return returnTag; + } } /** diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/CodegenTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/CodegenTest.java index e96ad452806..37050a1be4b 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/CodegenTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/CodegenTest.java @@ -13,6 +13,17 @@ import java.util.List; public class CodegenTest { + @Test(description = "test sanitizeTag") + public void sanitizeTagTest() { + final DefaultCodegen codegen = new DefaultCodegen(); + Assert.assertEquals(codegen.sanitizeTag("foo"), "Foo"); + Assert.assertEquals(codegen.sanitizeTag("foo bar"), "FooBar"); + Assert.assertEquals(codegen.sanitizeTag("foo_bar"), "Foo_bar"); + Assert.assertEquals(codegen.sanitizeTag("foo1 bar2"), "Foo1Bar2"); + Assert.assertEquals(codegen.sanitizeTag("foo bar 1"), "FooBar1"); + Assert.assertEquals(codegen.sanitizeTag("1foo"), "_1foo"); + } + @Test(description = "read a file upload param from a 2.0 spec") public void fileUploadParamTest() { final Swagger model = parseAndPrepareSwagger("src/test/resources/2_0/petstore.json");