From 91af8066cdee6bbf0ac72be9f2be27aa9eae1169 Mon Sep 17 00:00:00 2001 From: Yohana Khoury Date: Fri, 16 Dec 2016 05:56:38 +0200 Subject: [PATCH] boolean values from JSON are treated as strings (#4229) * Change the value types in additionalProperties and dynamicProperties to Object instead of String. Change methods that insert values to these maps to use Object as the type of the value instead of String. * Fix run-all-petstore run: use toString instead of casting --- .../codegen/config/CodegenConfigurator.java | 14 +++++++------- .../languages/AbstractTypeScriptClientCodegen.java | 2 +- .../codegen/config/CodegenConfiguratorTest.java | 12 ++++++++++-- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/config/CodegenConfigurator.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/config/CodegenConfigurator.java index 1dd1ced4d74..6ac586af8f4 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/config/CodegenConfigurator.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/config/CodegenConfigurator.java @@ -57,7 +57,7 @@ public class CodegenConfigurator { private Map systemProperties = new HashMap(); private Map instantiationTypes = new HashMap(); private Map typeMappings = new HashMap(); - private Map additionalProperties = new HashMap(); + private Map additionalProperties = new HashMap(); private Map importMappings = new HashMap(); private Set languageSpecificPrimitives = new HashSet(); private String gitUserId="GIT_USER_ID"; @@ -65,7 +65,7 @@ public class CodegenConfigurator { private String releaseNote="Minor update"; private String httpUserAgent; - private final Map dynamicProperties = new HashMap(); //the map that holds the JsonAnySetter/JsonAnyGetter values + private final Map dynamicProperties = new HashMap(); //the map that holds the JsonAnySetter/JsonAnyGetter values public CodegenConfigurator() { this.setOutputDir("."); @@ -255,16 +255,16 @@ public class CodegenConfigurator { return this; } - public Map getAdditionalProperties() { + public Map getAdditionalProperties() { return additionalProperties; } - public CodegenConfigurator setAdditionalProperties(Map additionalProperties) { + public CodegenConfigurator setAdditionalProperties(Map additionalProperties) { this.additionalProperties = additionalProperties; return this; } - public CodegenConfigurator addAdditionalProperty(String key, String value) { + public CodegenConfigurator addAdditionalProperty(String key, Object value) { this.additionalProperties.put(key, value); return this; } @@ -398,12 +398,12 @@ public class CodegenConfigurator { @JsonAnySetter public CodegenConfigurator addDynamicProperty(String name, Object value) { - dynamicProperties.put(name, value.toString()); + dynamicProperties.put(name, value); return this; } @JsonAnyGetter - public Map getDynamicProperties() { + public Map getDynamicProperties() { return dynamicProperties; } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java index e1b05af4ebb..2fccf1061cf 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -103,7 +103,7 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp } if (additionalProperties.containsKey(CodegenConstants.SUPPORTS_ES6)) { - setSupportsES6(Boolean.valueOf((String)additionalProperties.get(CodegenConstants.SUPPORTS_ES6))); + setSupportsES6(Boolean.valueOf(additionalProperties.get(CodegenConstants.SUPPORTS_ES6).toString())); additionalProperties.put("supportsES6", getSupportsES6()); } } diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/config/CodegenConfiguratorTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/config/CodegenConfiguratorTest.java index 6f39eb1af99..e3de3fdf8af 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/config/CodegenConfiguratorTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/config/CodegenConfiguratorTest.java @@ -156,12 +156,16 @@ public class CodegenConfiguratorTest { public void testAdditionalProperties() throws Exception { configurator.addAdditionalProperty("foo", "bar") - .addAdditionalProperty("hello", "world"); + .addAdditionalProperty("hello", "world") + .addAdditionalProperty("supportJava6", false) + .addAdditionalProperty("useRxJava", true); final ClientOptInput clientOptInput = setupAndRunGenericTest(configurator); assertValueInMap(clientOptInput.getConfig().additionalProperties(), "foo", "bar"); assertValueInMap(clientOptInput.getConfig().additionalProperties(), "hello", "world"); + assertValueInMap(clientOptInput.getConfig().additionalProperties(), "supportJava6", false); + assertValueInMap(clientOptInput.getConfig().additionalProperties(), "useRxJava", true); } @Test @@ -241,10 +245,14 @@ public class CodegenConfiguratorTest { @Test public void testDynamicProperties() throws Exception { configurator.addDynamicProperty(CodegenConstants.LOCAL_VARIABLE_PREFIX, "_"); + configurator.addDynamicProperty("supportJava6", false); + configurator.addDynamicProperty("useRxJava", true); final ClientOptInput clientOptInput = setupAndRunGenericTest(configurator); assertValueInMap(clientOptInput.getConfig().additionalProperties(), CodegenConstants.LOCAL_VARIABLE_PREFIX, "_"); + assertValueInMap(clientOptInput.getConfig().additionalProperties(), "supportJava6", false); + assertValueInMap(clientOptInput.getConfig().additionalProperties(), "useRxJava", true); } @Test @@ -344,7 +352,7 @@ public class CodegenConfiguratorTest { }}; } - private static void assertValueInMap(Map map, String propertyKey, String expectedPropertyValue) { + private static void assertValueInMap(Map map, String propertyKey, Object expectedPropertyValue) { assertTrue(map.containsKey(propertyKey)); assertEquals(map.get(propertyKey), expectedPropertyValue); }