forked from loafle/openapi-generator-original
[java] Fix enum ref issue in array default value (#14638)
* fix enum ref issue in array default value (java) * update samples * update tests * update samples
This commit is contained in:
@@ -27,6 +27,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.openapitools.client.model.StringEnumRef;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
@@ -38,6 +39,7 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
* to test the default value of properties
|
||||
*/
|
||||
@JsonPropertyOrder({
|
||||
DefaultValue.JSON_PROPERTY_ARRAY_STRING_ENUM_REF_DEFAULT,
|
||||
DefaultValue.JSON_PROPERTY_ARRAY_STRING_ENUM_DEFAULT,
|
||||
DefaultValue.JSON_PROPERTY_ARRAY_STRING_DEFAULT,
|
||||
DefaultValue.JSON_PROPERTY_ARRAY_INTEGER_DEFAULT,
|
||||
@@ -47,6 +49,9 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
})
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
|
||||
public class DefaultValue {
|
||||
public static final String JSON_PROPERTY_ARRAY_STRING_ENUM_REF_DEFAULT = "array_string_enum_ref_default";
|
||||
private List<StringEnumRef> arrayStringEnumRefDefault = new ArrayList<>(Arrays.asList(StringEnumRef.SUCCESS, StringEnumRef.FAILURE));
|
||||
|
||||
/**
|
||||
* Gets or Sets arrayStringEnumDefault
|
||||
*/
|
||||
@@ -105,6 +110,39 @@ public class DefaultValue {
|
||||
public DefaultValue() {
|
||||
}
|
||||
|
||||
public DefaultValue arrayStringEnumRefDefault(List<StringEnumRef> arrayStringEnumRefDefault) {
|
||||
this.arrayStringEnumRefDefault = arrayStringEnumRefDefault;
|
||||
return this;
|
||||
}
|
||||
|
||||
public DefaultValue addArrayStringEnumRefDefaultItem(StringEnumRef arrayStringEnumRefDefaultItem) {
|
||||
if (this.arrayStringEnumRefDefault == null) {
|
||||
this.arrayStringEnumRefDefault = new ArrayList<>();
|
||||
}
|
||||
this.arrayStringEnumRefDefault.add(arrayStringEnumRefDefaultItem);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get arrayStringEnumRefDefault
|
||||
* @return arrayStringEnumRefDefault
|
||||
**/
|
||||
@javax.annotation.Nullable
|
||||
@JsonProperty(JSON_PROPERTY_ARRAY_STRING_ENUM_REF_DEFAULT)
|
||||
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
||||
|
||||
public List<StringEnumRef> getArrayStringEnumRefDefault() {
|
||||
return arrayStringEnumRefDefault;
|
||||
}
|
||||
|
||||
|
||||
@JsonProperty(JSON_PROPERTY_ARRAY_STRING_ENUM_REF_DEFAULT)
|
||||
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
||||
public void setArrayStringEnumRefDefault(List<StringEnumRef> arrayStringEnumRefDefault) {
|
||||
this.arrayStringEnumRefDefault = arrayStringEnumRefDefault;
|
||||
}
|
||||
|
||||
|
||||
public DefaultValue arrayStringEnumDefault(List<ArrayStringEnumDefaultEnum> arrayStringEnumDefault) {
|
||||
this.arrayStringEnumDefault = arrayStringEnumDefault;
|
||||
return this;
|
||||
@@ -327,7 +365,8 @@ public class DefaultValue {
|
||||
return false;
|
||||
}
|
||||
DefaultValue defaultValue = (DefaultValue) o;
|
||||
return Objects.equals(this.arrayStringEnumDefault, defaultValue.arrayStringEnumDefault) &&
|
||||
return Objects.equals(this.arrayStringEnumRefDefault, defaultValue.arrayStringEnumRefDefault) &&
|
||||
Objects.equals(this.arrayStringEnumDefault, defaultValue.arrayStringEnumDefault) &&
|
||||
Objects.equals(this.arrayStringDefault, defaultValue.arrayStringDefault) &&
|
||||
Objects.equals(this.arrayIntegerDefault, defaultValue.arrayIntegerDefault) &&
|
||||
Objects.equals(this.arrayString, defaultValue.arrayString) &&
|
||||
@@ -341,7 +380,7 @@ public class DefaultValue {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(arrayStringEnumDefault, arrayStringDefault, arrayIntegerDefault, arrayString, hashCodeNullable(arrayStringNullable), hashCodeNullable(stringNullable));
|
||||
return Objects.hash(arrayStringEnumRefDefault, arrayStringEnumDefault, arrayStringDefault, arrayIntegerDefault, arrayString, hashCodeNullable(arrayStringNullable), hashCodeNullable(stringNullable));
|
||||
}
|
||||
|
||||
private static <T> int hashCodeNullable(JsonNullable<T> a) {
|
||||
@@ -355,6 +394,7 @@ public class DefaultValue {
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class DefaultValue {\n");
|
||||
sb.append(" arrayStringEnumRefDefault: ").append(toIndentedString(arrayStringEnumRefDefault)).append("\n");
|
||||
sb.append(" arrayStringEnumDefault: ").append(toIndentedString(arrayStringEnumDefault)).append("\n");
|
||||
sb.append(" arrayStringDefault: ").append(toIndentedString(arrayStringDefault)).append("\n");
|
||||
sb.append(" arrayIntegerDefault: ").append(toIndentedString(arrayIntegerDefault)).append("\n");
|
||||
@@ -408,6 +448,17 @@ public class DefaultValue {
|
||||
|
||||
StringJoiner joiner = new StringJoiner("&");
|
||||
|
||||
// add `array_string_enum_ref_default` to the URL query string
|
||||
if (getArrayStringEnumRefDefault() != null) {
|
||||
for (int i = 0; i < getArrayStringEnumRefDefault().size(); i++) {
|
||||
if (getArrayStringEnumRefDefault().get(i) != null) {
|
||||
joiner.add(String.format("%sarray_string_enum_ref_default%s%s=%s", prefix, suffix,
|
||||
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
|
||||
URLEncoder.encode(String.valueOf(getArrayStringEnumRefDefault().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add `array_string_enum_default` to the URL query string
|
||||
if (getArrayStringEnumDefault() != null) {
|
||||
for (int i = 0; i < getArrayStringEnumDefault().size(); i++) {
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Echo Server API
|
||||
* Echo Server API
|
||||
*
|
||||
* The version of the OpenAPI document: 0.1.0
|
||||
* Contact: team@openapitools.org
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.StringJoiner;
|
||||
import java.util.Objects;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
|
||||
/**
|
||||
* Gets or Sets EnumStringRef
|
||||
*/
|
||||
public enum EnumStringRef {
|
||||
|
||||
SUCCESS("success"),
|
||||
|
||||
FAILURE("failure"),
|
||||
|
||||
UNCLASSIFIED("unclassified");
|
||||
|
||||
private String value;
|
||||
|
||||
EnumStringRef(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@JsonValue
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.valueOf(value);
|
||||
}
|
||||
|
||||
@JsonCreator
|
||||
public static EnumStringRef fromValue(String value) {
|
||||
for (EnumStringRef b : EnumStringRef.values()) {
|
||||
if (b.value.equals(value)) {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
throw new IllegalArgumentException("Unexpected value '" + value + "'");
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the instance into URL query string.
|
||||
*
|
||||
* @param prefix prefix of the query string
|
||||
* @return URL query string
|
||||
*/
|
||||
public String toUrlQueryString(String prefix) {
|
||||
if (prefix == null) {
|
||||
prefix = "";
|
||||
}
|
||||
|
||||
return String.format("%s=%s", prefix, this.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Echo Server API
|
||||
* Echo Server API
|
||||
*
|
||||
* The version of the OpenAPI document: 0.1.0
|
||||
* Contact: team@openapitools.org
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.StringJoiner;
|
||||
import java.util.Objects;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
|
||||
/**
|
||||
* Gets or Sets StringEnumRef
|
||||
*/
|
||||
public enum StringEnumRef {
|
||||
|
||||
SUCCESS("success"),
|
||||
|
||||
FAILURE("failure"),
|
||||
|
||||
UNCLASSIFIED("unclassified");
|
||||
|
||||
private String value;
|
||||
|
||||
StringEnumRef(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@JsonValue
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.valueOf(value);
|
||||
}
|
||||
|
||||
@JsonCreator
|
||||
public static StringEnumRef fromValue(String value) {
|
||||
for (StringEnumRef b : StringEnumRef.values()) {
|
||||
if (b.value.equals(value)) {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
throw new IllegalArgumentException("Unexpected value '" + value + "'");
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the instance into URL query string.
|
||||
*
|
||||
* @param prefix prefix of the query string
|
||||
* @return URL query string
|
||||
*/
|
||||
public String toUrlQueryString(String prefix) {
|
||||
if (prefix == null) {
|
||||
prefix = "";
|
||||
}
|
||||
|
||||
return String.format("%s=%s", prefix, this.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -150,6 +150,10 @@ public class CustomTest {
|
||||
public void testArrayDefaultValues() {
|
||||
// test array default values
|
||||
DefaultValue d = new DefaultValue();
|
||||
Assert.assertEquals(d.getArrayStringEnumRefDefault().size(), 2);
|
||||
Assert.assertEquals(d.getArrayStringEnumRefDefault().get(0), StringEnumRef.SUCCESS);
|
||||
Assert.assertEquals(d.getArrayStringEnumRefDefault().get(1), StringEnumRef.FAILURE);
|
||||
|
||||
Assert.assertEquals(d.getArrayStringEnumDefault().size(), 2);
|
||||
Assert.assertEquals(d.getArrayStringEnumDefault().get(0), DefaultValue.ArrayStringEnumDefaultEnum.SUCCESS);
|
||||
Assert.assertEquals(d.getArrayStringEnumDefault().get(1), DefaultValue.ArrayStringEnumDefaultEnum.FAILURE);
|
||||
@@ -188,6 +192,10 @@ public class CustomTest {
|
||||
DefaultValue d = apiClient.getObjectMapper().readValue(str, new TypeReference<DefaultValue>() {
|
||||
});
|
||||
|
||||
Assert.assertEquals(d.getArrayStringEnumRefDefault().size(), 2);
|
||||
Assert.assertEquals(d.getArrayStringEnumRefDefault().get(0), StringEnumRef.SUCCESS);
|
||||
Assert.assertEquals(d.getArrayStringEnumRefDefault().get(1), StringEnumRef.FAILURE);
|
||||
|
||||
Assert.assertEquals(d.getArrayStringEnumDefault().size(), 2);
|
||||
Assert.assertEquals(d.getArrayStringEnumDefault().get(0), DefaultValue.ArrayStringEnumDefaultEnum.SUCCESS);
|
||||
Assert.assertEquals(d.getArrayStringEnumDefault().get(1), DefaultValue.ArrayStringEnumDefaultEnum.FAILURE);
|
||||
@@ -203,18 +211,21 @@ public class CustomTest {
|
||||
Assert.assertNull(d.getArrayStringNullable());
|
||||
Assert.assertEquals(d.getArrayString().size(), 0);
|
||||
|
||||
Assert.assertEquals(apiClient.getObjectMapper().writeValueAsString(d), "{\"array_string_enum_default\":[\"success\",\"failure\"],\"array_string_default\":[\"failure\",\"skipped\"],\"array_integer_default\":[1,3],\"array_string\":[]}");
|
||||
Assert.assertEquals(apiClient.getObjectMapper().writeValueAsString(d), "{\"array_string_enum_ref_default\":[\"success\",\"failure\"],\"array_string_enum_default\":[\"success\",\"failure\"],\"array_string_default\":[\"failure\",\"skipped\"],\"array_integer_default\":[1,3],\"array_string\":[]}");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDefaultValuesSerializationWithJSONString() throws IOException {
|
||||
ApiClient apiClient = new ApiClient();
|
||||
|
||||
String str = "{ \"array_string_enum_default\": [\"unclassified\"], \"array_string_default\": [\"failure\"] }";
|
||||
String str = "{ \"array_string_enum_ref_default\": [\"unclassified\"], \"array_string_enum_default\": [\"unclassified\"], \"array_string_default\": [\"failure\"] }";
|
||||
|
||||
DefaultValue d = apiClient.getObjectMapper().readValue(str, new TypeReference<DefaultValue>() {
|
||||
});
|
||||
|
||||
Assert.assertEquals(d.getArrayStringEnumRefDefault().size(), 1);
|
||||
Assert.assertEquals(d.getArrayStringEnumRefDefault().get(0), StringEnumRef.UNCLASSIFIED);
|
||||
|
||||
Assert.assertEquals(d.getArrayStringEnumDefault().size(), 1);
|
||||
Assert.assertEquals(d.getArrayStringEnumDefault().get(0), DefaultValue.ArrayStringEnumDefaultEnum.UNCLASSIFIED);
|
||||
|
||||
@@ -228,7 +239,7 @@ public class CustomTest {
|
||||
Assert.assertNull(d.getArrayStringNullable());
|
||||
Assert.assertEquals(d.getArrayString().size(), 0);
|
||||
|
||||
Assert.assertEquals(apiClient.getObjectMapper().writeValueAsString(d), "{\"array_string_enum_default\":[\"unclassified\"],\"array_string_default\":[\"failure\"],\"array_integer_default\":[1,3],\"array_string\":[]}");
|
||||
Assert.assertEquals(apiClient.getObjectMapper().writeValueAsString(d), "{\"array_string_enum_ref_default\":[\"unclassified\"],\"array_string_enum_default\":[\"unclassified\"],\"array_string_default\":[\"failure\"],\"array_integer_default\":[1,3],\"array_string\":[]}");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -247,7 +258,6 @@ public class CustomTest {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test form parameter(s)
|
||||
*
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Echo Server API
|
||||
* Echo Server API
|
||||
*
|
||||
* The version of the OpenAPI document: 0.1.0
|
||||
* Contact: team@openapitools.org
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
|
||||
/**
|
||||
* Model tests for EnumStringRef
|
||||
*/
|
||||
public class EnumStringRefTest {
|
||||
/**
|
||||
* Model tests for EnumStringRef
|
||||
*/
|
||||
@Test
|
||||
public void testEnumStringRef() {
|
||||
// TODO: test EnumStringRef
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Echo Server API
|
||||
* Echo Server API
|
||||
*
|
||||
* The version of the OpenAPI document: 0.1.0
|
||||
* Contact: team@openapitools.org
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
|
||||
/**
|
||||
* Model tests for StringEnumRef
|
||||
*/
|
||||
public class StringEnumRefTest {
|
||||
/**
|
||||
* Model tests for StringEnumRef
|
||||
*/
|
||||
@Test
|
||||
public void testStringEnumRef() {
|
||||
// TODO: test StringEnumRef
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user