From d0e989bc17ee20b9a73831c1fe953f6b7afd50a1 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 02:29:11 +0500 Subject: [PATCH 01/14] feat(additional-properties): add typed additional properties support for models This commit adds the handling for the typed additional properties in serialization (form and JSON) and de-serialization. Also, contains the tests for the newly added changes. --- .../core/types/AdditionalProperties.java | 108 +++++++ .../core/utilities/ConversionHelper.java | 165 +++++++++++ .../apimatic/core/utilities/CoreHelper.java | 51 ++-- .../core/utilities/LocalDateTimeHelper.java | 13 + src/test/java/Constants.java | 17 ++ .../core/constants/DateTimeConstants.java | 18 ++ ...rayOfNonPrimitiveAdditionalProperties.java | 164 +++++++++++ ...dArrayOfPrimitiveAdditionalProperties.java | 156 ++++++++++ ...MapOfNonPrimitiveAdditionalProperties.java | 163 +++++++++++ ...yOfMapOfPrimitiveAdditionalProperties.java | 157 ++++++++++ ...rayOfNonPrimitiveAdditionalProperties.java | 164 +++++++++++ ...hArrayOfPrimitiveAdditionalProperties.java | 156 ++++++++++ ...ModelWithDateTimeAdditionalProperties.java | 158 ++++++++++ ...rayOfNonPrimitiveAdditionalProperties.java | 163 +++++++++++ ...fArrayOfPrimitiveAdditionalProperties.java | 156 ++++++++++ ...MapOfNonPrimitiveAdditionalProperties.java | 162 +++++++++++ ...ithMapOfPrimitiveAdditionalProperties.java | 153 ++++++++++ ...lWithNonPrimitiveAdditionalProperties.java | 160 +++++++++++ ...odelWithPrimitiveAdditionalProperties.java | 153 ++++++++++ ...ithTypeCombinatorAdditionalProperties.java | 162 +++++++++++ .../core/type/AdditionalPropertiesTest.java | 261 +++++++++++++++++ .../core/utilities/ConversionHelperTest.java | 165 +++++++++++ .../core/utilities/CoreHelperTest.java | 270 +++++++++++++++++- .../utilities/LocalDateTimeHelperTest.java | 221 +++++++------- 24 files changed, 3386 insertions(+), 130 deletions(-) create mode 100644 src/main/java/io/apimatic/core/types/AdditionalProperties.java create mode 100644 src/main/java/io/apimatic/core/utilities/ConversionHelper.java create mode 100644 src/test/java/Constants.java create mode 100644 src/test/java/apimatic/core/constants/DateTimeConstants.java create mode 100644 src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java create mode 100644 src/test/java/apimatic/core/type/AdditionalPropertiesTest.java create mode 100644 src/test/java/apimatic/core/utilities/ConversionHelperTest.java diff --git a/src/main/java/io/apimatic/core/types/AdditionalProperties.java b/src/main/java/io/apimatic/core/types/AdditionalProperties.java new file mode 100644 index 00000000..84d44634 --- /dev/null +++ b/src/main/java/io/apimatic/core/types/AdditionalProperties.java @@ -0,0 +1,108 @@ +package io.apimatic.core.types; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import com.fasterxml.jackson.annotation.JsonGetter; + +/** + * A generic class for additional properties in a model. + */ +public class AdditionalProperties { + + /** + * Map to store additional properties. + */ + private Map additionalProperties = new LinkedHashMap(); + + /** + * List to store model properties. + */ + private Set modelProperties = new HashSet(); + + /** + * Default constructor. + */ + public AdditionalProperties() { + } + + /** + * Parameterized constructor. + * @param classInstance The instance of the class having additional properties. + */ + public AdditionalProperties(Class classInstance) { + Method[] methods = classInstance.getMethods(); + for (Method method : methods) { + Annotation annotation = method.getAnnotation(JsonGetter.class); + if (annotation != null) { + modelProperties.add(((JsonGetter) annotation).value()); + } + } + } + + /** + * The getter for provided additional properties. + * @return Returns the map of typed additional properties. + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * The setter for an additional property. + * @param key The additional property key. + * @param value The type additional property value. + * @throws IllegalArgumentException if there is a conflict between key and any + * model property. + */ + public void setAdditionalProperty(String key, T value) { + if (key == null || key.isBlank()) + return; + + if (modelProperties.contains(key)) { + // key is reserved for properties + throw new IllegalArgumentException("Key '" + key + "' is conflicting with model property"); + } + additionalProperties.put(key, value); + } + + /** + * The setter for an additional property. + * @param key The additional property key. + * @param value The type additional property value. + * @param skipNullValue The flag to skip null values in the additional properties map. + * @throws IllegalArgumentException if there is a conflict between key and any + * model property. + */ + public void setAdditionalProperty(String key, T value, boolean skipNullValue) { + if (skipNullValue && value == null) + return; + + setAdditionalProperty(key, value); + } + + @Override + public String toString() { + if (additionalProperties.isEmpty()) { + return ""; + } + + return ", " + additionalProperties.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()) + .collect(Collectors.joining(", ")); + } + + /** + * The getter for provided additional properties. + * @param key The additional property key to search. + * @return the type additional property value associated with the provided + * key. + */ + public T getAdditionalProperty(String key) { + return additionalProperties.get(key); + } +} diff --git a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java new file mode 100644 index 00000000..b99db8dc --- /dev/null +++ b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java @@ -0,0 +1,165 @@ +package io.apimatic.core.utilities; + +import java.util.AbstractMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * This is a Helper class for the coversion of type for all structures supported + * in the SDK. + */ +public class ConversionHelper { + /** + * Converts a single object to the specified type. + * + * @param value The object to convert. + * @param conversionFunction The function to apply for conversion. + * @return The converted object of type {@code S}, or null if conversion fails. + */ + public static S convertToSimpleType(Object value, Function conversionFunction) { + try { + return conversionFunction.apply(value); + } catch (Exception e) { + return null; + } + } + + /** + * Converts a map of objects to a map of the specified type. + * + * @param value The map of objects to convert. + * @param conversionFunction The function to apply for conversion of each value. + * @return A map with values converted to type {@code S}, skipping unconvertible + * values. + */ + @SuppressWarnings("unchecked") + public static Map convertToMap(Object value, Function conversionFunction) { + if (value == null) + return null; + + try { + Map valueMap = (Map) value; + Map filteredMap = valueMap.entrySet().stream().map(entry -> { + S convertedValue = convertToSimpleType(entry.getValue(), conversionFunction); + return new AbstractMap.SimpleEntry<>(entry.getKey(), convertedValue); + }).filter(entry -> entry.getValue() != null) // Filter out null values + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + + return filteredMap; + } catch (Exception e) { + return null; + } + } + + /** + * Converts a list of objects to a list of the specified type. + * + * @param value The list of objects to convert. + * @param conversionFunction The function to apply for conversion of each item. + * @return A list with elements converted to type {@code S}, skipping + * unconvertible items. + */ + @SuppressWarnings("unchecked") + public static List convertToArray(Object value, Function conversionFunction) { + try { + List valueList = (List) value; + return valueList.stream().map(item -> convertToSimpleType(item, conversionFunction)) + .filter(item -> item != null).collect(Collectors.toList()); + } catch (Exception e) { + return null; + } + } + + /** + * Converts a list of maps to a list of maps with values of the specified type. + * + * @param value The list of maps to convert. + * @param conversionFunction The function to apply for conversion of each map's + * values. + * @return A list of maps with converted values of type {@code S}, skipping + * unconvertible items. + */ + @SuppressWarnings("unchecked") + public static List> convertToArrayOfMap(Object value, Function conversionFunction) { + try { + List valueList = (List) value; + return valueList.stream().map(item -> convertToMap(item, conversionFunction)) + .filter(map -> map != null && !map.isEmpty()).collect(Collectors.toList()); + } catch (Exception e) { + return null; + } + } + + /** + * Converts a map of lists to a map with lists of the specified type. + * + * @param value The map of lists to convert. + * @param conversionFunction The function to apply for conversion of each list's + * elements. + * @return A map with lists converted to type {@code S}, skipping unconvertible + * items. + */ + @SuppressWarnings("unchecked") + public static Map> convertToMapOfArray(Object value, Function conversionFunction) { + try { + Map valueMap = (Map) value; + return valueMap.entrySet().stream() + .map(entry -> Map.entry(entry.getKey(), convertToArray(entry.getValue(), conversionFunction))) + .filter(entry -> entry.getValue() != null && !entry.getValue().isEmpty()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + } catch (Exception e) { + return null; + } + } + + /** + * Converts an n-dimensional array to a nested list with elements of the + * specified type. + * + * @param value The n-dimensional array to convert. + * @param conversionFunction The function to apply for conversion of each + * element. + * @param dimensionCount The depth of the nested structure. + * @return A nested list with elements converted to type {@code T}, skipping + * unconvertible items. + */ + @SuppressWarnings("unchecked") + public static T convertToNDimensionalArray(Object value, Function conversionFunction, + int dimensionCount) { + try { + return (T) convertToNDimensionalArrayInternal(value, conversionFunction, dimensionCount); + } catch (Exception e) { + return null; + } + } + + /** + * Applies the conversion function to the n-dimensional arrays recursively. + * + * @param value The n-dimensional array to convert. + * @param conversionFunction The function to apply for conversion of each + * element. + * @param dimensionCount The depth of the nested structure. + * @return A nested list with elements converted to type {@code S}, skipping + * unconvertible items. + */ + @SuppressWarnings("unchecked") + private static List convertToNDimensionalArrayInternal(Object value, Function conversionFunction, + int dimensionCount) { + try { + if (dimensionCount == 1) { + return convertToArray(value, conversionFunction); + } else if (dimensionCount > 1) { + List valueList = (List) value; + return valueList.stream() + .map(item -> convertToNDimensionalArray(item, conversionFunction, dimensionCount - 1)) + .filter(item -> item != null && !((List) item).isEmpty()).collect(Collectors.toList()); + } + } catch (Exception e) { + // Ignoring in order to handle the exception silently. + } + return null; + } +} diff --git a/src/main/java/io/apimatic/core/utilities/CoreHelper.java b/src/main/java/io/apimatic/core/utilities/CoreHelper.java index 231fcf42..bd3b8313 100644 --- a/src/main/java/io/apimatic/core/utilities/CoreHelper.java +++ b/src/main/java/io/apimatic/core/utilities/CoreHelper.java @@ -35,6 +35,8 @@ import javax.xml.bind.Unmarshaller; import javax.xml.namespace.QName; import javax.xml.transform.stream.StreamSource; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonGetter; import com.fasterxml.jackson.core.JsonParser; @@ -147,6 +149,10 @@ private static JsonSerializer getCollectionCustomSerializer( * @return The JsonSerializer instance of the required type. */ private static JsonSerializer getSerializer(JsonSerialize serializerAnnotation) { + if (serializerAnnotation == null) { + return null; + } + try { return serializerAnnotation.using().getDeclaredConstructor().newInstance(); } catch (Exception e) { @@ -162,6 +168,10 @@ private static JsonSerializer getSerializer(JsonSerialize serializerAnnotatio * @return The JsonSerializer instance of the required type. */ private static JsonSerializer getCollectionSerializer(JsonSerialize serializerAnnotation) { + if (serializerAnnotation == null) { + return null; + } + try { return serializerAnnotation.contentUsing().getDeclaredConstructor().newInstance(); } catch (Exception e) { @@ -1214,7 +1224,8 @@ private static void objectToList(String objName, Object obj, // Is a public/protected getter or internalGetter? if (method.getParameterTypes().length != 0 - || Modifier.isPrivate(method.getModifiers()) + || (Modifier.isPrivate(method.getModifiers()) + && !method.getName().equals("getAdditionalProperties")) || (!method.getName().startsWith("get") && !method.getName().startsWith("internalGet"))) { continue; @@ -1222,32 +1233,40 @@ private static void objectToList(String objName, Object obj, // Get JsonGetter annotation Annotation getterAnnotation = method.getAnnotation(JsonGetter.class); - if (getterAnnotation == null) { + Annotation anyGetterAnnotation = method.getAnnotation(JsonAnyGetter.class); + + if (getterAnnotation == null && anyGetterAnnotation == null) { continue; } - - // Load key name from getter attribute name - String attribName = ((JsonGetter) getterAnnotation).value(); - if ((objName != null) && (!objName.isEmpty())) { - attribName = String.format("%s[%s]", objName, attribName); - } - try { // Load value by invoking getter method method.setAccessible(true); Object value = method.invoke(obj); JsonSerialize serializerAnnotation = method .getAnnotation(JsonSerialize.class); - // Load key value pair into objectList - if (serializerAnnotation != null) { - loadKeyValuePairForEncoding(attribName, value, objectList, processed, - serializerAnnotation, arraySerializationFormat); + if (getterAnnotation != null) { + // Load key name from getter attribute name + String attribName = ((JsonGetter) getterAnnotation).value(); + if ((objName != null) && (!objName.isEmpty())) { + attribName = String.format("%s[%s]", objName, attribName); + } + + // Load key value pair into objectList + if (serializerAnnotation != null) { + loadKeyValuePairForEncoding(attribName, value, objectList, processed, + serializerAnnotation, arraySerializationFormat); + } else { + loadKeyValuePairForEncoding(attribName, value, objectList, processed, + arraySerializationFormat); + } } else { - loadKeyValuePairForEncoding(attribName, value, objectList, processed, - arraySerializationFormat); + JsonSerializer serializer = getCollectionSerializer(serializerAnnotation); + String serializedValue = serialize(value, serializer); + value = serializedValue != null ? deserializeAsObject(serializedValue.toString()) : value; + objectToList(objName, (Map) value, objectList, processed, arraySerializationFormat); } } catch (IllegalAccessException | IllegalArgumentException - | InvocationTargetException e) { + | InvocationTargetException | JsonProcessingException e) { // This block only calls getter methods. // These getters don't throw any exception except invocationTargetException. // The getters are public so there is no chance of an IllegalAccessException diff --git a/src/main/java/io/apimatic/core/utilities/LocalDateTimeHelper.java b/src/main/java/io/apimatic/core/utilities/LocalDateTimeHelper.java index 75c94841..09b5f432 100644 --- a/src/main/java/io/apimatic/core/utilities/LocalDateTimeHelper.java +++ b/src/main/java/io/apimatic/core/utilities/LocalDateTimeHelper.java @@ -361,6 +361,19 @@ public void serialize(LocalDateTime value, JsonGenerator jgen, SerializerProvide jgen.writeString(toRfc1123DateTime(value)); } } + + /** + * A class to handle serialization of Rfc1123 format strings to DateTime objects. + */ + public static class Rfc1123DateTimeArraySerializer extends JsonSerializer> { + @SuppressWarnings("unused") + @Override + public void serialize(List values, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + List convertedValues = toRfc1123DateTime(values); + jgen.writeString(convertedValues.toString()); + } + } /** * A class to handle deserialization of DateTime objects to Rfc8601(Rfc3339) format strings. diff --git a/src/test/java/Constants.java b/src/test/java/Constants.java new file mode 100644 index 00000000..50246191 --- /dev/null +++ b/src/test/java/Constants.java @@ -0,0 +1,17 @@ + +/* + * Class to store constants for the tests. + */ +public class Constants { + public static final long UNIXTIMESTAMP3 = 868756200L; + public static final long UNITIMESTAMP2 = 1595639400L; + public static final long UNIXTIMESTAMP1 = 963450600L; + public static final int DAY25 = 25; + public static final int YEAR2020 = 2020; + public static final int YEAR2000 = 2000; + public static final int HOUR6 = 6; + public static final int DAY13 = 13; + public static final int JULY = 7; + public static final int MINUTES10 = 10; + public static final int YEAR1997 = 1997; +} diff --git a/src/test/java/apimatic/core/constants/DateTimeConstants.java b/src/test/java/apimatic/core/constants/DateTimeConstants.java new file mode 100644 index 00000000..23ae7ccd --- /dev/null +++ b/src/test/java/apimatic/core/constants/DateTimeConstants.java @@ -0,0 +1,18 @@ +package apimatic.core.constants; + +/* + * Class to store constants for the tests. + */ +public class DateTimeConstants { + public static final long UNIXTIMESTAMP3 = 868756200L; + public static final long UNITIMESTAMP2 = 1595639400L; + public static final long UNIXTIMESTAMP1 = 963450600L; + public static final int DAY25 = 25; + public static final int YEAR2020 = 2020; + public static final int YEAR2000 = 2000; + public static final int HOUR6 = 6; + public static final int DAY13 = 13; + public static final int JULY = 7; + public static final int MINUTES10 = 10; + public static final int YEAR1997 = 1997; +} diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..d23c0135 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java @@ -0,0 +1,164 @@ +package apimatic.core.models; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; +import io.apimatic.core.utilities.CoreHelper; + +public class ModelWith3dArrayOfNonPrimitiveAdditionalProperties { + + private String company; + protected AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWith3dArrayOfNonPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWith3dArrayOfNonPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map>>> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToNDimensionalArray(value, (x) -> { + try { + return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); + } catch (IOException e) { + return null; + } + }, 3), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public List>> getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, List>> value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWith3dArrayOfNonPrimitiveAdditionalProperties build() { + ModelWith3dArrayOfNonPrimitiveAdditionalProperties obj = new ModelWith3dArrayOfNonPrimitiveAdditionalProperties( + company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..31b53ee2 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java @@ -0,0 +1,156 @@ +package apimatic.core.models; + +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; + +public class ModelWith3dArrayOfPrimitiveAdditionalProperties { + private String company; + protected AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWith3dArrayOfPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWith3dArrayOfPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map>>> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToNDimensionalArray(value, (x) -> ((String) x), 3), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public List>> getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, List>> value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWith3dArrayOfPrimitiveAdditionalProperties build() { + ModelWith3dArrayOfPrimitiveAdditionalProperties obj = new ModelWith3dArrayOfPrimitiveAdditionalProperties( + company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..4b3e2675 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java @@ -0,0 +1,163 @@ +package apimatic.core.models; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; +import io.apimatic.core.utilities.CoreHelper; + +public class ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties { + private String company; + protected AdditionalProperties>> additionalProperties = new AdditionalProperties>>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map>> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToArrayOfMap(value, (x) -> { + try { + return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); + } catch (IOException e) { + return null; + } + }), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public List> getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, List> value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties build() { + ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties obj = new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties( + company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..dff94b58 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java @@ -0,0 +1,157 @@ +package apimatic.core.models; + +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; + +public class ModelWithArrayOfMapOfPrimitiveAdditionalProperties { + + private String company; + protected AdditionalProperties>> additionalProperties = new AdditionalProperties>>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithArrayOfMapOfPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithArrayOfMapOfPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map>> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToArrayOfMap(value, (x) -> (String) x), + true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public List> getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, List> value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithArrayOfMapOfPrimitiveAdditionalProperties build() { + ModelWithArrayOfMapOfPrimitiveAdditionalProperties obj = new ModelWithArrayOfMapOfPrimitiveAdditionalProperties( + company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..38d361fd --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java @@ -0,0 +1,164 @@ +package apimatic.core.models; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; +import io.apimatic.core.utilities.CoreHelper; + +public class ModelWithArrayOfNonPrimitiveAdditionalProperties { + + private String company; + protected AdditionalProperties> additionalProperties = new AdditionalProperties>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithArrayOfNonPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithArrayOfNonPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToArray(value, (x) -> { + try { + return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); + } catch (IOException e) { + return null; + } + }), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public List getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties> additionalProperties = new AdditionalProperties>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, List value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithArrayOfNonPrimitiveAdditionalProperties build() { + ModelWithArrayOfNonPrimitiveAdditionalProperties obj = new ModelWithArrayOfNonPrimitiveAdditionalProperties( + company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..4683ef3f --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java @@ -0,0 +1,156 @@ +package apimatic.core.models; + +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; + +public class ModelWithArrayOfPrimitiveAdditionalProperties { + private String company; + protected AdditionalProperties> additionalProperties = new AdditionalProperties>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithArrayOfPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithArrayOfPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToArray(value, (x) -> (String) x), + true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public List getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties> additionalProperties = new AdditionalProperties>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, List value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithArrayOfPrimitiveAdditionalProperties build() { + ModelWithArrayOfPrimitiveAdditionalProperties obj = new ModelWithArrayOfPrimitiveAdditionalProperties( + company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java new file mode 100644 index 00000000..122152f4 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java @@ -0,0 +1,158 @@ +package apimatic.core.models; + +import java.time.LocalDateTime; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; +import io.apimatic.core.utilities.LocalDateTimeHelper; + +public class ModelWithDateTimeAdditionalProperties { + private String company; + protected AdditionalProperties additionalProperties = new AdditionalProperties( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithDateTimeAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithDateTimeAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + @JsonSerialize(contentUsing = LocalDateTimeHelper.Rfc1123DateTimeSerializer.class) + private Map getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToSimpleType(value, + x -> LocalDateTimeHelper.fromRfc1123DateTime(String.valueOf(x))), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public LocalDateTime getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties additionalProperties = new AdditionalProperties(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, LocalDateTime value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithDateTimeAdditionalProperties build() { + ModelWithDateTimeAdditionalProperties obj = new ModelWithDateTimeAdditionalProperties(company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..fa830af1 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java @@ -0,0 +1,163 @@ +package apimatic.core.models; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; +import io.apimatic.core.utilities.CoreHelper; + +public class ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties { + private String company; + protected AdditionalProperties>> additionalProperties = new AdditionalProperties>>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map>> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToMapOfArray(value, (x) -> { + try { + return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); + } catch (IOException e) { + return null; + } + }), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public Map> getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, Map> value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties build() { + ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties obj = new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties( + company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..5cace76d --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java @@ -0,0 +1,156 @@ +package apimatic.core.models; + +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; + +public class ModelWithMapOfArrayOfPrimitiveAdditionalProperties { + private String company; + protected AdditionalProperties>> additionalProperties = new AdditionalProperties>>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithMapOfArrayOfPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithMapOfArrayOfPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map>> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToMapOfArray(value, (x) -> (String) x), + true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public Map> getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, Map> value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithMapOfArrayOfPrimitiveAdditionalProperties build() { + ModelWithMapOfArrayOfPrimitiveAdditionalProperties obj = new ModelWithMapOfArrayOfPrimitiveAdditionalProperties( + company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..91ef5a37 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java @@ -0,0 +1,162 @@ +package apimatic.core.models; + +import java.io.IOException; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; +import io.apimatic.core.utilities.CoreHelper; + +public class ModelWithMapOfNonPrimitiveAdditionalProperties { + private String company; + protected AdditionalProperties> additionalProperties = new AdditionalProperties>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithMapOfNonPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithMapOfNonPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToMap(value, (x) -> { + try { + return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); + } catch (IOException e) { + return null; + } + }), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public Map getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties> additionalProperties = new AdditionalProperties>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, Map value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithMapOfNonPrimitiveAdditionalProperties build() { + ModelWithMapOfNonPrimitiveAdditionalProperties obj = new ModelWithMapOfNonPrimitiveAdditionalProperties( + company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..d8d5ae53 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java @@ -0,0 +1,153 @@ +package apimatic.core.models; + +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; + +public class ModelWithMapOfPrimitiveAdditionalProperties { + private String company; + protected AdditionalProperties> additionalProperties = new AdditionalProperties>( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithMapOfPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithMapOfPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map> getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToMap(value, (x) -> (String) x), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public Map getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties> additionalProperties = new AdditionalProperties>(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, Map value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithMapOfPrimitiveAdditionalProperties build() { + ModelWithMapOfPrimitiveAdditionalProperties obj = new ModelWithMapOfPrimitiveAdditionalProperties(company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..752177c7 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java @@ -0,0 +1,160 @@ +package apimatic.core.models; + +import java.io.IOException; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; +import io.apimatic.core.utilities.CoreHelper; + +public class ModelWithNonPrimitiveAdditionalProperties { + private String company; + protected AdditionalProperties additionalProperties = new AdditionalProperties(this.getClass()); + + /** + * Default constructor. + */ + public ModelWithNonPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithNonPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToSimpleType(value, x -> { + try { + return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); + } catch (IOException e) { + return null; + } + }), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public Vehicle getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties additionalProperties = new AdditionalProperties(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, Vehicle value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithNonPrimitiveAdditionalProperties build() { + ModelWithNonPrimitiveAdditionalProperties obj = new ModelWithNonPrimitiveAdditionalProperties(company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java new file mode 100644 index 00000000..b847fd17 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java @@ -0,0 +1,153 @@ +package apimatic.core.models; + +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; + +public class ModelWithPrimitiveAdditionalProperties { + private String company; + protected AdditionalProperties additionalProperties = new AdditionalProperties(this.getClass()); + + /** + * Default constructor. + */ + public ModelWithPrimitiveAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithPrimitiveAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToSimpleType(value, x -> (String) x), + true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public String getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties additionalProperties = new AdditionalProperties(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, String value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithPrimitiveAdditionalProperties build() { + ModelWithPrimitiveAdditionalProperties obj = new ModelWithPrimitiveAdditionalProperties(company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java new file mode 100644 index 00000000..baeefed9 --- /dev/null +++ b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java @@ -0,0 +1,162 @@ +package apimatic.core.models; + +import java.io.IOException; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +import apimatic.core.models.containers.SendScalarParamBody; +import io.apimatic.core.types.AdditionalProperties; +import io.apimatic.core.utilities.ConversionHelper; +import io.apimatic.core.utilities.CoreHelper; + +public class ModelWithTypeCombinatorAdditionalProperties { + private String company; + protected AdditionalProperties additionalProperties = new AdditionalProperties( + this.getClass()); + + /** + * Default constructor. + */ + public ModelWithTypeCombinatorAdditionalProperties() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + * @param type String value for type. + */ + public ModelWithTypeCombinatorAdditionalProperties(String company) { + this.company = company; + } + + /** + * Getter for Company. + * @return Returns the String + */ + @JsonGetter("company") + public String getCompany() { + return company; + } + + /** + * Setter for Company. + * @param company Value for String + */ + @JsonSetter("company") + public void setCompany(String company) { + this.company = company; + } + + /** + * Any GETTER. Needed for serialization of additional properties. + * @return Returns the map of all additional properties. + */ + @JsonAnyGetter + private Map getAdditionalProperties() { + return additionalProperties.getAdditionalProperties(); + } + + /** + * Any SETTER. Needed for de-serialization of additional properties. + * @param name The String key. + * @param value The Object value. + */ + @JsonAnySetter + private void setAdditionalProperties(String name, Object value) { + additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToSimpleType(value, x -> { + try { + return CoreHelper.deserialize(CoreHelper.serialize(x), SendScalarParamBody.class); + } catch (IOException e) { + return null; + } + }), true); + } + + /** + * Provides access to value of additional properties using property name as key. + * @param key The property name, which may or may not be declared. + * @return property associated with the key. + */ + public SendScalarParamBody getAdditionalProperty(String key) { + return additionalProperties.getAdditionalProperty(key); + } + + /** + * Converts this ChildNumberType into string format. + * @return String representation of this class + */ + @Override + public String toString() { + return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + } + + /** + * Builds a new {@link ChildNumberType.Builder} object. Creates the instance + * with the state of the current model. + * @return a new {@link ChildNumberType.Builder} object + */ + public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + Builder builder = new Builder(company); + return builder; + } + + /** + * Class to build instances of {@link ChildNumberType}. + */ + public static class Builder { + private String company; + private AdditionalProperties additionalProperties = new AdditionalProperties(); + + /** + * Initialization constructor. + */ + public Builder() { + } + + /** + * Initialization constructor. + * @param name String value for name. + * @param company String value for company. + */ + public Builder(String company) { + this.company = company; + } + + /** + * Setter for company. + * @param company String value for company. + * @return Builder + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * Setter for additionalProperties. + * @param name The String key. + * @param value The String value. + * @return Builder + */ + public Builder additionalProperty(String name, SendScalarParamBody value) { + this.additionalProperties.setAdditionalProperty(name, value); + return this; + } + + /** + * Builds a new {@link ChildNumberType} object using the set fields. + * @return {@link ChildNumberType} + */ + public ModelWithTypeCombinatorAdditionalProperties build() { + ModelWithTypeCombinatorAdditionalProperties obj = new ModelWithTypeCombinatorAdditionalProperties(company); + obj.additionalProperties = this.additionalProperties; + return obj; + } + } + +} diff --git a/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java b/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java new file mode 100644 index 00000000..a53b0c9a --- /dev/null +++ b/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java @@ -0,0 +1,261 @@ +package apimatic.core.type; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import org.junit.Test; + +import apimatic.core.constants.DateTimeConstants; +import apimatic.core.models.ModelWith3dArrayOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWith3dArrayOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithArrayOfMapOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithArrayOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithArrayOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithDateTimeAdditionalProperties; +import apimatic.core.models.ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithMapOfArrayOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithMapOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithMapOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithTypeCombinatorAdditionalProperties; +import apimatic.core.models.Vehicle; +import apimatic.core.models.containers.SendScalarParamBody; +import io.apimatic.core.utilities.CoreHelper; +import io.apimatic.core.utilities.LocalDateTimeHelper; + +public class AdditionalPropertiesTest { + @Test + public void testSimpleAdditionalProperties() throws IOException { + ModelWithPrimitiveAdditionalProperties simpleModel = new ModelWithPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", "value").build(); + + ModelWithPrimitiveAdditionalProperties actualSimpleModel = CoreHelper + .deserialize(CoreHelper.serialize(simpleModel), ModelWithPrimitiveAdditionalProperties.class); + assertEquals("value", actualSimpleModel.getAdditionalProperty("name")); + + // DateTime Case + ModelWithDateTimeAdditionalProperties dateTimeModel = new ModelWithDateTimeAdditionalProperties.Builder( + "APIMatic") + .additionalProperty("name", + LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10)) + .build(); + + ModelWithDateTimeAdditionalProperties actualDateTimeModel = CoreHelper + .deserialize(CoreHelper.serialize(dateTimeModel), ModelWithDateTimeAdditionalProperties.class); + assertEquals(LocalDateTimeHelper.fromRfc1123DateTime("Thu, 13 Jul 2000 06:10:00 GMT"), + actualDateTimeModel.getAdditionalProperty("name")); + + // Non-Primitive Case + ModelWithNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithNonPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", new Vehicle.Builder("4").build()).build(); + + Vehicle expectedNonPrimitiveModel = new Vehicle.Builder("4").build(); + + ModelWithNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper + .deserialize(CoreHelper.serialize(nonPrimitiveModel), ModelWithNonPrimitiveAdditionalProperties.class); + assertEquals(expectedNonPrimitiveModel.toString(), + actualNonPrimitiveModel.getAdditionalProperty("name").toString()); + } + + @Test + public void testArrayAdditionalProperties() throws IOException { + ModelWithArrayOfPrimitiveAdditionalProperties model = new ModelWithArrayOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Arrays.asList("value1", "value2")).build(); + + List expectedValue = Arrays.asList("value1", "value2"); + + ModelWithArrayOfPrimitiveAdditionalProperties actualModel = CoreHelper.deserialize(CoreHelper.serialize(model), + ModelWithArrayOfPrimitiveAdditionalProperties.class); + assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); + + // Non-Primitive Case + ModelWithArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic") + .additionalProperty("name", + Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build())) + .build(); + + List expectedNonPrimitiveModel = Arrays.asList(new Vehicle.Builder("4").build(), + new Vehicle.Builder("5").build()); + + ModelWithArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( + CoreHelper.serialize(nonPrimitiveModel), ModelWithArrayOfNonPrimitiveAdditionalProperties.class); + assertEquals(expectedNonPrimitiveModel.get(0).toString(), + actualNonPrimitiveModel.getAdditionalProperty("name").get(0).toString()); + assertEquals(expectedNonPrimitiveModel.get(1).toString(), + actualNonPrimitiveModel.getAdditionalProperty("name").get(1).toString()); + } + + @Test + public void testMapAdditionalProperties() throws IOException { + ModelWithMapOfPrimitiveAdditionalProperties model = new ModelWithMapOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Map.of("key1", "value1", "key2", "value2")).build(); + + Map expectedValue = Map.of("key1", "value1", "key2", "value2"); + + ModelWithMapOfPrimitiveAdditionalProperties actualModel = CoreHelper.deserialize(CoreHelper.serialize(model), + ModelWithMapOfPrimitiveAdditionalProperties.class); + assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); + + // Non-Primitive Case + ModelWithMapOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithMapOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Map.of("key1", new Vehicle.Builder("4").build())).build(); + + Map expectedNonPrimitiveModel = Map.of("key1", new Vehicle.Builder("4").build()); + + ModelWithMapOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( + CoreHelper.serialize(nonPrimitiveModel), ModelWithMapOfNonPrimitiveAdditionalProperties.class); + assertEquals(expectedNonPrimitiveModel.get("key1").toString(), + actualNonPrimitiveModel.getAdditionalProperty("name").get("key1").toString()); + } + + @Test + public void testMapOfArrayAdditionalProperties() throws IOException { + ModelWithMapOfArrayOfPrimitiveAdditionalProperties model = new ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", + Map.of("key1", Arrays.asList("value1", "value2"), "key2", Arrays.asList("value1", "value2"))) + .build(); + + Map> expectedValue = Map.of("key1", Arrays.asList("value1", "value2"), "key2", + Arrays.asList("value1", "value2")); + + ModelWithMapOfArrayOfPrimitiveAdditionalProperties actualModel = CoreHelper + .deserialize(CoreHelper.serialize(model), ModelWithMapOfArrayOfPrimitiveAdditionalProperties.class); + assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); + + // Non-Primitive Case + ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic") + .additionalProperty("name", Map.of("key1", Arrays.asList(new Vehicle.Builder("4").build()), + "key2", Arrays.asList(new Vehicle.Builder("5").build()))) + .build(); + + Map> expectedNonPrimitiveModel = Map.of("key1", + Arrays.asList(new Vehicle.Builder("4").build()), "key2", + Arrays.asList(new Vehicle.Builder("5").build())); + + ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( + CoreHelper.serialize(nonPrimitiveModel), ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.class); + assertEquals(expectedNonPrimitiveModel.get("key1").get(0).toString(), + actualNonPrimitiveModel.getAdditionalProperty("name").get("key1").get(0).toString()); + assertEquals(expectedNonPrimitiveModel.get("key2").get(0).toString(), + actualNonPrimitiveModel.getAdditionalProperty("name").get("key2").get(0).toString()); + } + + @Test + public void testArrayOfMapAdditionalProperties() throws IOException { + ModelWithArrayOfMapOfPrimitiveAdditionalProperties model = new ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Arrays.asList(Map.of("key1", "value1", "key2", "value2"))) + .build(); + + List> expectedValue = Arrays.asList(Map.of("key1", "value1", "key2", "value2")); + + ModelWithArrayOfMapOfPrimitiveAdditionalProperties actualModel = CoreHelper + .deserialize(CoreHelper.serialize(model), ModelWithArrayOfMapOfPrimitiveAdditionalProperties.class); + assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); + + // Non-Primitive Case + ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic") + .additionalProperty("name", Arrays.asList(Map.of("key1", new Vehicle.Builder("4").build(), + "key2", new Vehicle.Builder("5").build()))) + .build(); + + List> expectedNonPrimitiveModel = Arrays + .asList(Map.of("key1", new Vehicle.Builder("4").build(), "key2", new Vehicle.Builder("5").build())); + + ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( + CoreHelper.serialize(nonPrimitiveModel), ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.class); + assertEquals(expectedNonPrimitiveModel.get(0).get("key1").toString(), + actualNonPrimitiveModel.getAdditionalProperty("name").get(0).get("key1").toString()); + assertEquals(expectedNonPrimitiveModel.get(0).get("key2").toString(), + actualNonPrimitiveModel.getAdditionalProperty("name").get(0).get("key2").toString()); + } + + @Test + public void test3DArrayAdditionalProperties() throws IOException { + ModelWith3dArrayOfPrimitiveAdditionalProperties model = new ModelWith3dArrayOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Arrays.asList(Arrays.asList(Arrays.asList("value1", "value2")))) + .build(); + + List>> expectedValue = Arrays.asList(Arrays.asList(Arrays.asList("value1", "value2"))); + + ModelWith3dArrayOfPrimitiveAdditionalProperties actualModel = CoreHelper + .deserialize(CoreHelper.serialize(model), ModelWith3dArrayOfPrimitiveAdditionalProperties.class); + assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); + + // Non-Primitive Case + ModelWith3dArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWith3dArrayOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty( + "name", + Arrays.asList(Arrays.asList( + Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("4").build())))) + .build(); + + List>> expectedNonPrimitiveModel = Arrays.asList( + Arrays.asList(Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("4").build()))); + + ModelWith3dArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( + CoreHelper.serialize(nonPrimitiveModel), ModelWith3dArrayOfNonPrimitiveAdditionalProperties.class); + assertEquals(expectedNonPrimitiveModel.get(0).get(0).get(0).toString(), + actualNonPrimitiveModel.getAdditionalProperty("name").get(0).get(0).get(0).toString()); + } + + @Test + public void testTypeCombinatorAdditionalProperties() throws IOException { + + // Case A + ModelWithTypeCombinatorAdditionalProperties model = new ModelWithTypeCombinatorAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", SendScalarParamBody.fromPrecision(Arrays.asList(100.11, 133.00))) + .build(); + + ModelWithTypeCombinatorAdditionalProperties actualModel = CoreHelper.deserialize(CoreHelper.serialize(model), + ModelWithTypeCombinatorAdditionalProperties.class); + List expectedListValue = Arrays.asList(100.11, 133.00); + actualModel.getAdditionalProperty("name").match(new SendScalarParamBody.Cases() { + + @Override + public Void precision(List actualValue) { + assertEquals(expectedListValue, actualValue); + return null; + } + + @Override + public Void mString(String mString) { + fail("Got unexpected type combinator case."); + return null; + } + }); + + // Case B + model = new ModelWithTypeCombinatorAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", SendScalarParamBody.fromMString("value")).build(); + + actualModel = CoreHelper.deserialize(CoreHelper.serialize(model), + ModelWithTypeCombinatorAdditionalProperties.class); + String expectedStringValue = "value"; + actualModel.getAdditionalProperty("name").match(new SendScalarParamBody.Cases() { + + @Override + public Void precision(List actualValue) { + fail("Got unexpected type combinator case."); + return null; + } + + @Override + public Void mString(String actualValue) { + assertEquals(expectedStringValue, actualValue); + return null; + } + }); + } +} diff --git a/src/test/java/apimatic/core/utilities/ConversionHelperTest.java b/src/test/java/apimatic/core/utilities/ConversionHelperTest.java new file mode 100644 index 00000000..786069fa --- /dev/null +++ b/src/test/java/apimatic/core/utilities/ConversionHelperTest.java @@ -0,0 +1,165 @@ +package apimatic.core.utilities; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +import org.junit.Test; + +import io.apimatic.core.utilities.ConversionHelper; + +public class ConversionHelperTest { + + // Helper function for conversion + private static final Function toInteger = value -> { + if (value instanceof Number) { + return ((Number) value).intValue(); + } + return null; + }; + + @Test + public void testConvertToSimpleType_Success() { + assertEquals(Integer.valueOf(5), ConversionHelper.convertToSimpleType(5, toInteger)); + } + + @Test + public void testConvertToSimpleType_NullConversionFunction() { + assertNull(ConversionHelper.convertToSimpleType("test", toInteger)); + } + + @Test + public void testConvertToMap_Success() { + Map input = new HashMap<>(); + input.put("key1", 1); + input.put("key2", 2); + Map result = ConversionHelper.convertToMap(input, toInteger); + assertEquals(2, result.size()); + assertEquals(Integer.valueOf(1), result.get("key1")); + assertEquals(Integer.valueOf(2), result.get("key2")); + } + + @Test + public void testConvertToMap_SkipsUnconvertibleValues() { + Map input = new HashMap<>(); + input.put("key1", 1); + input.put("key2", "not an int"); + Map result = ConversionHelper.convertToMap(input, toInteger); + assertEquals(1, result.size()); + assertEquals(Integer.valueOf(1), result.get("key1")); + assertNull(result.get("key2")); + } + + @Test + public void testConvertToMap_NullInput() { + assertNull(ConversionHelper.convertToMap(null, toInteger)); + } + + @Test + public void testConvertToArray_Success() { + List input = Arrays.asList(1, 2, 3); + List result = ConversionHelper.convertToArray(input, toInteger); + assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3)), result); + } + + @Test + public void testConvertToArray_SkipsUnconvertibleItems() { + List input = Arrays.asList(1, "not an int", 3); + List result = ConversionHelper.convertToArray(input, toInteger); + assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(3)), result); + } + + @Test + public void testConvertToArray_NullInput() { + assertNull(ConversionHelper.convertToArray(null, toInteger)); + } + + @Test + public void testConvertToArrayOfMap_Success() { + List input = new ArrayList<>(); + Map map1 = new HashMap<>(); + map1.put("key1", 1); + input.add(map1); + List> result = ConversionHelper.convertToArrayOfMap(input, toInteger); + assertEquals(1, result.size()); + assertEquals(Integer.valueOf(1), result.get(0).get("key1")); + } + + @Test + public void testConvertToArrayOfMap_SkipsEmptyAndUnconvertibleMaps() { + List input = new ArrayList<>(); + Map map1 = new HashMap<>(); + map1.put("key1", 1); + Map map2 = new HashMap<>(); + map2.put("key2", "not an int"); + input.add(map1); + input.add(map2); + List> result = ConversionHelper.convertToArrayOfMap(input, toInteger); + assertEquals(1, result.size()); + assertEquals(Integer.valueOf(1), result.get(0).get("key1")); + } + + @Test + public void testConvertToArrayOfMap_NullInput() { + assertNull(ConversionHelper.convertToArrayOfMap(null, toInteger)); + } + + @Test + public void testConvertToMapOfArray_Success() { + Map input = new HashMap<>(); + input.put("key1", Arrays.asList(1, 2)); + Map> result = ConversionHelper.convertToMapOfArray(input, toInteger); + assertEquals(1, result.size()); + assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2)), result.get("key1")); + } + + @Test + public void testConvertToMapOfArray_SkipsEmptyAndUnconvertibleArrays() { + Map input = new HashMap<>(); + input.put("key1", Arrays.asList(1, "not an int", 3)); + input.put("key2", Arrays.asList("not an int")); + Map> result = ConversionHelper.convertToMapOfArray(input, toInteger); + assertEquals(1, result.size()); + assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(3)), result.get("key1")); + } + + @Test + public void testConvertToMapOfArray_NullInput() { + assertNull(ConversionHelper.convertToMapOfArray(null, toInteger)); + } + + @Test + public void testConvertToNDimensionalArray_1DArray() { + List input = Arrays.asList(1, 2, 3); + List result = ConversionHelper.convertToNDimensionalArray(input, toInteger, 1); + assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3)), result); + } + + @Test + public void testConvertToNDimensionalArray_2DArray() { + List input = Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3, 4)); + List> result = ConversionHelper.convertToNDimensionalArray(input, toInteger, 2); + assertEquals(Arrays.asList(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2)), + Arrays.asList(Integer.valueOf(3), Integer.valueOf(4))), result); + } + + @Test + public void testConvertToNDimensionalArray_SkipsEmptyAndUnconvertibleItems() { + List input = Arrays.asList(Arrays.asList(1, "not an int"), Arrays.asList(3, 4)); + List> result = ConversionHelper.convertToNDimensionalArray(input, toInteger, 2); + assertEquals( + Arrays.asList(Arrays.asList(Integer.valueOf(1)), Arrays.asList(Integer.valueOf(3), Integer.valueOf(4))), + result); + } + + @Test + public void testConvertToNDimensionalArray_NullInput() { + assertNull(ConversionHelper.convertToNDimensionalArray(null, toInteger, 2)); + } +} diff --git a/src/test/java/apimatic/core/utilities/CoreHelperTest.java b/src/test/java/apimatic/core/utilities/CoreHelperTest.java index 560b56a9..649abde7 100644 --- a/src/test/java/apimatic/core/utilities/CoreHelperTest.java +++ b/src/test/java/apimatic/core/utilities/CoreHelperTest.java @@ -14,6 +14,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -27,6 +28,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; + +import apimatic.core.constants.DateTimeConstants; import apimatic.core.mocks.TestDateTimeHelper; import apimatic.core.models.AtomCase; import apimatic.core.models.AttributesAndElements; @@ -35,10 +38,25 @@ import apimatic.core.models.ComplexType; import apimatic.core.models.DateTimeCases; import apimatic.core.models.DeleteBody; +import apimatic.core.models.ModelWith3dArrayOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWith3dArrayOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithArrayOfMapOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithArrayOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithArrayOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithDateTimeAdditionalProperties; +import apimatic.core.models.ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithMapOfArrayOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithMapOfNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithMapOfPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithNonPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithPrimitiveAdditionalProperties; +import apimatic.core.models.ModelWithTypeCombinatorAdditionalProperties; import apimatic.core.models.MorningCase; import apimatic.core.models.NonScalarModel; import apimatic.core.models.OrbitCase; import apimatic.core.models.Person; +import apimatic.core.models.Vehicle; import apimatic.core.models.containers.SendParamsFormDateTime; import apimatic.core.models.containers.SendScalarParamBody; import io.apimatic.core.types.AnyOfValidationException; @@ -374,7 +392,7 @@ public void testAppendTemplateParameters5() { } @Test - public void testptionalNullable() throws IOException { + public void testOptionalNullable() throws IOException { ChildClass child = CoreHelper .deserialize( "{\"Grand_Parent_Required_Nullable\":null,\"Grand_Parent_Required\":" @@ -675,6 +693,256 @@ public void testPrepareFormFieldsModel() { ArraySerializationFormat.INDEXED); assertEquals(actual, expected); } + + @Test + public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { + ModelWithPrimitiveAdditionalProperties simple = new ModelWithPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", "value").build(); + Map formParameters = new HashMap<>(); + formParameters.put("body", simple); + + List> expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name]", "value")); + + List> actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // Array of primitive types + ModelWithArrayOfPrimitiveAdditionalProperties array = new ModelWithArrayOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Arrays.asList("value1", "value2")).build(); + formParameters = new HashMap<>(); + formParameters.put("body", array); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][0]", "value1")); + expected.add(new SimpleEntry("body[name][1]", "value2")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // Map of primitive types + ModelWithMapOfPrimitiveAdditionalProperties map = new ModelWithMapOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Map.of("key1", "value1", "key2", "value2")).build(); + formParameters = new HashMap<>(); + formParameters.put("body", map); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][key1]", "value1")); + expected.add(new SimpleEntry("body[name][key2]", "value2")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // Array of Map of primitive types + ModelWithArrayOfMapOfPrimitiveAdditionalProperties arrayOfMap = new ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Arrays.asList(Map.of("key1", "value1", "key2", "value2"))) + .build(); + formParameters = new HashMap<>(); + formParameters.put("body", arrayOfMap); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][0][key1]", "value1")); + expected.add(new SimpleEntry("body[name][0][key2]", "value2")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // Map of Array of primitive types + ModelWithMapOfArrayOfPrimitiveAdditionalProperties mapOfArray = new ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", + Map.of("key1", Arrays.asList("value1", "value2"), "key2", Arrays.asList("value1", "value2"))) + .build(); + formParameters = new HashMap<>(); + formParameters.put("body", mapOfArray); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][key1][0]", "value1")); + expected.add(new SimpleEntry("body[name][key1][1]", "value2")); + expected.add(new SimpleEntry("body[name][key2][0]", "value1")); + expected.add(new SimpleEntry("body[name][key2][1]", "value2")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // 3D Array of primitive types + ModelWith3dArrayOfPrimitiveAdditionalProperties array3D = new ModelWith3dArrayOfPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Arrays.asList(Arrays.asList(Arrays.asList("value1", "value2")))) + .build(); + formParameters = new HashMap<>(); + formParameters.put("body", array3D); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][0][0][0]", "value1")); + expected.add(new SimpleEntry("body[name][0][0][1]", "value2")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + ModelWithDateTimeAdditionalProperties dateTimeModel = new ModelWithDateTimeAdditionalProperties.Builder( + "APIMatic") + .additionalProperty("name", + LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10)) + .build(); + formParameters = new HashMap<>(); + formParameters.put("body", dateTimeModel); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name]", "Thu, 13 Jul 2000 06:10:00 GMT")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + } + + @Test + public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { + ModelWithNonPrimitiveAdditionalProperties simpleModel = new ModelWithNonPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", new Vehicle.Builder("4").build()).build(); + Map formParameters = new HashMap<>(); + formParameters.put("body", simpleModel); + + List> expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][NumberOfTyres]", "4")); + + List> actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // Array of Non primitive types + ModelWithArrayOfNonPrimitiveAdditionalProperties array = new ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic") + .additionalProperty("name", + Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build())) + .build(); + formParameters = new HashMap<>(); + formParameters.put("body", array); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][0][NumberOfTyres]", "4")); + expected.add(new SimpleEntry("body[name][1][NumberOfTyres]", "5")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // Map of primitive types + ModelWithMapOfNonPrimitiveAdditionalProperties map = new ModelWithMapOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", Map.of("key1", new Vehicle.Builder("4").build())).build(); + formParameters = new HashMap<>(); + formParameters.put("body", map); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][key1][NumberOfTyres]", "4")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // Array of Map of primitive types + ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties arrayOfMap = new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic") + .additionalProperty("name", Arrays.asList(Map.of("key1", new Vehicle.Builder("4").build(), + "key2", new Vehicle.Builder("5").build()))) + .build(); + formParameters = new HashMap<>(); + formParameters.put("body", arrayOfMap); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][0][key1][NumberOfTyres]", "4")); + expected.add(new SimpleEntry("body[name][0][key2][NumberOfTyres]", "5")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // Map of Array of primitive types + ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties mapOfArray = new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic") + .additionalProperty("name", Map.of("key1", Arrays.asList(new Vehicle.Builder("4").build()), + "key2", Arrays.asList(new Vehicle.Builder("5").build()))) + .build(); + formParameters = new HashMap<>(); + formParameters.put("body", mapOfArray); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][key1][0][NumberOfTyres]", "4")); + expected.add(new SimpleEntry("body[name][key2][0][NumberOfTyres]", "5")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + // 3D Array of primitive types + ModelWith3dArrayOfNonPrimitiveAdditionalProperties array3D = new ModelWith3dArrayOfNonPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty( + "name", + Arrays.asList(Arrays.asList( + Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build())))) + .build(); + formParameters = new HashMap<>(); + formParameters.put("body", array3D); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][0][0][0][NumberOfTyres]", "4")); + expected.add(new SimpleEntry("body[name][0][0][1][NumberOfTyres]", "5")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + ModelWithTypeCombinatorAdditionalProperties typeCombinatorAModel = new ModelWithTypeCombinatorAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", SendScalarParamBody.fromPrecision(Arrays.asList(100.11, 133.00))) + .build(); + + formParameters = new HashMap<>(); + formParameters.put("body", typeCombinatorAModel); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name][0]", 100.11)); + expected.add(new SimpleEntry("body[name][1]", 133.0)); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + + ModelWithTypeCombinatorAdditionalProperties typeCombinatorBModel = new ModelWithTypeCombinatorAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", SendScalarParamBody.fromMString("value")) + .build(); + + formParameters = new HashMap<>(); + formParameters.put("body", typeCombinatorBModel); + + expected = new ArrayList>(); + expected.add(new SimpleEntry("body[company]", "APIMatic")); + expected.add(new SimpleEntry("body[name]", "value")); + actual = CoreHelper.prepareFormFields(formParameters, + ArraySerializationFormat.INDEXED); + actual.sort(Comparator.comparing(SimpleEntry::getKey)); + assertEquals(expected, actual); + } @Test public void testPrepareFormFieldsIndexedSerialization() { diff --git a/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java b/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java index 8e1fefad..b15b750d 100644 --- a/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java +++ b/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java @@ -15,27 +15,17 @@ import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; + +import apimatic.core.constants.DateTimeConstants; import apimatic.core.mocks.TestDateTimeHelper; import io.apimatic.core.utilities.LocalDateTimeHelper; public class LocalDateTimeHelperTest { - - private static final long UNIXTIMESTAMP3 = 868756200L; - private static final long UNITIMESTAMP2 = 1595639400L; - private static final long UNIXTIMESTAMP1 = 963450600L; - private static final int DAY25 = 25; - private static final int YEAR2020 = 2020; - private static final int YEAR2000 = 2000; - private static final int HOUR6 = 6; - private static final int DAY13 = 13; - private static final int JULY = 7; - private static final int MINUTES10 = 10; - private static final int YEAR1997 = 1997; - @Test public void testLocalDateTimeToRfc1123() { - LocalDateTime dateTime = LocalDateTime.of(YEAR1997, JULY, DAY13, HOUR6, MINUTES10); + LocalDateTime dateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); // stub String expected = "Sun, 13 Jul 1997 06:10:00 GMT"; @@ -51,13 +41,14 @@ public void testLocalDateTimeNullToRfc1123() { @Test public void testLocalDateTimeListToRfc1123() { - LocalDateTime dateTime1 = LocalDateTime.of(YEAR2000, JULY, DAY13, HOUR6, MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(YEAR2020, JULY, DAY25, HOUR6, MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); List dateTimeArray = Arrays.asList(dateTime1, dateTime2); // stub - List expected = - Arrays.asList("Thu, 13 Jul 2000 06:10:00 GMT", "Sat, 25 Jul 2020 06:10:00 GMT"); + List expected = Arrays.asList("Thu, 13 Jul 2000 06:10:00 GMT", "Sat, 25 Jul 2020 06:10:00 GMT"); assertEquals(LocalDateTimeHelper.toRfc1123DateTime(dateTimeArray), expected); } @@ -68,11 +59,12 @@ public void testLocalDateTimeNullListToRfc1123() { assertNull(LocalDateTimeHelper.toRfc1123DateTime(dateTimeArray)); } - @Test public void testLocalDateTimeMapToRfc1123() { - LocalDateTime dateTime1 = LocalDateTime.of(YEAR2000, JULY, DAY13, HOUR6, MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(YEAR2020, JULY, DAY25, HOUR6, MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -88,8 +80,10 @@ public void testLocalDateTimeMapToRfc1123() { @Test public void testLocalDateTimeListOfMapToRfc1123() { - LocalDateTime dateTime1 = LocalDateTime.of(YEAR2000, JULY, DAY13, HOUR6, MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(YEAR2020, JULY, DAY25, HOUR6, MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -103,8 +97,7 @@ public void testLocalDateTimeListOfMapToRfc1123() { List> expected = Arrays.asList(mapOfStrings); - assertEquals(LocalDateTimeHelper.toArrayOfMapOfRfc1123DateTime(listOfMapOfLocalDateTime), - expected); + assertEquals(LocalDateTimeHelper.toArrayOfMapOfRfc1123DateTime(listOfMapOfLocalDateTime), expected); } @@ -121,10 +114,10 @@ public void testLocalDateTimeMapValidateToRfc1123() { assertNull(LocalDateTimeHelper.toRfc1123DateTime(dateTimeMap)); } - @Test public void testLocalDateTimeToRfc8601() { - LocalDateTime dateTime = LocalDateTime.of(YEAR1997, JULY, DAY13, HOUR6, MINUTES10); + LocalDateTime dateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); // stub String expected = "1997-07-13T06:10Z"; @@ -140,13 +133,14 @@ public void testLocalDateTimeNullToRfc8601() { @Test public void testLocalDateTimeListToRfc8601() { - LocalDateTime dateTime1 = LocalDateTime.of(YEAR2000, JULY, DAY13, HOUR6, MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(YEAR2020, JULY, DAY25, HOUR6, MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); List dateTimeArray = Arrays.asList(dateTime1, dateTime2); // stub List expected = Arrays.asList("2000-07-13T06:10Z", "2020-07-25T06:10Z"); - assertEquals(LocalDateTimeHelper.toRfc8601DateTime(dateTimeArray), expected); } @@ -156,11 +150,12 @@ public void testLocalDateTimeNullListToRfc8601() { assertNull(LocalDateTimeHelper.toRfc8601DateTime(dateTimeArray)); } - @Test public void testLocalDateTimeMapToRfc8601() { - LocalDateTime dateTime1 = LocalDateTime.of(YEAR2000, JULY, DAY13, HOUR6, MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(YEAR2020, JULY, DAY25, HOUR6, MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -176,8 +171,10 @@ public void testLocalDateTimeMapToRfc8601() { @Test public void testLocalDateTimeListOfMapToRfc8601() { - LocalDateTime dateTime1 = LocalDateTime.of(YEAR2000, JULY, DAY13, HOUR6, MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(YEAR2020, JULY, DAY25, HOUR6, MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -191,8 +188,7 @@ public void testLocalDateTimeListOfMapToRfc8601() { List> expected = Arrays.asList(mapOfString); - assertEquals(LocalDateTimeHelper.toArrayOfMapOfRfc8601DateTime(listOfMapOfLocalDateTime), - expected); + assertEquals(LocalDateTimeHelper.toArrayOfMapOfRfc8601DateTime(listOfMapOfLocalDateTime), expected); } @@ -209,12 +205,11 @@ public void testLocalDateTimeMapValidateToRfc8601() { assertNull(LocalDateTimeHelper.toRfc8601DateTime(dateTimeMap)); } - @Test public void testLocalDateTimeToUnixTimeStamp() { - LocalDateTime dateTime = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR1997, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); // stub String expected = "868756200"; assertEquals(LocalDateTimeHelper.toUnixTimestamp(dateTime), expected); @@ -229,18 +224,17 @@ public void testLocalDateTimeNullToUnixTimeStamp() { @Test public void testLocalDateTimeListToUnixTimeStamp() { - LocalDateTime dateTime1 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2000, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); - LocalDateTime dateTime2 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2020, JULY, DAY25, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime1 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime2 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); List dateTimeArray = Arrays.asList(dateTime1, dateTime2); // stub List expected = Arrays.asList("963450600", "1595639400"); - assertEquals(LocalDateTimeHelper.toUnixTimestamp(dateTimeArray), expected); } @@ -250,15 +244,14 @@ public void testLocalDateTimeNullListToUnixTimeStamp() { assertNull(LocalDateTimeHelper.toUnixTimestamp(dateTimeArray)); } - @Test public void testLocalDateTimeMapToUnixTimeStamp() { - LocalDateTime dateTime1 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2000, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); - LocalDateTime dateTime2 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2020, JULY, DAY25, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime1 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime2 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -274,12 +267,12 @@ public void testLocalDateTimeMapToUnixTimeStamp() { @Test public void testListOfMapToUnixTimeStamp() { - LocalDateTime dateTime1 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2000, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); - LocalDateTime dateTime2 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2020, JULY, DAY25, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime1 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime2 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -293,8 +286,7 @@ public void testListOfMapToUnixTimeStamp() { List> expected = Arrays.asList(mapOfStrings); - assertEquals(LocalDateTimeHelper.toArrayOfMapOfUnixTimestamp(listOfMapOfLocalDateTime), - expected); + assertEquals(LocalDateTimeHelper.toArrayOfMapOfUnixTimestamp(listOfMapOfLocalDateTime), expected); } @@ -313,11 +305,11 @@ public void testLocalDateTimeMapValidateToUnixTimeStamp() { @Test public void testUnixDateTimeLong() { - LocalDateTime dateTime = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR1997, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); - Long expectedValue = UNIXTIMESTAMP3; + Long expectedValue = DateTimeConstants.UNIXTIMESTAMP3; Long actualValue = LocalDateTimeHelper.toUnixTimestampLong(dateTime); assertEquals(actualValue, expectedValue); @@ -334,17 +326,16 @@ public void testNullUnixDateTimeLong() { @Test public void testListToUnixTimeLong() { - LocalDateTime dateTime1 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2000, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); - LocalDateTime dateTime2 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2020, JULY, DAY25, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime1 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime2 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); List dateTimeArray = Arrays.asList(dateTime1, dateTime2); // stub - List expected = Arrays.asList(UNIXTIMESTAMP1, UNITIMESTAMP2); - + List expected = Arrays.asList(DateTimeConstants.UNIXTIMESTAMP1, DateTimeConstants.UNITIMESTAMP2); assertEquals(LocalDateTimeHelper.toUnixTimestampLong(dateTimeArray), expected); } @@ -357,20 +348,20 @@ public void testNullListToUnixTimeLong() { @Test public void testLocalDateTimeMapToUnixTimeLong() { - LocalDateTime dateTime1 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2000, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); - LocalDateTime dateTime2 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2020, JULY, DAY25, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime1 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime2 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); // stub Map expected = new HashMap<>(); - expected.put("dateTime1", UNIXTIMESTAMP1); - expected.put("dateTime2", UNITIMESTAMP2); + expected.put("dateTime1", DateTimeConstants.UNIXTIMESTAMP1); + expected.put("dateTime2", DateTimeConstants.UNITIMESTAMP2); assertEquals(LocalDateTimeHelper.toUnixTimestampLong(dateTimeMap), expected); @@ -378,12 +369,12 @@ public void testLocalDateTimeMapToUnixTimeLong() { @Test public void testListOfMapToUnixTimeLong() { - LocalDateTime dateTime1 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2000, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); - LocalDateTime dateTime2 = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2020, JULY, DAY25, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime1 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime dateTime2 = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, + DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -392,13 +383,12 @@ public void testListOfMapToUnixTimeLong() { // stub Map mapOfLong = new HashMap<>(); - mapOfLong.put("dateTime1", UNIXTIMESTAMP1); - mapOfLong.put("dateTime2", UNITIMESTAMP2); + mapOfLong.put("dateTime1", DateTimeConstants.UNIXTIMESTAMP1); + mapOfLong.put("dateTime2", DateTimeConstants.UNITIMESTAMP2); List> expected = Arrays.asList(mapOfLong); - assertEquals(LocalDateTimeHelper.toArrayOfMapOfUnixTimestampLong(listOfMapOfLocalDateTime), - expected); + assertEquals(LocalDateTimeHelper.toArrayOfMapOfUnixTimestampLong(listOfMapOfLocalDateTime), expected); } @@ -415,13 +405,12 @@ public void testLocalDateTimeMapValidateToUnixTimeLong() { assertNull(LocalDateTimeHelper.toUnixTimestampLong(dateTimeMap)); } - @Test public void testFromUnixTimeStampLong() { - LocalDateTime expected = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2000, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); - Long date = UNIXTIMESTAMP1; + LocalDateTime expected = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + Long date = DateTimeConstants.UNIXTIMESTAMP1; LocalDateTime actualValue = LocalDateTimeHelper.fromUnixTimestamp(date); assertEquals(actualValue, expected); @@ -429,9 +418,9 @@ public void testFromUnixTimeStampLong() { @Test public void testFromUnixTimeStampString() { - LocalDateTime expected = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR2000, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime expected = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); String date = "963450600"; LocalDateTime actualValue = LocalDateTimeHelper.fromUnixTimestamp(date); @@ -441,7 +430,8 @@ public void testFromUnixTimeStampString() { @Test public void testFromRfc1123String() { String date = "Sun, 13 Jul 1997 06:10:00 GMT"; - LocalDateTime expected = LocalDateTime.of(YEAR1997, JULY, DAY13, HOUR6, MINUTES10); + LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); LocalDateTime actualValue = LocalDateTimeHelper.fromRfc1123DateTime(date); assertEquals(actualValue, expected); } @@ -449,7 +439,8 @@ public void testFromRfc1123String() { @Test public void testFromRfc8601String() { String date = "1997-07-13T06:10Z"; - LocalDateTime expected = LocalDateTime.of(YEAR1997, JULY, DAY13, HOUR6, MINUTES10); + LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); LocalDateTime actualValue = LocalDateTimeHelper.fromRfc8601DateTime(date); assertEquals(actualValue, expected); } @@ -457,7 +448,8 @@ public void testFromRfc8601String() { @SuppressWarnings("unchecked") @Test public void testRfc1123Serializer() throws JsonProcessingException { - LocalDateTime localDateTime = LocalDateTime.of(YEAR1997, JULY, DAY13, HOUR6, MINUTES10); + LocalDateTime localDateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); @SuppressWarnings("rawtypes") JsonSerializer serializer = new LocalDateTimeHelper.Rfc1123DateTimeSerializer(); ObjectMapper mapper = new ObjectMapper(); @@ -483,7 +475,8 @@ public void testRfc1123Deserializer() throws JsonProcessingException { mapper.registerModule(module); String datetime = "\"Sun, 13 Jul 1997 06:10:00 GMT\""; - LocalDateTime expected = LocalDateTime.of(YEAR1997, JULY, DAY13, HOUR6, MINUTES10); + LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); LocalDateTime actual = mapper.readValue(datetime, LocalDateTime.class); assertEquals(actual, expected); } @@ -491,7 +484,8 @@ public void testRfc1123Deserializer() throws JsonProcessingException { @SuppressWarnings("unchecked") @Test public void testRfc8601Serializer() throws JsonProcessingException { - LocalDateTime localDateTime = LocalDateTime.of(YEAR1997, JULY, DAY13, HOUR6, MINUTES10); + LocalDateTime localDateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); @SuppressWarnings("rawtypes") JsonSerializer serializer = new LocalDateTimeHelper.Rfc8601DateTimeSerializer(); ObjectMapper mapper = new ObjectMapper(); @@ -517,7 +511,8 @@ public void testRfc8601Deserializer() throws JsonProcessingException { mapper.registerModule(module); String dateTime = "\"1997-07-13T06:10Z\""; - LocalDateTime expected = LocalDateTime.of(YEAR1997, JULY, DAY13, HOUR6, MINUTES10); + LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); LocalDateTime actual = mapper.readValue(dateTime, LocalDateTime.class); assertEquals(actual, expected); } @@ -525,9 +520,9 @@ public void testRfc8601Deserializer() throws JsonProcessingException { @SuppressWarnings("unchecked") @Test public void testUnixTimeStampSerializer() throws JsonProcessingException { - LocalDateTime localDateTime = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR1997, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime localDateTime = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); @SuppressWarnings("rawtypes") JsonSerializer serializer = new LocalDateTimeHelper.UnixTimestampSerializer(); ObjectMapper mapper = new ObjectMapper(); @@ -551,9 +546,9 @@ public void testUnixTimeStampDeSerializer() throws JsonProcessingException { mapper.registerModule(module); String dateTime = "868756200"; - LocalDateTime expected = - TestDateTimeHelper.getLocalDateTimeFromGMT(ZonedDateTime.of(YEAR1997, JULY, DAY13, - 1, MINUTES10, 0, 0, ZoneId.of("GMT"))); + LocalDateTime expected = TestDateTimeHelper + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, + DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); LocalDateTime actual = mapper.readValue(dateTime, LocalDateTime.class); assertEquals(actual, expected); } From e3419036dc44de3d1cf423a8c7be4c2e5b181ab9 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 11:46:56 +0500 Subject: [PATCH 02/14] updates README and fixes the Java 8 issue --- README.md | 1 + .../apimatic/core/types/AdditionalProperties.java | 15 ++++++++------- .../apimatic/core/utilities/ConversionHelper.java | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index ee589df3..8cd14767 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ Core lib's Maven group ID is `io.apimatic`, and its artifact ID is `core`. | [`CoreJsonObject`](./src/main/java/io/apimatic/core/utilities/CoreJsonObject.java) | Wrapper class for JSON object | | [`CoreJsonValue`](./src/main/java/io/apimatic/core/utilities/CoreJsonValue.java) | Wrapper class for JSON value | | [`TestHelper`](./src/main/java/io/apimatic/core/utilities/TestHelper.java) | Contains utility methods for comparing objects, arrays and files | +| [`ConversionHelper`](./src/main/java/io/apimatic/core/utilities/ConversionHelper.java) | A Helper class for the coversion of type (provided as function) for all structures (array, map, array of map, n-dimensional arrays etc) supported in the SDK. | ## Interfaces diff --git a/src/main/java/io/apimatic/core/types/AdditionalProperties.java b/src/main/java/io/apimatic/core/types/AdditionalProperties.java index 84d44634..ca6f8b87 100644 --- a/src/main/java/io/apimatic/core/types/AdditionalProperties.java +++ b/src/main/java/io/apimatic/core/types/AdditionalProperties.java @@ -47,7 +47,7 @@ public AdditionalProperties(Class classInstance) { /** * The getter for provided additional properties. - * @return Returns the map of typed additional properties. + * @return Returns the map of {@code T} typed additional properties. */ public Map getAdditionalProperties() { return additionalProperties; @@ -56,7 +56,7 @@ public Map getAdditionalProperties() { /** * The setter for an additional property. * @param key The additional property key. - * @param value The type additional property value. + * @param value The {@code T} type additional property value. * @throws IllegalArgumentException if there is a conflict between key and any * model property. */ @@ -73,9 +73,10 @@ public void setAdditionalProperty(String key, T value) { /** * The setter for an additional property. - * @param key The additional property key. - * @param value The type additional property value. - * @param skipNullValue The flag to skip null values in the additional properties map. + * @param key The additional property key. + * @param value The {@code T} type additional property value. + * @param skipNullValue The flag to skip null values in the additional + * properties map. * @throws IllegalArgumentException if there is a conflict between key and any * model property. */ @@ -99,8 +100,8 @@ public String toString() { /** * The getter for provided additional properties. * @param key The additional property key to search. - * @return the type additional property value associated with the provided - * key. + * @return the {@code T} type additional property value associated with the + * provided key. */ public T getAdditionalProperty(String key) { return additionalProperties.get(key); diff --git a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java index b99db8dc..f402467d 100644 --- a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java +++ b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java @@ -106,7 +106,7 @@ public static Map> convertToMapOfArray(Object value, Functio try { Map valueMap = (Map) value; return valueMap.entrySet().stream() - .map(entry -> Map.entry(entry.getKey(), convertToArray(entry.getValue(), conversionFunction))) + .map(entry -> new AbstractMap.SimpleEntry<>(entry.getKey(), convertToArray(entry.getValue(), conversionFunction))) .filter(entry -> entry.getValue() != null && !entry.getValue().isEmpty()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } catch (Exception e) { From 9afbfe21797252846de140ece1684bb68f58eea1 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 11:49:35 +0500 Subject: [PATCH 03/14] fixes the java 8 version support --- src/main/java/io/apimatic/core/types/AdditionalProperties.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/apimatic/core/types/AdditionalProperties.java b/src/main/java/io/apimatic/core/types/AdditionalProperties.java index ca6f8b87..628e5009 100644 --- a/src/main/java/io/apimatic/core/types/AdditionalProperties.java +++ b/src/main/java/io/apimatic/core/types/AdditionalProperties.java @@ -61,7 +61,7 @@ public Map getAdditionalProperties() { * model property. */ public void setAdditionalProperty(String key, T value) { - if (key == null || key.isBlank()) + if (key == null || key.trim().isEmpty()) return; if (modelProperties.contains(key)) { From c388466c01e4076393f1075f9028bb54aa135882 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 12:14:46 +0500 Subject: [PATCH 04/14] fixes the Map.Of issue that is supported since Java 11 --- .../core/type/AdditionalPropertiesTest.java | 97 +++++++++--- .../core/utilities/CoreHelperTest.java | 142 +++++++++--------- 2 files changed, 147 insertions(+), 92 deletions(-) diff --git a/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java b/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java index a53b0c9a..97a9209f 100644 --- a/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java +++ b/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.time.LocalDateTime; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -95,22 +96,45 @@ public void testArrayAdditionalProperties() throws IOException { actualNonPrimitiveModel.getAdditionalProperty("name").get(1).toString()); } + @SuppressWarnings("serial") @Test public void testMapAdditionalProperties() throws IOException { + Map primitiveAdditionalProperties = new HashMap() { + { + put("key1", "value1"); + put("key2", "value2"); + } + }; ModelWithMapOfPrimitiveAdditionalProperties model = new ModelWithMapOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Map.of("key1", "value1", "key2", "value2")).build(); + "APIMatic").additionalProperty("name", primitiveAdditionalProperties).build(); - Map expectedValue = Map.of("key1", "value1", "key2", "value2"); + Map expectedValue = new HashMap() { + { + put("key1", "value1"); + put("key2", "value2"); + } + }; ModelWithMapOfPrimitiveAdditionalProperties actualModel = CoreHelper.deserialize(CoreHelper.serialize(model), ModelWithMapOfPrimitiveAdditionalProperties.class); assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); // Non-Primitive Case + Map nonPrimitiveAdditionalProperties = new HashMap() { + { + put("key1", new Vehicle.Builder("4").build()); + put("key2", new Vehicle.Builder("5").build()); + } + }; ModelWithMapOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithMapOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Map.of("key1", new Vehicle.Builder("4").build())).build(); + "APIMatic").additionalProperty("name", nonPrimitiveAdditionalProperties).build(); - Map expectedNonPrimitiveModel = Map.of("key1", new Vehicle.Builder("4").build()); + Map expectedNonPrimitiveModel = new HashMap() { + { + put("key1", new Vehicle.Builder("4").build()); + put("key2", new Vehicle.Builder("5").build()); + } + }; ModelWithMapOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( CoreHelper.serialize(nonPrimitiveModel), ModelWithMapOfNonPrimitiveAdditionalProperties.class); @@ -118,30 +142,45 @@ public void testMapAdditionalProperties() throws IOException { actualNonPrimitiveModel.getAdditionalProperty("name").get("key1").toString()); } + @SuppressWarnings("serial") @Test public void testMapOfArrayAdditionalProperties() throws IOException { + Map> primitiveAdditionalProperties = new HashMap>() { + { + put("key1", Arrays.asList("value1", "value2")); + put("key2", Arrays.asList("value1", "value2")); + } + }; ModelWithMapOfArrayOfPrimitiveAdditionalProperties model = new ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", - Map.of("key1", Arrays.asList("value1", "value2"), "key2", Arrays.asList("value1", "value2"))) - .build(); + "APIMatic").additionalProperty("name", primitiveAdditionalProperties).build(); - Map> expectedValue = Map.of("key1", Arrays.asList("value1", "value2"), "key2", - Arrays.asList("value1", "value2")); + Map> expectedValue = new HashMap>() { + { + put("key1", Arrays.asList("value1", "value2")); + put("key2", Arrays.asList("value1", "value2")); + } + }; ModelWithMapOfArrayOfPrimitiveAdditionalProperties actualModel = CoreHelper .deserialize(CoreHelper.serialize(model), ModelWithMapOfArrayOfPrimitiveAdditionalProperties.class); assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); // Non-Primitive Case + Map> nonPrimitiveAdditionalProperties = new HashMap>() { + { + put("key1", Arrays.asList(new Vehicle.Builder("4").build())); + put("key2", Arrays.asList(new Vehicle.Builder("5").build())); + } + }; ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic") - .additionalProperty("name", Map.of("key1", Arrays.asList(new Vehicle.Builder("4").build()), - "key2", Arrays.asList(new Vehicle.Builder("5").build()))) - .build(); + "APIMatic").additionalProperty("name", nonPrimitiveAdditionalProperties).build(); - Map> expectedNonPrimitiveModel = Map.of("key1", - Arrays.asList(new Vehicle.Builder("4").build()), "key2", - Arrays.asList(new Vehicle.Builder("5").build())); + Map> expectedNonPrimitiveModel = new HashMap>() { + { + put("key1", Arrays.asList(new Vehicle.Builder("4").build())); + put("key2", Arrays.asList(new Vehicle.Builder("5").build())); + } + }; ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( CoreHelper.serialize(nonPrimitiveModel), ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.class); @@ -151,27 +190,35 @@ public void testMapOfArrayAdditionalProperties() throws IOException { actualNonPrimitiveModel.getAdditionalProperty("name").get("key2").get(0).toString()); } + @SuppressWarnings("serial") @Test public void testArrayOfMapAdditionalProperties() throws IOException { + Map primitiveAdditionalProperties = new HashMap() { + { + put("key1", "value1"); + put("key2", "value2"); + } + }; ModelWithArrayOfMapOfPrimitiveAdditionalProperties model = new ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList(Map.of("key1", "value1", "key2", "value2"))) - .build(); + "APIMatic").additionalProperty("name", Arrays.asList(primitiveAdditionalProperties)).build(); - List> expectedValue = Arrays.asList(Map.of("key1", "value1", "key2", "value2")); + List> expectedValue = Arrays.asList(primitiveAdditionalProperties); ModelWithArrayOfMapOfPrimitiveAdditionalProperties actualModel = CoreHelper .deserialize(CoreHelper.serialize(model), ModelWithArrayOfMapOfPrimitiveAdditionalProperties.class); assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); // Non-Primitive Case + Map nonPrimitiveAdditionalProperties = new HashMap() { + { + put("key1", new Vehicle.Builder("4").build()); + put("key2", new Vehicle.Builder("5").build()); + } + }; ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic") - .additionalProperty("name", Arrays.asList(Map.of("key1", new Vehicle.Builder("4").build(), - "key2", new Vehicle.Builder("5").build()))) - .build(); + "APIMatic").additionalProperty("name", Arrays.asList(nonPrimitiveAdditionalProperties)).build(); - List> expectedNonPrimitiveModel = Arrays - .asList(Map.of("key1", new Vehicle.Builder("4").build(), "key2", new Vehicle.Builder("5").build())); + List> expectedNonPrimitiveModel = Arrays.asList(nonPrimitiveAdditionalProperties); ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( CoreHelper.serialize(nonPrimitiveModel), ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.class); diff --git a/src/test/java/apimatic/core/utilities/CoreHelperTest.java b/src/test/java/apimatic/core/utilities/CoreHelperTest.java index 649abde7..8b5ee759 100644 --- a/src/test/java/apimatic/core/utilities/CoreHelperTest.java +++ b/src/test/java/apimatic/core/utilities/CoreHelperTest.java @@ -5,6 +5,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; + import java.io.IOException; import java.time.LocalDate; import java.time.LocalDateTime; @@ -20,7 +21,9 @@ import java.util.List; import java.util.Map; import java.util.UUID; + import org.junit.Test; + import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; @@ -694,22 +697,23 @@ public void testPrepareFormFieldsModel() { assertEquals(actual, expected); } + @SuppressWarnings("serial") @Test public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { - ModelWithPrimitiveAdditionalProperties simple = new ModelWithPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", "value").build(); + ModelWithPrimitiveAdditionalProperties simple = new ModelWithPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", "value").build(); Map formParameters = new HashMap<>(); formParameters.put("body", simple); List> expected = new ArrayList>(); expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name]", "value")); - + List> actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - + // Array of primitive types ModelWithArrayOfPrimitiveAdditionalProperties array = new ModelWithArrayOfPrimitiveAdditionalProperties.Builder( "APIMatic").additionalProperty("name", Arrays.asList("value1", "value2")).build(); @@ -720,14 +724,19 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][0]", "value1")); expected.add(new SimpleEntry("body[name][1]", "value2")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - + // Map of primitive types + Map primitiveAdditionalProperties = new HashMap() { + { + put("key1", "value1"); + put("key2", "value2"); + } + }; ModelWithMapOfPrimitiveAdditionalProperties map = new ModelWithMapOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Map.of("key1", "value1", "key2", "value2")).build(); + "APIMatic").additionalProperty("name", primitiveAdditionalProperties).build(); formParameters = new HashMap<>(); formParameters.put("body", map); @@ -735,15 +744,13 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][key1]", "value1")); expected.add(new SimpleEntry("body[name][key2]", "value2")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - + // Array of Map of primitive types ModelWithArrayOfMapOfPrimitiveAdditionalProperties arrayOfMap = new ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList(Map.of("key1", "value1", "key2", "value2"))) - .build(); + "APIMatic").additionalProperty("name", Arrays.asList(primitiveAdditionalProperties)).build(); formParameters = new HashMap<>(); formParameters.put("body", arrayOfMap); @@ -751,16 +758,19 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][0][key1]", "value1")); expected.add(new SimpleEntry("body[name][0][key2]", "value2")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - + // Map of Array of primitive types + Map> arrayAdditionalProperties = new HashMap>() { + { + put("key1", Arrays.asList("value1", "value2")); + put("key2", Arrays.asList("value1", "value2")); + } + }; ModelWithMapOfArrayOfPrimitiveAdditionalProperties mapOfArray = new ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", - Map.of("key1", Arrays.asList("value1", "value2"), "key2", Arrays.asList("value1", "value2"))) - .build(); + "APIMatic").additionalProperty("name", arrayAdditionalProperties).build(); formParameters = new HashMap<>(); formParameters.put("body", mapOfArray); @@ -770,11 +780,10 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[name][key1][1]", "value2")); expected.add(new SimpleEntry("body[name][key2][0]", "value1")); expected.add(new SimpleEntry("body[name][key2][1]", "value2")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - + // 3D Array of primitive types ModelWith3dArrayOfPrimitiveAdditionalProperties array3D = new ModelWith3dArrayOfPrimitiveAdditionalProperties.Builder( "APIMatic").additionalProperty("name", Arrays.asList(Arrays.asList(Arrays.asList("value1", "value2")))) @@ -786,11 +795,10 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][0][0][0]", "value1")); expected.add(new SimpleEntry("body[name][0][0][1]", "value2")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - + ModelWithDateTimeAdditionalProperties dateTimeModel = new ModelWithDateTimeAdditionalProperties.Builder( "APIMatic") .additionalProperty("name", @@ -803,12 +811,12 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { expected = new ArrayList>(); expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name]", "Thu, 13 Jul 2000 06:10:00 GMT")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); } + @SuppressWarnings("serial") @Test public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { ModelWithNonPrimitiveAdditionalProperties simpleModel = new ModelWithNonPrimitiveAdditionalProperties.Builder( @@ -819,13 +827,13 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { List> expected = new ArrayList>(); expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][NumberOfTyres]", "4")); - + List> actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - - // Array of Non primitive types + + // Array of non primitive types ModelWithArrayOfNonPrimitiveAdditionalProperties array = new ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder( "APIMatic") .additionalProperty("name", @@ -838,31 +846,33 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][0][NumberOfTyres]", "4")); expected.add(new SimpleEntry("body[name][1][NumberOfTyres]", "5")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - - // Map of primitive types + + // Map of non primitive types + Map nonPrimitiveAdditionalProperties = new HashMap() { + { + put("key1", new Vehicle.Builder("4").build()); + put("key2", new Vehicle.Builder("5").build()); + } + }; ModelWithMapOfNonPrimitiveAdditionalProperties map = new ModelWithMapOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Map.of("key1", new Vehicle.Builder("4").build())).build(); + "APIMatic").additionalProperty("name", nonPrimitiveAdditionalProperties).build(); formParameters = new HashMap<>(); formParameters.put("body", map); expected = new ArrayList>(); expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][key1][NumberOfTyres]", "4")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + expected.add(new SimpleEntry("body[name][key2][NumberOfTyres]", "5")); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - - // Array of Map of primitive types + + // Array of Map of non primitive types ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties arrayOfMap = new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic") - .additionalProperty("name", Arrays.asList(Map.of("key1", new Vehicle.Builder("4").build(), - "key2", new Vehicle.Builder("5").build()))) - .build(); + "APIMatic").additionalProperty("name", Arrays.asList(nonPrimitiveAdditionalProperties)).build(); formParameters = new HashMap<>(); formParameters.put("body", arrayOfMap); @@ -870,17 +880,19 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][0][key1][NumberOfTyres]", "4")); expected.add(new SimpleEntry("body[name][0][key2][NumberOfTyres]", "5")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - - // Map of Array of primitive types + + // Map of Array of non primitive types + Map> arrayNonPrimitiveAdditionalProperties = new HashMap>() { + { + put("key1", Arrays.asList(new Vehicle.Builder("4").build())); + put("key2", Arrays.asList(new Vehicle.Builder("5").build())); + } + }; ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties mapOfArray = new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic") - .additionalProperty("name", Map.of("key1", Arrays.asList(new Vehicle.Builder("4").build()), - "key2", Arrays.asList(new Vehicle.Builder("5").build()))) - .build(); + "APIMatic").additionalProperty("name", arrayNonPrimitiveAdditionalProperties).build(); formParameters = new HashMap<>(); formParameters.put("body", mapOfArray); @@ -888,12 +900,11 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][key1][0][NumberOfTyres]", "4")); expected.add(new SimpleEntry("body[name][key2][0][NumberOfTyres]", "5")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - - // 3D Array of primitive types + + // 3D Array of non primitive types ModelWith3dArrayOfNonPrimitiveAdditionalProperties array3D = new ModelWith3dArrayOfNonPrimitiveAdditionalProperties.Builder( "APIMatic").additionalProperty( "name", @@ -907,15 +918,15 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][0][0][0][NumberOfTyres]", "4")); expected.add(new SimpleEntry("body[name][0][0][1][NumberOfTyres]", "5")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - + + // oneOf/anyOf cases ModelWithTypeCombinatorAdditionalProperties typeCombinatorAModel = new ModelWithTypeCombinatorAdditionalProperties.Builder( "APIMatic").additionalProperty("name", SendScalarParamBody.fromPrecision(Arrays.asList(100.11, 133.00))) .build(); - + formParameters = new HashMap<>(); formParameters.put("body", typeCombinatorAModel); @@ -923,23 +934,20 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name][0]", 100.11)); expected.add(new SimpleEntry("body[name][1]", 133.0)); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - + ModelWithTypeCombinatorAdditionalProperties typeCombinatorBModel = new ModelWithTypeCombinatorAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", SendScalarParamBody.fromMString("value")) - .build(); - + "APIMatic").additionalProperty("name", SendScalarParamBody.fromMString("value")).build(); + formParameters = new HashMap<>(); formParameters.put("body", typeCombinatorBModel); expected = new ArrayList>(); expected.add(new SimpleEntry("body[company]", "APIMatic")); expected.add(new SimpleEntry("body[name]", "value")); - actual = CoreHelper.prepareFormFields(formParameters, - ArraySerializationFormat.INDEXED); + actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); } From d02220c8405a6003bdf561b96ab63c4d7ef9e464 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 15:44:52 +0500 Subject: [PATCH 05/14] fixed some of the linting issues and adds utility for safe serialization and deserialization --- .../core/types/AdditionalProperties.java | 80 +++---- .../core/utilities/ConversionHelper.java | 114 +++++----- .../apimatic/core/utilities/CoreHelper.java | 58 ++++- .../core/utilities/LocalDateTimeHelper.java | 13 -- src/test/java/Constants.java | 17 -- .../core/constants/DateTimeConstants.java | 39 +++- ...rayOfNonPrimitiveAdditionalProperties.java | 52 +++-- ...dArrayOfPrimitiveAdditionalProperties.java | 39 ++-- ...MapOfNonPrimitiveAdditionalProperties.java | 52 +++-- ...yOfMapOfPrimitiveAdditionalProperties.java | 39 ++-- ...rayOfNonPrimitiveAdditionalProperties.java | 50 ++--- ...hArrayOfPrimitiveAdditionalProperties.java | 41 ++-- ...ModelWithDateTimeAdditionalProperties.java | 39 ++-- ...rayOfNonPrimitiveAdditionalProperties.java | 48 ++--- ...fArrayOfPrimitiveAdditionalProperties.java | 37 ++-- ...MapOfNonPrimitiveAdditionalProperties.java | 48 ++--- ...ithMapOfPrimitiveAdditionalProperties.java | 41 ++-- ...lWithNonPrimitiveAdditionalProperties.java | 41 ++-- ...odelWithPrimitiveAdditionalProperties.java | 35 +-- ...ithTypeCombinatorAdditionalProperties.java | 46 ++-- .../core/type/AdditionalPropertiesTest.java | 201 +++++++++++------- .../core/utilities/ConversionHelperTest.java | 177 ++++++++------- .../core/utilities/CoreHelperTest.java | 25 +++ .../utilities/LocalDateTimeHelperTest.java | 6 +- 24 files changed, 742 insertions(+), 596 deletions(-) delete mode 100644 src/test/java/Constants.java diff --git a/src/main/java/io/apimatic/core/types/AdditionalProperties.java b/src/main/java/io/apimatic/core/types/AdditionalProperties.java index 628e5009..7c647884 100644 --- a/src/main/java/io/apimatic/core/types/AdditionalProperties.java +++ b/src/main/java/io/apimatic/core/types/AdditionalProperties.java @@ -1,6 +1,5 @@ package io.apimatic.core.types; -import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.util.HashSet; import java.util.LinkedHashMap; @@ -11,79 +10,86 @@ import com.fasterxml.jackson.annotation.JsonGetter; /** - * A generic class for additional properties in a model. + * A generic class for managing additional properties in a model. + * + * @param the type of the additional properties. */ public class AdditionalProperties { /** * Map to store additional properties. */ - private Map additionalProperties = new LinkedHashMap(); + private final Map additionalProperties = new LinkedHashMap<>(); /** - * List to store model properties. + * Set to store model properties. */ - private Set modelProperties = new HashSet(); + private final Set modelProperties = new HashSet<>(); /** * Default constructor. */ public AdditionalProperties() { + // Default constructor } /** * Parameterized constructor. - * @param classInstance The instance of the class having additional properties. + * + * @param classInstance The instance of the class with additional properties. */ public AdditionalProperties(Class classInstance) { Method[] methods = classInstance.getMethods(); for (Method method : methods) { - Annotation annotation = method.getAnnotation(JsonGetter.class); - if (annotation != null) { - modelProperties.add(((JsonGetter) annotation).value()); + JsonGetter jsonGetter = method.getAnnotation(JsonGetter.class); + if (jsonGetter != null) { + modelProperties.add(jsonGetter.value()); } } } /** - * The getter for provided additional properties. - * @return Returns the map of {@code T} typed additional properties. + * Gets the additional properties. + * + * @return the map of additional properties. */ public Map getAdditionalProperties() { return additionalProperties; } /** - * The setter for an additional property. - * @param key The additional property key. - * @param value The {@code T} type additional property value. - * @throws IllegalArgumentException if there is a conflict between key and any - * model property. + * Sets an additional property. + * + * @param key The key for the additional property. + * @param value The value of the additional property. + * @throws IllegalArgumentException if there is a conflict between the key and + * any model property. */ public void setAdditionalProperty(String key, T value) { - if (key == null || key.trim().isEmpty()) - return; + if (key == null || key.trim().isEmpty()) { + throw new IllegalArgumentException("Key cannot be null or empty."); + } if (modelProperties.contains(key)) { - // key is reserved for properties - throw new IllegalArgumentException("Key '" + key + "' is conflicting with model property"); + throw new IllegalArgumentException( + "Key '" + key + "' conflicts with a model property."); } additionalProperties.put(key, value); } /** - * The setter for an additional property. - * @param key The additional property key. - * @param value The {@code T} type additional property value. - * @param skipNullValue The flag to skip null values in the additional - * properties map. - * @throws IllegalArgumentException if there is a conflict between key and any - * model property. + * Sets an additional property with an option to skip null values. + * + * @param key The key for the additional property. + * @param value The value of the additional property. + * @param skipNullValue If true, null values will be skipped. + * @throws IllegalArgumentException if there is a conflict between the key and + * any model property. */ public void setAdditionalProperty(String key, T value, boolean skipNullValue) { - if (skipNullValue && value == null) + if (skipNullValue && value == null) { return; - + } setAdditionalProperty(key, value); } @@ -92,18 +98,18 @@ public String toString() { if (additionalProperties.isEmpty()) { return ""; } - - return ", " + additionalProperties.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()) - .collect(Collectors.joining(", ")); + return additionalProperties.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()) + .collect(Collectors.joining(", ", ", ", "")); } /** - * The getter for provided additional properties. - * @param key The additional property key to search. - * @return the {@code T} type additional property value associated with the - * provided key. + * Gets an additional property by key. + * + * @param key The key of the additional property to retrieve. + * @return the value of the additional property associated with the given key, + * or null if not found. */ public T getAdditionalProperty(String key) { return additionalProperties.get(key); } -} +} \ No newline at end of file diff --git a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java index f402467d..a3fa3ab9 100644 --- a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java +++ b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java @@ -7,16 +7,25 @@ import java.util.stream.Collectors; /** - * This is a Helper class for the coversion of type for all structures supported - * in the SDK. + * A helper class for converting types of various structures supported in the + * SDK. */ public class ConversionHelper { + + /** + * Private constructor to prevent instantiation of this utility class. + */ + private ConversionHelper() { + // Prevent instantiation + } + /** * Converts a single object to the specified type. - * - * @param value The object to convert. - * @param conversionFunction The function to apply for conversion. - * @return The converted object of type {@code S}, or null if conversion fails. + * + * @param the type to convert to. + * @param value the object to convert. + * @param conversionFunction the function to apply for conversion. + * @return the converted object of type {@code S}, or null if conversion fails. */ public static S convertToSimpleType(Object value, Function conversionFunction) { try { @@ -28,26 +37,26 @@ public static S convertToSimpleType(Object value, Function conver /** * Converts a map of objects to a map of the specified type. - * - * @param value The map of objects to convert. - * @param conversionFunction The function to apply for conversion of each value. - * @return A map with values converted to type {@code S}, skipping unconvertible - * values. + * + * @param the type of values in the resulting map. + * @param value the map of objects to convert. + * @param conversionFunction the function to apply for conversion of each value. + * @return a map with values converted to type {@code S}, or null if conversion + * fails. */ @SuppressWarnings("unchecked") public static Map convertToMap(Object value, Function conversionFunction) { - if (value == null) + if (value == null) { return null; + } try { Map valueMap = (Map) value; - Map filteredMap = valueMap.entrySet().stream().map(entry -> { - S convertedValue = convertToSimpleType(entry.getValue(), conversionFunction); - return new AbstractMap.SimpleEntry<>(entry.getKey(), convertedValue); - }).filter(entry -> entry.getValue() != null) // Filter out null values + return valueMap.entrySet().stream() + .map(entry -> new AbstractMap.SimpleEntry<>(entry.getKey(), + convertToSimpleType(entry.getValue(), conversionFunction))) + .filter(entry -> entry.getValue() != null) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - - return filteredMap; } catch (Exception e) { return null; } @@ -55,11 +64,12 @@ public static Map convertToMap(Object value, Function /** * Converts a list of objects to a list of the specified type. - * - * @param value The list of objects to convert. - * @param conversionFunction The function to apply for conversion of each item. - * @return A list with elements converted to type {@code S}, skipping - * unconvertible items. + * + * @param the type of elements in the resulting list. + * @param value the list of objects to convert. + * @param conversionFunction the function to apply for conversion of each item. + * @return a list with elements converted to type {@code S}, or null if + * conversion fails. */ @SuppressWarnings("unchecked") public static List convertToArray(Object value, Function conversionFunction) { @@ -74,12 +84,14 @@ public static List convertToArray(Object value, Function conve /** * Converts a list of maps to a list of maps with values of the specified type. - * - * @param value The list of maps to convert. - * @param conversionFunction The function to apply for conversion of each map's + * + * @param the type of values in the maps of the resulting + * list. + * @param value the list of maps to convert. + * @param conversionFunction the function to apply for conversion of each map's * values. - * @return A list of maps with converted values of type {@code S}, skipping - * unconvertible items. + * @return a list of maps with converted values of type {@code S}, or null if + * conversion fails. */ @SuppressWarnings("unchecked") public static List> convertToArrayOfMap(Object value, Function conversionFunction) { @@ -94,19 +106,22 @@ public static List> convertToArrayOfMap(Object value, Functio /** * Converts a map of lists to a map with lists of the specified type. - * - * @param value The map of lists to convert. - * @param conversionFunction The function to apply for conversion of each list's + * + * @param the type of elements in the lists of the resulting + * map. + * @param value the map of lists to convert. + * @param conversionFunction the function to apply for conversion of each list's * elements. - * @return A map with lists converted to type {@code S}, skipping unconvertible - * items. + * @return a map with lists converted to type {@code S}, or null if conversion + * fails. */ @SuppressWarnings("unchecked") public static Map> convertToMapOfArray(Object value, Function conversionFunction) { try { Map valueMap = (Map) value; return valueMap.entrySet().stream() - .map(entry -> new AbstractMap.SimpleEntry<>(entry.getKey(), convertToArray(entry.getValue(), conversionFunction))) + .map(entry -> new AbstractMap.SimpleEntry<>(entry.getKey(), + convertToArray(entry.getValue(), conversionFunction))) .filter(entry -> entry.getValue() != null && !entry.getValue().isEmpty()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } catch (Exception e) { @@ -117,13 +132,15 @@ public static Map> convertToMapOfArray(Object value, Functio /** * Converts an n-dimensional array to a nested list with elements of the * specified type. - * - * @param value The n-dimensional array to convert. - * @param conversionFunction The function to apply for conversion of each + * + * @param the type of the nested structure. + * @param the type of elements in the nested structure. + * @param value the n-dimensional array to convert. + * @param conversionFunction the function to apply for conversion of each * element. - * @param dimensionCount The depth of the nested structure. - * @return A nested list with elements converted to type {@code T}, skipping - * unconvertible items. + * @param dimensionCount the depth of the nested structure. + * @return a nested list with elements converted to type {@code S}, or null if + * conversion fails. */ @SuppressWarnings("unchecked") public static T convertToNDimensionalArray(Object value, Function conversionFunction, @@ -137,13 +154,14 @@ public static T convertToNDimensionalArray(Object value, Function the type of elements in the nested structure. + * @param value the n-dimensional array to convert. + * @param conversionFunction the function to apply for conversion of each * element. - * @param dimensionCount The depth of the nested structure. - * @return A nested list with elements converted to type {@code S}, skipping - * unconvertible items. + * @param dimensionCount the depth of the nested structure. + * @return a nested list with elements converted to type {@code S}, or null if + * conversion fails. */ @SuppressWarnings("unchecked") private static List convertToNDimensionalArrayInternal(Object value, Function conversionFunction, @@ -158,8 +176,8 @@ private static List convertToNDimensionalArrayInternal(Object value, Func .filter(item -> item != null && !((List) item).isEmpty()).collect(Collectors.toList()); } } catch (Exception e) { - // Ignoring in order to handle the exception silently. + // Ignoring exception to handle silently. } return null; } -} +} \ No newline at end of file diff --git a/src/main/java/io/apimatic/core/utilities/CoreHelper.java b/src/main/java/io/apimatic/core/utilities/CoreHelper.java index bd3b8313..ecd199c2 100644 --- a/src/main/java/io/apimatic/core/utilities/CoreHelper.java +++ b/src/main/java/io/apimatic/core/utilities/CoreHelper.java @@ -171,7 +171,7 @@ private static JsonSerializer getCollectionSerializer(JsonSerialize serialize if (serializerAnnotation == null) { return null; } - + try { return serializerAnnotation.contentUsing().getDeclaredConstructor().newInstance(); } catch (Exception e) { @@ -213,6 +213,25 @@ public static String serialize(Object obj) throws JsonProcessingException { return mapper.writeValueAsString(obj); } + /** + * Json Serialization of a given object. + * + * @param obj The object to serialize into Json. + * @return The serialized Json String representation of the given object or null + * if unable to serialize. + */ + public static String trySerialize(Object obj) { + if (obj == null) { + return null; + } + + try { + return serialize(obj); + } catch (JsonProcessingException jpe) { + return null; + } + } + /** * Json Serialization of a given object using a specified JsonSerializer. * @@ -399,6 +418,25 @@ public static T deserialize(String json, Class clazz) thro return mapper.readValue(json, clazz); } + /** + * Json deserialization of the given Json string. + * + * @param The type of the object to deserialize into. + * @param json The Json string to deserialize. + * @param clazz The type of the object to deserialize into. + * @return The deserialized object else null if unable to deserialize. + */ + public static T tryDeserialize(String json, Class clazz) { + if (isNullOrWhiteSpace(json)) { + return null; + } + try { + return deserialize(json, clazz); + } catch (IOException io) { + return null; + } + } + /** * Strict JSON deserialization of the given JSON string with * FAIL_ON_UNKNOWN_PROPERTIES flag as true, used particularly for type @@ -1234,7 +1272,7 @@ private static void objectToList(String objName, Object obj, // Get JsonGetter annotation Annotation getterAnnotation = method.getAnnotation(JsonGetter.class); Annotation anyGetterAnnotation = method.getAnnotation(JsonAnyGetter.class); - + if (getterAnnotation == null && anyGetterAnnotation == null) { continue; } @@ -1250,20 +1288,22 @@ private static void objectToList(String objName, Object obj, if ((objName != null) && (!objName.isEmpty())) { attribName = String.format("%s[%s]", objName, attribName); } - + // Load key value pair into objectList if (serializerAnnotation != null) { - loadKeyValuePairForEncoding(attribName, value, objectList, processed, - serializerAnnotation, arraySerializationFormat); + loadKeyValuePairForEncoding(attribName, value, objectList, + processed, serializerAnnotation, arraySerializationFormat); } else { - loadKeyValuePairForEncoding(attribName, value, objectList, processed, - arraySerializationFormat); + loadKeyValuePairForEncoding(attribName, value, objectList, + processed, arraySerializationFormat); } } else { JsonSerializer serializer = getCollectionSerializer(serializerAnnotation); String serializedValue = serialize(value, serializer); - value = serializedValue != null ? deserializeAsObject(serializedValue.toString()) : value; - objectToList(objName, (Map) value, objectList, processed, arraySerializationFormat); + value = serializedValue != null ? + deserializeAsObject(serializedValue.toString()) : value; + objectToList(objName, (Map) value, objectList, processed, + arraySerializationFormat); } } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | JsonProcessingException e) { diff --git a/src/main/java/io/apimatic/core/utilities/LocalDateTimeHelper.java b/src/main/java/io/apimatic/core/utilities/LocalDateTimeHelper.java index 09b5f432..75c94841 100644 --- a/src/main/java/io/apimatic/core/utilities/LocalDateTimeHelper.java +++ b/src/main/java/io/apimatic/core/utilities/LocalDateTimeHelper.java @@ -361,19 +361,6 @@ public void serialize(LocalDateTime value, JsonGenerator jgen, SerializerProvide jgen.writeString(toRfc1123DateTime(value)); } } - - /** - * A class to handle serialization of Rfc1123 format strings to DateTime objects. - */ - public static class Rfc1123DateTimeArraySerializer extends JsonSerializer> { - @SuppressWarnings("unused") - @Override - public void serialize(List values, JsonGenerator jgen, SerializerProvider provider) - throws IOException, JsonProcessingException { - List convertedValues = toRfc1123DateTime(values); - jgen.writeString(convertedValues.toString()); - } - } /** * A class to handle deserialization of DateTime objects to Rfc8601(Rfc3339) format strings. diff --git a/src/test/java/Constants.java b/src/test/java/Constants.java deleted file mode 100644 index 50246191..00000000 --- a/src/test/java/Constants.java +++ /dev/null @@ -1,17 +0,0 @@ - -/* - * Class to store constants for the tests. - */ -public class Constants { - public static final long UNIXTIMESTAMP3 = 868756200L; - public static final long UNITIMESTAMP2 = 1595639400L; - public static final long UNIXTIMESTAMP1 = 963450600L; - public static final int DAY25 = 25; - public static final int YEAR2020 = 2020; - public static final int YEAR2000 = 2000; - public static final int HOUR6 = 6; - public static final int DAY13 = 13; - public static final int JULY = 7; - public static final int MINUTES10 = 10; - public static final int YEAR1997 = 1997; -} diff --git a/src/test/java/apimatic/core/constants/DateTimeConstants.java b/src/test/java/apimatic/core/constants/DateTimeConstants.java index 23ae7ccd..3acdf4ec 100644 --- a/src/test/java/apimatic/core/constants/DateTimeConstants.java +++ b/src/test/java/apimatic/core/constants/DateTimeConstants.java @@ -1,18 +1,47 @@ package apimatic.core.constants; -/* - * Class to store constants for the tests. +/** + * A class to store constant values for date and time used in tests. */ -public class DateTimeConstants { +public final class DateTimeConstants { + + /** + * Private constructor to prevent instantiation of this utility class. + */ + private DateTimeConstants() { + // Prevent instantiation + } + + /** UNIX timestamp representing 1997-06-16 00:00:00 UTC. */ public static final long UNIXTIMESTAMP3 = 868756200L; - public static final long UNITIMESTAMP2 = 1595639400L; + + /** UNIX timestamp representing 2020-07-25 06:10:00 UTC. */ + public static final long UNIXTIMESTAMP2 = 1595639400L; + + /** UNIX timestamp representing 2000-07-13 06:10:00 UTC. */ public static final long UNIXTIMESTAMP1 = 963450600L; + + /** Day value for the 25th. */ public static final int DAY25 = 25; + + /** Year value for 2020. */ public static final int YEAR2020 = 2020; + + /** Year value for 2000. */ public static final int YEAR2000 = 2000; + + /** Hour value for 6 AM. */ public static final int HOUR6 = 6; + + /** Day value for the 13th. */ public static final int DAY13 = 13; + + /** Month value for July. */ public static final int JULY = 7; + + /** Minute value for 10 minutes. */ public static final int MINUTES10 = 10; + + /** Year value for 1997. */ public static final int YEAR1997 = 1997; -} +} \ No newline at end of file diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java index d23c0135..8e920f44 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java @@ -1,6 +1,5 @@ package apimatic.core.models; -import java.io.IOException; import java.util.List; import java.util.Map; @@ -16,8 +15,8 @@ public class ModelWith3dArrayOfNonPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>( - this.getClass()); + protected AdditionalProperties>>> additionalProperties = + new AdditionalProperties>>>(this.getClass()); /** * Default constructor. @@ -27,11 +26,10 @@ public ModelWith3dArrayOfNonPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. + * * @param company String value for company. - * @param type String value for type. */ - public ModelWith3dArrayOfNonPrimitiveAdditionalProperties(String company) { + public ModelWith3dArrayOfNonPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -69,13 +67,12 @@ private Map>>> getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToNDimensionalArray(value, (x) -> { - try { - return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); - } catch (IOException e) { - return null; - } - }, 3), true); + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToNDimensionalArray(value, + x -> CoreHelper.tryDeserialize( + CoreHelper.trySerialize(x), Vehicle.class), + 3), + true); } /** @@ -88,30 +85,31 @@ public List>> getAdditionalProperty(String key) { } /** - * Converts this ChildNumberType into string format. + * Converts this ModelWith3dArrayOfNonPrimitiveAdditionalProperties into string format. * @return String representation of this class */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWith3dArrayOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWith3dArrayOfNonPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWith3dArrayOfNonPrimitiveAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWith3dArrayOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWith3dArrayOfNonPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(); + private AdditionalProperties>>> additionalProperties = + new AdditionalProperties>>>(); /** * Initialization constructor. @@ -121,10 +119,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -150,12 +147,13 @@ public Builder additionalProperty(String name, List>> value) } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWith3dArrayOfNonPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWith3dArrayOfNonPrimitiveAdditionalProperties} */ public ModelWith3dArrayOfNonPrimitiveAdditionalProperties build() { - ModelWith3dArrayOfNonPrimitiveAdditionalProperties obj = new ModelWith3dArrayOfNonPrimitiveAdditionalProperties( - company); + ModelWith3dArrayOfNonPrimitiveAdditionalProperties obj = + new ModelWith3dArrayOfNonPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java index 31b53ee2..0ef1bc50 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java @@ -12,9 +12,10 @@ import io.apimatic.core.utilities.ConversionHelper; public class ModelWith3dArrayOfPrimitiveAdditionalProperties { + private String company; - protected AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>( - this.getClass()); + protected AdditionalProperties>>> additionalProperties = + new AdditionalProperties>>>(this.getClass()); /** * Default constructor. @@ -24,11 +25,10 @@ public ModelWith3dArrayOfPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. + * * @param company String value for company. - * @param type String value for type. */ - public ModelWith3dArrayOfPrimitiveAdditionalProperties(String company) { + public ModelWith3dArrayOfPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -67,7 +67,9 @@ private Map>>> getAdditionalProperties() { @JsonAnySetter private void setAdditionalProperties(String name, Object value) { additionalProperties.setAdditionalProperty(name, - ConversionHelper.convertToNDimensionalArray(value, (x) -> ((String) x), 3), true); + ConversionHelper.convertToNDimensionalArray(value, + x -> ((String) x), 3), + true); } /** @@ -85,25 +87,26 @@ public List>> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWith3dArrayOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWith3dArrayOfPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWith3dArrayOfPrimitiveAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWith3dArrayOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWith3dArrayOfPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(); + private AdditionalProperties>>> additionalProperties = + new AdditionalProperties>>>(); /** * Initialization constructor. @@ -113,10 +116,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -142,12 +144,13 @@ public Builder additionalProperty(String name, List>> value) { } /** - * Builds a new {@link ChildNumberType} object using the set fields. + * Builds a new {@link ModelWith3dArrayOfPrimitiveAdditionalProperties} object + * using the set fields. * @return {@link ChildNumberType} */ public ModelWith3dArrayOfPrimitiveAdditionalProperties build() { - ModelWith3dArrayOfPrimitiveAdditionalProperties obj = new ModelWith3dArrayOfPrimitiveAdditionalProperties( - company); + ModelWith3dArrayOfPrimitiveAdditionalProperties obj = + new ModelWith3dArrayOfPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java index 4b3e2675..fce0fd3b 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java @@ -1,6 +1,5 @@ package apimatic.core.models; -import java.io.IOException; import java.util.List; import java.util.Map; @@ -15,8 +14,8 @@ public class ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties>> additionalProperties = new AdditionalProperties>>( - this.getClass()); + protected AdditionalProperties>> additionalProperties = + new AdditionalProperties>>(this.getClass()); /** * Default constructor. @@ -26,11 +25,11 @@ public ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. + * * @param company String value for company. - * @param type String value for type. + */ - public ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties(String company) { + public ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -68,13 +67,11 @@ private Map>> getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToArrayOfMap(value, (x) -> { - try { - return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); - } catch (IOException e) { - return null; - } - }), true); + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToArrayOfMap(value, + x -> CoreHelper.tryDeserialize( + CoreHelper.trySerialize(x), Vehicle.class)), + true); } /** @@ -87,30 +84,31 @@ public List> getAdditionalProperty(String key) { } /** - * Converts this ChildNumberType into string format. + * Converts this ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties into string format. * @return String representation of this class */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder} object. */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithArrayOfMapOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(); + private AdditionalProperties>> additionalProperties = + new AdditionalProperties>>(); /** * Initialization constructor. @@ -120,10 +118,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -149,12 +146,13 @@ public Builder additionalProperty(String name, List> value) } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties} */ public ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties build() { - ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties obj = new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties( - company); + ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties obj = + new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java index dff94b58..0f698ba8 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java @@ -14,8 +14,8 @@ public class ModelWithArrayOfMapOfPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties>> additionalProperties = new AdditionalProperties>>( - this.getClass()); + protected AdditionalProperties>> additionalProperties = + new AdditionalProperties>>(this.getClass()); /** * Default constructor. @@ -25,11 +25,9 @@ public ModelWithArrayOfMapOfPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithArrayOfMapOfPrimitiveAdditionalProperties(String company) { + public ModelWithArrayOfMapOfPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -67,7 +65,9 @@ private Map>> getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToArrayOfMap(value, (x) -> (String) x), + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToArrayOfMap(value, + x -> (String) x), true); } @@ -86,25 +86,26 @@ public List> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithArrayOfMapOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithArrayOfMapOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithArrayOfMapOfPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(); + private AdditionalProperties>> additionalProperties = + new AdditionalProperties>>(); /** * Initialization constructor. @@ -114,10 +115,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -143,12 +143,13 @@ public Builder additionalProperty(String name, List> value) } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithArrayOfMapOfPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithArrayOfMapOfPrimitiveAdditionalProperties} */ public ModelWithArrayOfMapOfPrimitiveAdditionalProperties build() { - ModelWithArrayOfMapOfPrimitiveAdditionalProperties obj = new ModelWithArrayOfMapOfPrimitiveAdditionalProperties( - company); + ModelWithArrayOfMapOfPrimitiveAdditionalProperties obj = + new ModelWithArrayOfMapOfPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java index 38d361fd..735cb646 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java @@ -1,6 +1,5 @@ package apimatic.core.models; -import java.io.IOException; import java.util.List; import java.util.Map; @@ -16,8 +15,8 @@ public class ModelWithArrayOfNonPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties> additionalProperties = new AdditionalProperties>( - this.getClass()); + protected AdditionalProperties> additionalProperties = + new AdditionalProperties>(this.getClass()); /** * Default constructor. @@ -27,11 +26,9 @@ public ModelWithArrayOfNonPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithArrayOfNonPrimitiveAdditionalProperties(String company) { + public ModelWithArrayOfNonPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -69,13 +66,11 @@ private Map> getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToArray(value, (x) -> { - try { - return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); - } catch (IOException e) { - return null; - } - }), true); + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToArray(value, + x -> CoreHelper.tryDeserialize( + CoreHelper.trySerialize(x), Vehicle.class)), + true); } /** @@ -88,30 +83,31 @@ public List getAdditionalProperty(String key) { } /** - * Converts this ChildNumberType into string format. + * Converts this ModelWithArrayOfNonPrimitiveAdditionalProperties into string format. * @return String representation of this class */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithArrayOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithArrayOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithArrayOfNonPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties> additionalProperties = new AdditionalProperties>(); + private AdditionalProperties> additionalProperties = + new AdditionalProperties>(); /** * Initialization constructor. @@ -121,10 +117,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -150,12 +145,13 @@ public Builder additionalProperty(String name, List value) { } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithArrayOfNonPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithArrayOfNonPrimitiveAdditionalProperties} */ public ModelWithArrayOfNonPrimitiveAdditionalProperties build() { - ModelWithArrayOfNonPrimitiveAdditionalProperties obj = new ModelWithArrayOfNonPrimitiveAdditionalProperties( - company); + ModelWithArrayOfNonPrimitiveAdditionalProperties obj = + new ModelWithArrayOfNonPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java index 4683ef3f..019e8fbf 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java @@ -13,8 +13,8 @@ public class ModelWithArrayOfPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties> additionalProperties = new AdditionalProperties>( - this.getClass()); + protected AdditionalProperties> additionalProperties = + new AdditionalProperties>(this.getClass()); /** * Default constructor. @@ -24,11 +24,9 @@ public ModelWithArrayOfPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithArrayOfPrimitiveAdditionalProperties(String company) { + public ModelWithArrayOfPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -66,7 +64,9 @@ private Map> getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToArray(value, (x) -> (String) x), + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToArray(value, + x -> (String) x), true); } @@ -80,30 +80,31 @@ public List getAdditionalProperty(String key) { } /** - * Converts this ChildNumberType into string format. + * Converts this ModelWithArrayOfPrimitiveAdditionalProperties into string format. * @return String representation of this class */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithArrayOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithArrayOfPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithArrayOfPrimitiveAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithArrayOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithArrayOfPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties> additionalProperties = new AdditionalProperties>(); + private AdditionalProperties> additionalProperties = + new AdditionalProperties>(); /** * Initialization constructor. @@ -113,10 +114,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -142,12 +142,13 @@ public Builder additionalProperty(String name, List value) { } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithArrayOfPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithArrayOfPrimitiveAdditionalProperties} */ public ModelWithArrayOfPrimitiveAdditionalProperties build() { - ModelWithArrayOfPrimitiveAdditionalProperties obj = new ModelWithArrayOfPrimitiveAdditionalProperties( - company); + ModelWithArrayOfPrimitiveAdditionalProperties obj = + new ModelWithArrayOfPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java index 122152f4..121b575c 100644 --- a/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java @@ -15,8 +15,8 @@ public class ModelWithDateTimeAdditionalProperties { private String company; - protected AdditionalProperties additionalProperties = new AdditionalProperties( - this.getClass()); + protected AdditionalProperties additionalProperties = + new AdditionalProperties(this.getClass()); /** * Default constructor. @@ -26,11 +26,9 @@ public ModelWithDateTimeAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithDateTimeAdditionalProperties(String company) { + public ModelWithDateTimeAdditionalProperties(final String company) { this.company = company; } @@ -69,8 +67,10 @@ private Map getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToSimpleType(value, - x -> LocalDateTimeHelper.fromRfc1123DateTime(String.valueOf(x))), true); + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToSimpleType(value, + x -> LocalDateTimeHelper.fromRfc1123DateTime(String.valueOf(x))), + true); } /** @@ -88,25 +88,26 @@ public LocalDateTime getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithDateTimeAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithDateTimeAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithDateTimeAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithDateTimeAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithDateTimeAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties additionalProperties = new AdditionalProperties(); + private AdditionalProperties additionalProperties = + new AdditionalProperties(); /** * Initialization constructor. @@ -116,10 +117,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -145,11 +145,12 @@ public Builder additionalProperty(String name, LocalDateTime value) { } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithDateTimeAdditionalProperties} object using the set fields. + * @return {@link ModelWithDateTimeAdditionalProperties} */ public ModelWithDateTimeAdditionalProperties build() { - ModelWithDateTimeAdditionalProperties obj = new ModelWithDateTimeAdditionalProperties(company); + ModelWithDateTimeAdditionalProperties obj = + new ModelWithDateTimeAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java index fa830af1..26f55da4 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java @@ -1,6 +1,5 @@ package apimatic.core.models; -import java.io.IOException; import java.util.List; import java.util.Map; @@ -15,8 +14,8 @@ public class ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties>> additionalProperties = new AdditionalProperties>>( - this.getClass()); + protected AdditionalProperties>> additionalProperties = + new AdditionalProperties>>(this.getClass()); /** * Default constructor. @@ -26,11 +25,9 @@ public ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties(String company) { + public ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -68,13 +65,11 @@ private Map>> getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToMapOfArray(value, (x) -> { - try { - return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); - } catch (IOException e) { - return null; - } - }), true); + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToMapOfArray(value, + x -> CoreHelper.tryDeserialize( + CoreHelper.trySerialize(x), Vehicle.class)), + true); } /** @@ -92,25 +87,26 @@ public Map> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithMapOfArrayOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(); + private AdditionalProperties>> additionalProperties = + new AdditionalProperties>>(); /** * Initialization constructor. @@ -120,10 +116,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -149,12 +144,13 @@ public Builder additionalProperty(String name, Map> value) } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties} */ public ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties build() { - ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties obj = new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties( - company); + ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties obj = + new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java index 5cace76d..8d1d270a 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java @@ -13,8 +13,8 @@ public class ModelWithMapOfArrayOfPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties>> additionalProperties = new AdditionalProperties>>( - this.getClass()); + protected AdditionalProperties>> additionalProperties = + new AdditionalProperties>>(this.getClass()); /** * Default constructor. @@ -24,11 +24,9 @@ public ModelWithMapOfArrayOfPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithMapOfArrayOfPrimitiveAdditionalProperties(String company) { + public ModelWithMapOfArrayOfPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -66,7 +64,9 @@ private Map>> getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToMapOfArray(value, (x) -> (String) x), + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToMapOfArray(value, + x -> (String) x), true); } @@ -85,25 +85,26 @@ public Map> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithMapOfArrayOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithMapOfArrayOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithMapOfArrayOfPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(); + private AdditionalProperties>> additionalProperties = + new AdditionalProperties>>(); /** * Initialization constructor. @@ -113,7 +114,6 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ public Builder(String company) { @@ -142,12 +142,13 @@ public Builder additionalProperty(String name, Map> value) } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithMapOfArrayOfPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithMapOfArrayOfPrimitiveAdditionalProperties} */ public ModelWithMapOfArrayOfPrimitiveAdditionalProperties build() { - ModelWithMapOfArrayOfPrimitiveAdditionalProperties obj = new ModelWithMapOfArrayOfPrimitiveAdditionalProperties( - company); + ModelWithMapOfArrayOfPrimitiveAdditionalProperties obj = + new ModelWithMapOfArrayOfPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java index 91ef5a37..727b6279 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java @@ -1,6 +1,5 @@ package apimatic.core.models; -import java.io.IOException; import java.util.Map; import com.fasterxml.jackson.annotation.JsonAnyGetter; @@ -14,8 +13,8 @@ public class ModelWithMapOfNonPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties> additionalProperties = new AdditionalProperties>( - this.getClass()); + protected AdditionalProperties> additionalProperties = + new AdditionalProperties>(this.getClass()); /** * Default constructor. @@ -25,11 +24,9 @@ public ModelWithMapOfNonPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithMapOfNonPrimitiveAdditionalProperties(String company) { + public ModelWithMapOfNonPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -67,13 +64,11 @@ private Map> getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToMap(value, (x) -> { - try { - return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); - } catch (IOException e) { - return null; - } - }), true); + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToMap(value, + x -> CoreHelper.tryDeserialize( + CoreHelper.trySerialize(x), Vehicle.class)), + true); } /** @@ -91,25 +86,26 @@ public Map getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithMapOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithMapOfNonPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithMapOfNonPrimitiveAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithMapOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithMapOfNonPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties> additionalProperties = new AdditionalProperties>(); + private AdditionalProperties> additionalProperties = + new AdditionalProperties>(); /** * Initialization constructor. @@ -119,10 +115,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -148,12 +143,13 @@ public Builder additionalProperty(String name, Map value) { } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithMapOfNonPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithMapOfNonPrimitiveAdditionalProperties} */ public ModelWithMapOfNonPrimitiveAdditionalProperties build() { - ModelWithMapOfNonPrimitiveAdditionalProperties obj = new ModelWithMapOfNonPrimitiveAdditionalProperties( - company); + ModelWithMapOfNonPrimitiveAdditionalProperties obj = + new ModelWithMapOfNonPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java index d8d5ae53..ab80a3e3 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java @@ -12,8 +12,8 @@ public class ModelWithMapOfPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties> additionalProperties = new AdditionalProperties>( - this.getClass()); + protected AdditionalProperties> additionalProperties = + new AdditionalProperties>(this.getClass()); /** * Default constructor. @@ -23,11 +23,9 @@ public ModelWithMapOfPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithMapOfPrimitiveAdditionalProperties(String company) { + public ModelWithMapOfPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -65,7 +63,10 @@ private Map> getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToMap(value, (x) -> (String) x), true); + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToMap(value, + x -> (String) x), + true); } /** @@ -78,30 +79,31 @@ public Map getAdditionalProperty(String key) { } /** - * Converts this ChildNumberType into string format. + * Converts this ModelWithMapOfPrimitiveAdditionalProperties into string format. * @return String representation of this class */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithMapOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithMapOfPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithMapOfPrimitiveAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithMapOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithMapOfPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties> additionalProperties = new AdditionalProperties>(); + private AdditionalProperties> additionalProperties = + new AdditionalProperties>(); /** * Initialization constructor. @@ -111,10 +113,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -140,11 +141,13 @@ public Builder additionalProperty(String name, Map value) { } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithMapOfPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithMapOfPrimitiveAdditionalProperties} */ public ModelWithMapOfPrimitiveAdditionalProperties build() { - ModelWithMapOfPrimitiveAdditionalProperties obj = new ModelWithMapOfPrimitiveAdditionalProperties(company); + ModelWithMapOfPrimitiveAdditionalProperties obj = + new ModelWithMapOfPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java index 752177c7..617d2b19 100644 --- a/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java @@ -1,6 +1,5 @@ package apimatic.core.models; -import java.io.IOException; import java.util.Map; import com.fasterxml.jackson.annotation.JsonAnyGetter; @@ -14,7 +13,8 @@ public class ModelWithNonPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties additionalProperties = new AdditionalProperties(this.getClass()); + protected AdditionalProperties additionalProperties = + new AdditionalProperties(this.getClass()); /** * Default constructor. @@ -24,11 +24,9 @@ public ModelWithNonPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithNonPrimitiveAdditionalProperties(String company) { + public ModelWithNonPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -66,13 +64,11 @@ private Map getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToSimpleType(value, x -> { - try { - return CoreHelper.deserialize(CoreHelper.serialize(x), Vehicle.class); - } catch (IOException e) { - return null; - } - }), true); + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToSimpleType(value, + x -> CoreHelper.tryDeserialize( + CoreHelper.trySerialize(x), Vehicle.class)), + true); } /** @@ -90,13 +86,13 @@ public Vehicle getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithNonPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithNonPrimitiveAdditionalProperties.Builder} object */ public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); @@ -104,11 +100,12 @@ public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithNonPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties additionalProperties = new AdditionalProperties(); + private AdditionalProperties additionalProperties = + new AdditionalProperties(); /** * Initialization constructor. @@ -118,10 +115,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -147,8 +143,9 @@ public Builder additionalProperty(String name, Vehicle value) { } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithNonPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithNonPrimitiveAdditionalProperties} */ public ModelWithNonPrimitiveAdditionalProperties build() { ModelWithNonPrimitiveAdditionalProperties obj = new ModelWithNonPrimitiveAdditionalProperties(company); diff --git a/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java index b847fd17..1be15b08 100644 --- a/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java @@ -12,7 +12,8 @@ public class ModelWithPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties additionalProperties = new AdditionalProperties(this.getClass()); + protected AdditionalProperties additionalProperties = + new AdditionalProperties(this.getClass()); /** * Default constructor. @@ -22,11 +23,9 @@ public ModelWithPrimitiveAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ - public ModelWithPrimitiveAdditionalProperties(String company) { + public ModelWithPrimitiveAdditionalProperties(final String company) { this.company = company; } @@ -64,7 +63,9 @@ private Map getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToSimpleType(value, x -> (String) x), + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToSimpleType(value, + x -> (String) x), true); } @@ -78,7 +79,7 @@ public String getAdditionalProperty(String key) { } /** - * Converts this ChildNumberType into string format. + * Converts this ModelWithPrimitiveAdditionalProperties into string format. * @return String representation of this class */ @Override @@ -87,9 +88,9 @@ public String toString() { } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithPrimitiveAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithPrimitiveAdditionalProperties.Builder} object */ public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); @@ -97,11 +98,12 @@ public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithPrimitiveAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties additionalProperties = new AdditionalProperties(); + private AdditionalProperties additionalProperties = + new AdditionalProperties(); /** * Initialization constructor. @@ -111,10 +113,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -140,11 +141,13 @@ public Builder additionalProperty(String name, String value) { } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithPrimitiveAdditionalProperties} object + * using the set fields. + * @return {@link ModelWithPrimitiveAdditionalProperties} */ public ModelWithPrimitiveAdditionalProperties build() { - ModelWithPrimitiveAdditionalProperties obj = new ModelWithPrimitiveAdditionalProperties(company); + ModelWithPrimitiveAdditionalProperties obj = + new ModelWithPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java index baeefed9..50864a7f 100644 --- a/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java @@ -1,6 +1,5 @@ package apimatic.core.models; -import java.io.IOException; import java.util.Map; import com.fasterxml.jackson.annotation.JsonAnyGetter; @@ -15,8 +14,8 @@ public class ModelWithTypeCombinatorAdditionalProperties { private String company; - protected AdditionalProperties additionalProperties = new AdditionalProperties( - this.getClass()); + protected AdditionalProperties additionalProperties = + new AdditionalProperties(this.getClass()); /** * Default constructor. @@ -26,9 +25,7 @@ public ModelWithTypeCombinatorAdditionalProperties() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. - * @param type String value for type. */ public ModelWithTypeCombinatorAdditionalProperties(String company) { this.company = company; @@ -68,13 +65,11 @@ private Map getAdditionalProperties() { */ @JsonAnySetter private void setAdditionalProperties(String name, Object value) { - additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToSimpleType(value, x -> { - try { - return CoreHelper.deserialize(CoreHelper.serialize(x), SendScalarParamBody.class); - } catch (IOException e) { - return null; - } - }), true); + additionalProperties.setAdditionalProperty(name, + ConversionHelper.convertToSimpleType(value, + x -> CoreHelper.tryDeserialize( + CoreHelper.trySerialize(x), SendScalarParamBody.class)), + true); } /** @@ -87,30 +82,31 @@ public SendScalarParamBody getAdditionalProperty(String key) { } /** - * Converts this ChildNumberType into string format. + * Converts this ModelWithTypeCombinatorAdditionalProperties into string format. * @return String representation of this class */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithTypeCombinatorAdditionalProperties [" + "company=" + company + additionalProperties + "]"; } /** - * Builds a new {@link ChildNumberType.Builder} object. Creates the instance - * with the state of the current model. - * @return a new {@link ChildNumberType.Builder} object + * Builds a new {@link ModelWithTypeCombinatorAdditionalProperties.Builder} object. + * Creates the instance with the state of the current model. + * @return a new {@link ModelWithTypeCombinatorAdditionalProperties.Builder} object */ - public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { + public Builder toModelWithTypeCombinatorAdditionalPropertiesBuilder() { Builder builder = new Builder(company); return builder; } /** - * Class to build instances of {@link ChildNumberType}. + * Class to build instances of {@link ModelWithTypeCombinatorAdditionalProperties}. */ public static class Builder { private String company; - private AdditionalProperties additionalProperties = new AdditionalProperties(); + private AdditionalProperties additionalProperties = + new AdditionalProperties(); /** * Initialization constructor. @@ -120,10 +116,9 @@ public Builder() { /** * Initialization constructor. - * @param name String value for name. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } @@ -149,11 +144,12 @@ public Builder additionalProperty(String name, SendScalarParamBody value) { } /** - * Builds a new {@link ChildNumberType} object using the set fields. - * @return {@link ChildNumberType} + * Builds a new {@link ModelWithTypeCombinatorAdditionalProperties} object using the set fields. + * @return {@link ModelWithTypeCombinatorAdditionalProperties} */ public ModelWithTypeCombinatorAdditionalProperties build() { - ModelWithTypeCombinatorAdditionalProperties obj = new ModelWithTypeCombinatorAdditionalProperties(company); + ModelWithTypeCombinatorAdditionalProperties obj = + new ModelWithTypeCombinatorAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java b/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java index 97a9209f..657b2a40 100644 --- a/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java +++ b/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java @@ -35,61 +35,72 @@ public class AdditionalPropertiesTest { @Test public void testSimpleAdditionalProperties() throws IOException { - ModelWithPrimitiveAdditionalProperties simpleModel = new ModelWithPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", "value").build(); + ModelWithPrimitiveAdditionalProperties simpleModel = + new ModelWithPrimitiveAdditionalProperties.Builder( + "APIMatic").additionalProperty("name", "value").build(); ModelWithPrimitiveAdditionalProperties actualSimpleModel = CoreHelper - .deserialize(CoreHelper.serialize(simpleModel), ModelWithPrimitiveAdditionalProperties.class); + .deserialize(CoreHelper.serialize(simpleModel), + ModelWithPrimitiveAdditionalProperties.class); assertEquals("value", actualSimpleModel.getAdditionalProperty("name")); // DateTime Case - ModelWithDateTimeAdditionalProperties dateTimeModel = new ModelWithDateTimeAdditionalProperties.Builder( - "APIMatic") - .additionalProperty("name", - LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10)) + ModelWithDateTimeAdditionalProperties dateTimeModel = + new ModelWithDateTimeAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", + LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10)) .build(); ModelWithDateTimeAdditionalProperties actualDateTimeModel = CoreHelper - .deserialize(CoreHelper.serialize(dateTimeModel), ModelWithDateTimeAdditionalProperties.class); + .deserialize(CoreHelper.serialize(dateTimeModel), + ModelWithDateTimeAdditionalProperties.class); assertEquals(LocalDateTimeHelper.fromRfc1123DateTime("Thu, 13 Jul 2000 06:10:00 GMT"), actualDateTimeModel.getAdditionalProperty("name")); // Non-Primitive Case - ModelWithNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", new Vehicle.Builder("4").build()).build(); + ModelWithNonPrimitiveAdditionalProperties nonPrimitiveModel = + new ModelWithNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", new Vehicle.Builder("4").build()).build(); Vehicle expectedNonPrimitiveModel = new Vehicle.Builder("4").build(); ModelWithNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper - .deserialize(CoreHelper.serialize(nonPrimitiveModel), ModelWithNonPrimitiveAdditionalProperties.class); + .deserialize(CoreHelper.serialize(nonPrimitiveModel), + ModelWithNonPrimitiveAdditionalProperties.class); assertEquals(expectedNonPrimitiveModel.toString(), actualNonPrimitiveModel.getAdditionalProperty("name").toString()); } @Test public void testArrayAdditionalProperties() throws IOException { - ModelWithArrayOfPrimitiveAdditionalProperties model = new ModelWithArrayOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList("value1", "value2")).build(); + ModelWithArrayOfPrimitiveAdditionalProperties model = + new ModelWithArrayOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList("value1", "value2")).build(); List expectedValue = Arrays.asList("value1", "value2"); - ModelWithArrayOfPrimitiveAdditionalProperties actualModel = CoreHelper.deserialize(CoreHelper.serialize(model), - ModelWithArrayOfPrimitiveAdditionalProperties.class); + ModelWithArrayOfPrimitiveAdditionalProperties actualModel = + CoreHelper.deserialize(CoreHelper.serialize(model), + ModelWithArrayOfPrimitiveAdditionalProperties.class); assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); // Non-Primitive Case - ModelWithArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic") - .additionalProperty("name", - Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build())) - .build(); + ModelWithArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = + new ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", + Arrays.asList(new Vehicle.Builder("4").build(), + new Vehicle.Builder("5").build())) + .build(); List expectedNonPrimitiveModel = Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build()); - ModelWithArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( - CoreHelper.serialize(nonPrimitiveModel), ModelWithArrayOfNonPrimitiveAdditionalProperties.class); + ModelWithArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = + CoreHelper.deserialize( + CoreHelper.serialize(nonPrimitiveModel), + ModelWithArrayOfNonPrimitiveAdditionalProperties.class); assertEquals(expectedNonPrimitiveModel.get(0).toString(), actualNonPrimitiveModel.getAdditionalProperty("name").get(0).toString()); assertEquals(expectedNonPrimitiveModel.get(1).toString(), @@ -105,8 +116,9 @@ public void testMapAdditionalProperties() throws IOException { put("key2", "value2"); } }; - ModelWithMapOfPrimitiveAdditionalProperties model = new ModelWithMapOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", primitiveAdditionalProperties).build(); + ModelWithMapOfPrimitiveAdditionalProperties model = + new ModelWithMapOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", primitiveAdditionalProperties).build(); Map expectedValue = new HashMap() { { @@ -115,7 +127,8 @@ public void testMapAdditionalProperties() throws IOException { } }; - ModelWithMapOfPrimitiveAdditionalProperties actualModel = CoreHelper.deserialize(CoreHelper.serialize(model), + ModelWithMapOfPrimitiveAdditionalProperties actualModel = CoreHelper.deserialize( + CoreHelper.serialize(model), ModelWithMapOfPrimitiveAdditionalProperties.class); assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); @@ -126,8 +139,9 @@ public void testMapAdditionalProperties() throws IOException { put("key2", new Vehicle.Builder("5").build()); } }; - ModelWithMapOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithMapOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", nonPrimitiveAdditionalProperties).build(); + ModelWithMapOfNonPrimitiveAdditionalProperties nonPrimitiveModel = + new ModelWithMapOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", nonPrimitiveAdditionalProperties).build(); Map expectedNonPrimitiveModel = new HashMap() { { @@ -136,8 +150,9 @@ public void testMapAdditionalProperties() throws IOException { } }; - ModelWithMapOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( - CoreHelper.serialize(nonPrimitiveModel), ModelWithMapOfNonPrimitiveAdditionalProperties.class); + ModelWithMapOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = + CoreHelper.deserialize(CoreHelper.serialize(nonPrimitiveModel), + ModelWithMapOfNonPrimitiveAdditionalProperties.class); assertEquals(expectedNonPrimitiveModel.get("key1").toString(), actualNonPrimitiveModel.getAdditionalProperty("name").get("key1").toString()); } @@ -145,14 +160,16 @@ public void testMapAdditionalProperties() throws IOException { @SuppressWarnings("serial") @Test public void testMapOfArrayAdditionalProperties() throws IOException { - Map> primitiveAdditionalProperties = new HashMap>() { + Map> primitiveAdditionalProperties = + new HashMap>() { { put("key1", Arrays.asList("value1", "value2")); put("key2", Arrays.asList("value1", "value2")); } }; - ModelWithMapOfArrayOfPrimitiveAdditionalProperties model = new ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", primitiveAdditionalProperties).build(); + ModelWithMapOfArrayOfPrimitiveAdditionalProperties model = + new ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", primitiveAdditionalProperties).build(); Map> expectedValue = new HashMap>() { { @@ -161,33 +178,40 @@ public void testMapOfArrayAdditionalProperties() throws IOException { } }; - ModelWithMapOfArrayOfPrimitiveAdditionalProperties actualModel = CoreHelper - .deserialize(CoreHelper.serialize(model), ModelWithMapOfArrayOfPrimitiveAdditionalProperties.class); + ModelWithMapOfArrayOfPrimitiveAdditionalProperties actualModel = + CoreHelper.deserialize(CoreHelper.serialize(model), + ModelWithMapOfArrayOfPrimitiveAdditionalProperties.class); assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); // Non-Primitive Case - Map> nonPrimitiveAdditionalProperties = new HashMap>() { + Map> nonPrimitiveAdditionalProperties = + new HashMap>() { { put("key1", Arrays.asList(new Vehicle.Builder("4").build())); put("key2", Arrays.asList(new Vehicle.Builder("5").build())); } }; - ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", nonPrimitiveAdditionalProperties).build(); + ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = + new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", nonPrimitiveAdditionalProperties).build(); - Map> expectedNonPrimitiveModel = new HashMap>() { + Map> expectedNonPrimitiveModel = + new HashMap>() { { put("key1", Arrays.asList(new Vehicle.Builder("4").build())); put("key2", Arrays.asList(new Vehicle.Builder("5").build())); } }; - ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( - CoreHelper.serialize(nonPrimitiveModel), ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.class); + ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = + CoreHelper.deserialize(CoreHelper.serialize(nonPrimitiveModel), + ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.class); assertEquals(expectedNonPrimitiveModel.get("key1").get(0).toString(), - actualNonPrimitiveModel.getAdditionalProperty("name").get("key1").get(0).toString()); + actualNonPrimitiveModel.getAdditionalProperty("name") + .get("key1").get(0).toString()); assertEquals(expectedNonPrimitiveModel.get("key2").get(0).toString(), - actualNonPrimitiveModel.getAdditionalProperty("name").get("key2").get(0).toString()); + actualNonPrimitiveModel.getAdditionalProperty("name") + .get("key2").get(0).toString()); } @SuppressWarnings("serial") @@ -199,13 +223,15 @@ public void testArrayOfMapAdditionalProperties() throws IOException { put("key2", "value2"); } }; - ModelWithArrayOfMapOfPrimitiveAdditionalProperties model = new ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList(primitiveAdditionalProperties)).build(); + ModelWithArrayOfMapOfPrimitiveAdditionalProperties model = + new ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList(primitiveAdditionalProperties)).build(); List> expectedValue = Arrays.asList(primitiveAdditionalProperties); - ModelWithArrayOfMapOfPrimitiveAdditionalProperties actualModel = CoreHelper - .deserialize(CoreHelper.serialize(model), ModelWithArrayOfMapOfPrimitiveAdditionalProperties.class); + ModelWithArrayOfMapOfPrimitiveAdditionalProperties actualModel = CoreHelper.deserialize( + CoreHelper.serialize(model), + ModelWithArrayOfMapOfPrimitiveAdditionalProperties.class); assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); // Non-Primitive Case @@ -215,59 +241,74 @@ public void testArrayOfMapAdditionalProperties() throws IOException { put("key2", new Vehicle.Builder("5").build()); } }; - ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList(nonPrimitiveAdditionalProperties)).build(); + ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties nonPrimitiveModel = + new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList(nonPrimitiveAdditionalProperties)) + .build(); - List> expectedNonPrimitiveModel = Arrays.asList(nonPrimitiveAdditionalProperties); + List> expectedNonPrimitiveModel = Arrays.asList( + nonPrimitiveAdditionalProperties); - ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( - CoreHelper.serialize(nonPrimitiveModel), ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.class); + ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = + CoreHelper.deserialize(CoreHelper.serialize(nonPrimitiveModel), + ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.class); assertEquals(expectedNonPrimitiveModel.get(0).get("key1").toString(), - actualNonPrimitiveModel.getAdditionalProperty("name").get(0).get("key1").toString()); + actualNonPrimitiveModel.getAdditionalProperty("name") + .get(0).get("key1").toString()); assertEquals(expectedNonPrimitiveModel.get(0).get("key2").toString(), - actualNonPrimitiveModel.getAdditionalProperty("name").get(0).get("key2").toString()); + actualNonPrimitiveModel.getAdditionalProperty("name") + .get(0).get("key2").toString()); } @Test public void test3DArrayAdditionalProperties() throws IOException { - ModelWith3dArrayOfPrimitiveAdditionalProperties model = new ModelWith3dArrayOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList(Arrays.asList(Arrays.asList("value1", "value2")))) - .build(); - - List>> expectedValue = Arrays.asList(Arrays.asList(Arrays.asList("value1", "value2"))); - - ModelWith3dArrayOfPrimitiveAdditionalProperties actualModel = CoreHelper - .deserialize(CoreHelper.serialize(model), ModelWith3dArrayOfPrimitiveAdditionalProperties.class); + ModelWith3dArrayOfPrimitiveAdditionalProperties model = + new ModelWith3dArrayOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList( + Arrays.asList(Arrays.asList("value1", "value2")))) + .build(); + + List>> expectedValue = Arrays.asList(Arrays.asList( + Arrays.asList("value1", "value2"))); + + ModelWith3dArrayOfPrimitiveAdditionalProperties actualModel = CoreHelper.deserialize( + CoreHelper.serialize(model), + ModelWith3dArrayOfPrimitiveAdditionalProperties.class); assertEquals(expectedValue, actualModel.getAdditionalProperty("name")); // Non-Primitive Case - ModelWith3dArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = new ModelWith3dArrayOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty( - "name", - Arrays.asList(Arrays.asList( - Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("4").build())))) - .build(); + ModelWith3dArrayOfNonPrimitiveAdditionalProperties nonPrimitiveModel = + new ModelWith3dArrayOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList(Arrays.asList(Arrays.asList( + new Vehicle.Builder("4").build(), new Vehicle.Builder("4").build())))) + .build(); List>> expectedNonPrimitiveModel = Arrays.asList( - Arrays.asList(Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("4").build()))); + Arrays.asList(Arrays.asList(new Vehicle.Builder("4").build(), + new Vehicle.Builder("4").build()))); - ModelWith3dArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = CoreHelper.deserialize( - CoreHelper.serialize(nonPrimitiveModel), ModelWith3dArrayOfNonPrimitiveAdditionalProperties.class); + ModelWith3dArrayOfNonPrimitiveAdditionalProperties actualNonPrimitiveModel = + CoreHelper.deserialize(CoreHelper.serialize(nonPrimitiveModel), + ModelWith3dArrayOfNonPrimitiveAdditionalProperties.class); assertEquals(expectedNonPrimitiveModel.get(0).get(0).get(0).toString(), - actualNonPrimitiveModel.getAdditionalProperty("name").get(0).get(0).get(0).toString()); + actualNonPrimitiveModel.getAdditionalProperty("name") + .get(0).get(0).get(0).toString()); } @Test public void testTypeCombinatorAdditionalProperties() throws IOException { - + final Double Item1 = 100.11; + final Double Item2 = 133.00; // Case A - ModelWithTypeCombinatorAdditionalProperties model = new ModelWithTypeCombinatorAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", SendScalarParamBody.fromPrecision(Arrays.asList(100.11, 133.00))) - .build(); - - ModelWithTypeCombinatorAdditionalProperties actualModel = CoreHelper.deserialize(CoreHelper.serialize(model), - ModelWithTypeCombinatorAdditionalProperties.class); - List expectedListValue = Arrays.asList(100.11, 133.00); + ModelWithTypeCombinatorAdditionalProperties model = + new ModelWithTypeCombinatorAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", SendScalarParamBody.fromPrecision( + Arrays.asList(Item1, Item2))) + .build(); + + ModelWithTypeCombinatorAdditionalProperties actualModel = CoreHelper.deserialize( + CoreHelper.serialize(model), ModelWithTypeCombinatorAdditionalProperties.class); + List expectedListValue = Arrays.asList(Item1, Item2); actualModel.getAdditionalProperty("name").match(new SendScalarParamBody.Cases() { @Override diff --git a/src/test/java/apimatic/core/utilities/ConversionHelperTest.java b/src/test/java/apimatic/core/utilities/ConversionHelperTest.java index 786069fa..86469bd8 100644 --- a/src/test/java/apimatic/core/utilities/ConversionHelperTest.java +++ b/src/test/java/apimatic/core/utilities/ConversionHelperTest.java @@ -16,8 +16,22 @@ public class ConversionHelperTest { + // Constants + private static final int EXPECTED_SIZE_ONE = 1; + private static final int EXPECTED_SIZE_TWO = 2; + private static final Integer EXPECTED_INTEGER_ONE = Integer.valueOf(1); + private static final Integer EXPECTED_INTEGER_TWO = Integer.valueOf(2); + private static final Integer EXPECTED_INTEGER_THREE = Integer.valueOf(3); + private static final Integer EXPECTED_INTEGER_FOUR = Integer.valueOf(4); + private static final Integer TEST_INTEGER_FIVE = Integer.valueOf(5); + private static final String KEY_ONE = "key1"; + private static final String KEY_TWO = "key2"; + private static final String NON_INTEGER_VALUE = "not an int"; + private static final int DIMENSION_ONE = 1; + private static final int DIMENSION_TWO = 2; + // Helper function for conversion - private static final Function toInteger = value -> { + private static final Function ToInteger = value -> { if (value instanceof Number) { return ((Number) value).intValue(); } @@ -25,141 +39,154 @@ public class ConversionHelperTest { }; @Test - public void testConvertToSimpleType_Success() { - assertEquals(Integer.valueOf(5), ConversionHelper.convertToSimpleType(5, toInteger)); + public void testConvertToSimpleTypeSuccess() { + assertEquals(TEST_INTEGER_FIVE, ConversionHelper.convertToSimpleType(5, ToInteger)); } @Test - public void testConvertToSimpleType_NullConversionFunction() { - assertNull(ConversionHelper.convertToSimpleType("test", toInteger)); + public void testConvertToSimpleTypeNullConversionFunction() { + assertNull(ConversionHelper.convertToSimpleType("test", ToInteger)); } @Test - public void testConvertToMap_Success() { + public void testConvertToMapSuccess() { Map input = new HashMap<>(); - input.put("key1", 1); - input.put("key2", 2); - Map result = ConversionHelper.convertToMap(input, toInteger); - assertEquals(2, result.size()); - assertEquals(Integer.valueOf(1), result.get("key1")); - assertEquals(Integer.valueOf(2), result.get("key2")); + input.put(KEY_ONE, EXPECTED_INTEGER_ONE); + input.put(KEY_TWO, EXPECTED_INTEGER_TWO); + Map result = ConversionHelper.convertToMap(input, ToInteger); + assertEquals(EXPECTED_SIZE_TWO, result.size()); + assertEquals(EXPECTED_INTEGER_ONE, result.get(KEY_ONE)); + assertEquals(EXPECTED_INTEGER_TWO, result.get(KEY_TWO)); } @Test - public void testConvertToMap_SkipsUnconvertibleValues() { + public void testConvertToMapSkipsUnconvertibleValues() { Map input = new HashMap<>(); - input.put("key1", 1); - input.put("key2", "not an int"); - Map result = ConversionHelper.convertToMap(input, toInteger); - assertEquals(1, result.size()); - assertEquals(Integer.valueOf(1), result.get("key1")); - assertNull(result.get("key2")); + input.put(KEY_ONE, EXPECTED_INTEGER_ONE); + input.put(KEY_TWO, NON_INTEGER_VALUE); + Map result = ConversionHelper.convertToMap(input, ToInteger); + assertEquals(EXPECTED_SIZE_ONE, result.size()); + assertEquals(EXPECTED_INTEGER_ONE, result.get(KEY_ONE)); + assertNull(result.get(KEY_TWO)); } @Test - public void testConvertToMap_NullInput() { - assertNull(ConversionHelper.convertToMap(null, toInteger)); + public void testConvertToMapNullInput() { + assertNull(ConversionHelper.convertToMap(null, ToInteger)); } @Test - public void testConvertToArray_Success() { - List input = Arrays.asList(1, 2, 3); - List result = ConversionHelper.convertToArray(input, toInteger); - assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3)), result); + public void testConvertToArraySuccess() { + List input = Arrays.asList(EXPECTED_INTEGER_ONE, + EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE); + List result = ConversionHelper.convertToArray(input, ToInteger); + assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, + EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE), result); } @Test - public void testConvertToArray_SkipsUnconvertibleItems() { - List input = Arrays.asList(1, "not an int", 3); - List result = ConversionHelper.convertToArray(input, toInteger); - assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(3)), result); + public void testConvertToArraySkipsUnconvertibleItems() { + List input = Arrays.asList(EXPECTED_INTEGER_ONE, + NON_INTEGER_VALUE, EXPECTED_INTEGER_THREE); + List result = ConversionHelper.convertToArray(input, ToInteger); + assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_THREE), result); } @Test - public void testConvertToArray_NullInput() { - assertNull(ConversionHelper.convertToArray(null, toInteger)); + public void testConvertToArrayNullInput() { + assertNull(ConversionHelper.convertToArray(null, ToInteger)); } @Test - public void testConvertToArrayOfMap_Success() { + public void testConvertToArrayOfMapSuccess() { List input = new ArrayList<>(); Map map1 = new HashMap<>(); - map1.put("key1", 1); + map1.put(KEY_ONE, EXPECTED_INTEGER_ONE); input.add(map1); - List> result = ConversionHelper.convertToArrayOfMap(input, toInteger); - assertEquals(1, result.size()); - assertEquals(Integer.valueOf(1), result.get(0).get("key1")); + List> result = ConversionHelper.convertToArrayOfMap(input, ToInteger); + assertEquals(EXPECTED_SIZE_ONE, result.size()); + assertEquals(EXPECTED_INTEGER_ONE, result.get(0).get(KEY_ONE)); } @Test - public void testConvertToArrayOfMap_SkipsEmptyAndUnconvertibleMaps() { + public void testConvertToArrayOfMapSkipsEmptyAndUnconvertibleMaps() { List input = new ArrayList<>(); Map map1 = new HashMap<>(); - map1.put("key1", 1); + map1.put(KEY_ONE, EXPECTED_INTEGER_ONE); Map map2 = new HashMap<>(); - map2.put("key2", "not an int"); + map2.put(KEY_TWO, NON_INTEGER_VALUE); input.add(map1); input.add(map2); - List> result = ConversionHelper.convertToArrayOfMap(input, toInteger); - assertEquals(1, result.size()); - assertEquals(Integer.valueOf(1), result.get(0).get("key1")); + List> result = ConversionHelper.convertToArrayOfMap(input, ToInteger); + assertEquals(EXPECTED_SIZE_ONE, result.size()); + assertEquals(EXPECTED_INTEGER_ONE, result.get(0).get(KEY_ONE)); } @Test - public void testConvertToArrayOfMap_NullInput() { - assertNull(ConversionHelper.convertToArrayOfMap(null, toInteger)); + public void testConvertToArrayOfMapNullInput() { + assertNull(ConversionHelper.convertToArrayOfMap(null, ToInteger)); } @Test - public void testConvertToMapOfArray_Success() { + public void testConvertToMapOfArraySuccess() { Map input = new HashMap<>(); - input.put("key1", Arrays.asList(1, 2)); - Map> result = ConversionHelper.convertToMapOfArray(input, toInteger); - assertEquals(1, result.size()); - assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2)), result.get("key1")); + input.put(KEY_ONE, Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO)); + Map> result = ConversionHelper.convertToMapOfArray(input, ToInteger); + assertEquals(EXPECTED_SIZE_ONE, result.size()); + assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO), + result.get(KEY_ONE)); } @Test - public void testConvertToMapOfArray_SkipsEmptyAndUnconvertibleArrays() { + public void testConvertToMapOfArraySkipsEmptyAndUnconvertibleArrays() { Map input = new HashMap<>(); - input.put("key1", Arrays.asList(1, "not an int", 3)); - input.put("key2", Arrays.asList("not an int")); - Map> result = ConversionHelper.convertToMapOfArray(input, toInteger); - assertEquals(1, result.size()); - assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(3)), result.get("key1")); + input.put(KEY_ONE, Arrays.asList(EXPECTED_INTEGER_ONE, + NON_INTEGER_VALUE, EXPECTED_INTEGER_THREE)); + input.put(KEY_TWO, Arrays.asList(NON_INTEGER_VALUE)); + Map> result = ConversionHelper.convertToMapOfArray(input, ToInteger); + assertEquals(EXPECTED_SIZE_ONE, result.size()); + assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_THREE), + result.get(KEY_ONE)); } @Test - public void testConvertToMapOfArray_NullInput() { - assertNull(ConversionHelper.convertToMapOfArray(null, toInteger)); + public void testConvertToMapOfArrayNullInput() { + assertNull(ConversionHelper.convertToMapOfArray(null, ToInteger)); } @Test - public void testConvertToNDimensionalArray_1DArray() { - List input = Arrays.asList(1, 2, 3); - List result = ConversionHelper.convertToNDimensionalArray(input, toInteger, 1); - assertEquals(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3)), result); + public void testConvertToNDimensionalArray1DArray() { + List input = Arrays.asList(EXPECTED_INTEGER_ONE, + EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE); + List result = ConversionHelper.convertToNDimensionalArray(input, + ToInteger, DIMENSION_ONE); + assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, + EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE), result); } @Test - public void testConvertToNDimensionalArray_2DArray() { - List input = Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3, 4)); - List> result = ConversionHelper.convertToNDimensionalArray(input, toInteger, 2); - assertEquals(Arrays.asList(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2)), - Arrays.asList(Integer.valueOf(3), Integer.valueOf(4))), result); + public void testConvertToNDimensionalArray2DArray() { + List input = Arrays.asList( + Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO), + Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)); + List> result = ConversionHelper.convertToNDimensionalArray(input, + ToInteger, DIMENSION_TWO); + assertEquals(Arrays.asList(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO), + Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)), result); } @Test - public void testConvertToNDimensionalArray_SkipsEmptyAndUnconvertibleItems() { - List input = Arrays.asList(Arrays.asList(1, "not an int"), Arrays.asList(3, 4)); - List> result = ConversionHelper.convertToNDimensionalArray(input, toInteger, 2); - assertEquals( - Arrays.asList(Arrays.asList(Integer.valueOf(1)), Arrays.asList(Integer.valueOf(3), Integer.valueOf(4))), - result); + public void testConvertToNDimensionalArraySkipsEmptyAndUnconvertibleItems() { + List input = Arrays.asList(Arrays.asList(EXPECTED_INTEGER_ONE, NON_INTEGER_VALUE), + Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)); + List> result = ConversionHelper.convertToNDimensionalArray(input, + ToInteger, DIMENSION_TWO); + assertEquals(Arrays.asList(Arrays.asList(EXPECTED_INTEGER_ONE), + Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)), result); } @Test - public void testConvertToNDimensionalArray_NullInput() { - assertNull(ConversionHelper.convertToNDimensionalArray(null, toInteger, 2)); + public void testConvertToNDimensionalArrayNullInput() { + assertNull(ConversionHelper.convertToNDimensionalArray(null, ToInteger, DIMENSION_TWO)); } -} +} \ No newline at end of file diff --git a/src/test/java/apimatic/core/utilities/CoreHelperTest.java b/src/test/java/apimatic/core/utilities/CoreHelperTest.java index 8b5ee759..1f0647e6 100644 --- a/src/test/java/apimatic/core/utilities/CoreHelperTest.java +++ b/src/test/java/apimatic/core/utilities/CoreHelperTest.java @@ -124,6 +124,31 @@ public void testSerializeNullObject() throws JsonProcessingException { assertNull(CoreHelper.serialize(obj)); } + @Test + public void testTrySerializeValidObject() { + Vehicle model = new Vehicle.Builder("4").build(); + String expectedJson = "{\"NumberOfTyres\":\"4\"}"; + assertEquals(expectedJson, CoreHelper.trySerialize(model)); + } + + @Test + public void testTrySerializeInvalidObject() { + assertNull(CoreHelper.trySerialize(new Object())); + } + + @Test + public void testTryDeserializeValidJson() { + String json = "{\"NumberOfTyres\":\"4\"}"; + Vehicle expectedModel = new Vehicle.Builder("4").build(); + Vehicle actualModel = CoreHelper.tryDeserialize(json, Vehicle.class); + assertEquals(expectedModel.toString(), actualModel.toString()); + } + + @Test + public void testTryDeserializeInvalidJson() { + assertNull(CoreHelper.tryDeserialize("}{", Vehicle.class)); + } + @Test public void testIsWhiteSpace() { String whiteSpaceString = " "; diff --git a/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java b/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java index b15b750d..89eb21e7 100644 --- a/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java +++ b/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java @@ -335,7 +335,7 @@ public void testListToUnixTimeLong() { List dateTimeArray = Arrays.asList(dateTime1, dateTime2); // stub - List expected = Arrays.asList(DateTimeConstants.UNIXTIMESTAMP1, DateTimeConstants.UNITIMESTAMP2); + List expected = Arrays.asList(DateTimeConstants.UNIXTIMESTAMP1, DateTimeConstants.UNIXTIMESTAMP2); assertEquals(LocalDateTimeHelper.toUnixTimestampLong(dateTimeArray), expected); } @@ -361,7 +361,7 @@ public void testLocalDateTimeMapToUnixTimeLong() { // stub Map expected = new HashMap<>(); expected.put("dateTime1", DateTimeConstants.UNIXTIMESTAMP1); - expected.put("dateTime2", DateTimeConstants.UNITIMESTAMP2); + expected.put("dateTime2", DateTimeConstants.UNIXTIMESTAMP2); assertEquals(LocalDateTimeHelper.toUnixTimestampLong(dateTimeMap), expected); @@ -384,7 +384,7 @@ public void testListOfMapToUnixTimeLong() { // stub Map mapOfLong = new HashMap<>(); mapOfLong.put("dateTime1", DateTimeConstants.UNIXTIMESTAMP1); - mapOfLong.put("dateTime2", DateTimeConstants.UNITIMESTAMP2); + mapOfLong.put("dateTime2", DateTimeConstants.UNIXTIMESTAMP2); List> expected = Arrays.asList(mapOfLong); From 98e6d73c54f54bb0489b330652934cf6417e6783 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 16:15:55 +0500 Subject: [PATCH 06/14] fixed linting issues --- .../core/types/AdditionalProperties.java | 21 ++-- .../core/utilities/ConversionHelper.java | 31 +++-- .../apimatic/core/utilities/CoreHelper.java | 7 +- .../core/constants/DateTimeConstants.java | 2 +- ...rayOfNonPrimitiveAdditionalProperties.java | 10 +- ...dArrayOfPrimitiveAdditionalProperties.java | 9 +- ...MapOfNonPrimitiveAdditionalProperties.java | 6 +- ...yOfMapOfPrimitiveAdditionalProperties.java | 5 +- ...rayOfNonPrimitiveAdditionalProperties.java | 5 +- ...hArrayOfPrimitiveAdditionalProperties.java | 6 +- ...ModelWithDateTimeAdditionalProperties.java | 8 +- ...rayOfNonPrimitiveAdditionalProperties.java | 6 +- ...fArrayOfPrimitiveAdditionalProperties.java | 6 +- ...MapOfNonPrimitiveAdditionalProperties.java | 6 +- ...ithMapOfPrimitiveAdditionalProperties.java | 6 +- ...lWithNonPrimitiveAdditionalProperties.java | 6 +- ...odelWithPrimitiveAdditionalProperties.java | 6 +- ...ithTypeCombinatorAdditionalProperties.java | 6 +- .../core/type/AdditionalPropertiesTest.java | 8 +- .../core/utilities/ConversionHelperTest.java | 40 +++--- .../core/utilities/CoreHelperTest.java | 114 ++++++++++-------- 21 files changed, 183 insertions(+), 131 deletions(-) diff --git a/src/main/java/io/apimatic/core/types/AdditionalProperties.java b/src/main/java/io/apimatic/core/types/AdditionalProperties.java index 7c647884..72cdd347 100644 --- a/src/main/java/io/apimatic/core/types/AdditionalProperties.java +++ b/src/main/java/io/apimatic/core/types/AdditionalProperties.java @@ -19,7 +19,7 @@ public class AdditionalProperties { /** * Map to store additional properties. */ - private final Map additionalProperties = new LinkedHashMap<>(); + private final Map properties = new LinkedHashMap<>(); /** * Set to store model properties. @@ -35,10 +35,9 @@ public AdditionalProperties() { /** * Parameterized constructor. - * * @param classInstance The instance of the class with additional properties. */ - public AdditionalProperties(Class classInstance) { + public AdditionalProperties(final Class classInstance) { Method[] methods = classInstance.getMethods(); for (Method method : methods) { JsonGetter jsonGetter = method.getAnnotation(JsonGetter.class); @@ -50,16 +49,14 @@ public AdditionalProperties(Class classInstance) { /** * Gets the additional properties. - * * @return the map of additional properties. */ public Map getAdditionalProperties() { - return additionalProperties; + return properties; } /** * Sets an additional property. - * * @param key The key for the additional property. * @param value The value of the additional property. * @throws IllegalArgumentException if there is a conflict between the key and @@ -74,12 +71,11 @@ public void setAdditionalProperty(String key, T value) { throw new IllegalArgumentException( "Key '" + key + "' conflicts with a model property."); } - additionalProperties.put(key, value); + properties.put(key, value); } /** * Sets an additional property with an option to skip null values. - * * @param key The key for the additional property. * @param value The value of the additional property. * @param skipNullValue If true, null values will be skipped. @@ -95,21 +91,20 @@ public void setAdditionalProperty(String key, T value, boolean skipNullValue) { @Override public String toString() { - if (additionalProperties.isEmpty()) { + if (properties.isEmpty()) { return ""; } - return additionalProperties.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()) + return properties.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()) .collect(Collectors.joining(", ", ", ", "")); } /** * Gets an additional property by key. - * * @param key The key of the additional property to retrieve. * @return the value of the additional property associated with the given key, * or null if not found. */ public T getAdditionalProperty(String key) { - return additionalProperties.get(key); + return properties.get(key); } -} \ No newline at end of file +} diff --git a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java index a3fa3ab9..80cfa944 100644 --- a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java +++ b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java @@ -10,7 +10,7 @@ * A helper class for converting types of various structures supported in the * SDK. */ -public class ConversionHelper { +public final class ConversionHelper { /** * Private constructor to prevent instantiation of this utility class. @@ -45,7 +45,8 @@ public static S convertToSimpleType(Object value, Function conver * fails. */ @SuppressWarnings("unchecked") - public static Map convertToMap(Object value, Function conversionFunction) { + public static Map convertToMap(Object value, + Function conversionFunction) { if (value == null) { return null; } @@ -72,7 +73,8 @@ public static Map convertToMap(Object value, Function * conversion fails. */ @SuppressWarnings("unchecked") - public static List convertToArray(Object value, Function conversionFunction) { + public static List convertToArray(Object value, + Function conversionFunction) { try { List valueList = (List) value; return valueList.stream().map(item -> convertToSimpleType(item, conversionFunction)) @@ -94,7 +96,8 @@ public static List convertToArray(Object value, Function conve * conversion fails. */ @SuppressWarnings("unchecked") - public static List> convertToArrayOfMap(Object value, Function conversionFunction) { + public static List> convertToArrayOfMap(Object value, + Function conversionFunction) { try { List valueList = (List) value; return valueList.stream().map(item -> convertToMap(item, conversionFunction)) @@ -116,7 +119,8 @@ public static List> convertToArrayOfMap(Object value, Functio * fails. */ @SuppressWarnings("unchecked") - public static Map> convertToMapOfArray(Object value, Function conversionFunction) { + public static Map> convertToMapOfArray(Object value, + Function conversionFunction) { try { Map valueMap = (Map) value; return valueMap.entrySet().stream() @@ -143,10 +147,12 @@ public static Map> convertToMapOfArray(Object value, Functio * conversion fails. */ @SuppressWarnings("unchecked") - public static T convertToNDimensionalArray(Object value, Function conversionFunction, + public static T convertToNDimensionalArray(Object value, + Function conversionFunction, int dimensionCount) { try { - return (T) convertToNDimensionalArrayInternal(value, conversionFunction, dimensionCount); + return (T) convertToNDimensionalArrayInternal(value, + conversionFunction, dimensionCount); } catch (Exception e) { return null; } @@ -164,7 +170,8 @@ public static T convertToNDimensionalArray(Object value, Function List convertToNDimensionalArrayInternal(Object value, Function conversionFunction, + private static List convertToNDimensionalArrayInternal(Object value, + Function conversionFunction, int dimensionCount) { try { if (dimensionCount == 1) { @@ -172,12 +179,14 @@ private static List convertToNDimensionalArrayInternal(Object value, Func } else if (dimensionCount > 1) { List valueList = (List) value; return valueList.stream() - .map(item -> convertToNDimensionalArray(item, conversionFunction, dimensionCount - 1)) - .filter(item -> item != null && !((List) item).isEmpty()).collect(Collectors.toList()); + .map(item -> convertToNDimensionalArray(item, + conversionFunction, dimensionCount - 1)) + .filter(item -> item != null && !((List) item).isEmpty()) + .collect(Collectors.toList()); } } catch (Exception e) { // Ignoring exception to handle silently. } return null; } -} \ No newline at end of file +} diff --git a/src/main/java/io/apimatic/core/utilities/CoreHelper.java b/src/main/java/io/apimatic/core/utilities/CoreHelper.java index ecd199c2..90e06980 100644 --- a/src/main/java/io/apimatic/core/utilities/CoreHelper.java +++ b/src/main/java/io/apimatic/core/utilities/CoreHelper.java @@ -1298,10 +1298,11 @@ private static void objectToList(String objName, Object obj, processed, arraySerializationFormat); } } else { - JsonSerializer serializer = getCollectionSerializer(serializerAnnotation); + JsonSerializer serializer = getCollectionSerializer( + serializerAnnotation); String serializedValue = serialize(value, serializer); - value = serializedValue != null ? - deserializeAsObject(serializedValue.toString()) : value; + value = serializedValue != null + ? deserializeAsObject(serializedValue.toString()) : value; objectToList(objName, (Map) value, objectList, processed, arraySerializationFormat); } diff --git a/src/test/java/apimatic/core/constants/DateTimeConstants.java b/src/test/java/apimatic/core/constants/DateTimeConstants.java index 3acdf4ec..64425729 100644 --- a/src/test/java/apimatic/core/constants/DateTimeConstants.java +++ b/src/test/java/apimatic/core/constants/DateTimeConstants.java @@ -44,4 +44,4 @@ private DateTimeConstants() { /** Year value for 1997. */ public static final int YEAR1997 = 1997; -} \ No newline at end of file +} diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java index 8e920f44..89450190 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java @@ -14,8 +14,9 @@ public class ModelWith3dArrayOfNonPrimitiveAdditionalProperties { + private final static int ArrayDimension = 3; private String company; - protected AdditionalProperties>>> additionalProperties = + private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(this.getClass()); /** @@ -68,10 +69,10 @@ private Map>>> getAdditionalProperties() { @JsonAnySetter private void setAdditionalProperties(String name, Object value) { additionalProperties.setAdditionalProperty(name, - ConversionHelper.convertToNDimensionalArray(value, + ConversionHelper.convertToNDimensionalArray(value, x -> CoreHelper.tryDeserialize( CoreHelper.trySerialize(x), Vehicle.class), - 3), + ArrayDimension), true); } @@ -90,7 +91,8 @@ public List>> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWith3dArrayOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWith3dArrayOfNonPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java index 0ef1bc50..9bdd9818 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java @@ -13,8 +13,9 @@ public class ModelWith3dArrayOfPrimitiveAdditionalProperties { + private final static int ArrayDimension = 3; private String company; - protected AdditionalProperties>>> additionalProperties = + private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(this.getClass()); /** @@ -68,7 +69,8 @@ private Map>>> getAdditionalProperties() { private void setAdditionalProperties(String name, Object value) { additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToNDimensionalArray(value, - x -> ((String) x), 3), + x -> ((String) x), + ArrayDimension), true); } @@ -87,7 +89,8 @@ public List>> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWith3dArrayOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWith3dArrayOfPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java index fce0fd3b..a6a88fb8 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java @@ -13,8 +13,9 @@ import io.apimatic.core.utilities.CoreHelper; public class ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties { + private String company; - protected AdditionalProperties>> additionalProperties = + private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(this.getClass()); /** @@ -89,7 +90,8 @@ public List> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java index 0f698ba8..cb08cbba 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java @@ -14,7 +14,7 @@ public class ModelWithArrayOfMapOfPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties>> additionalProperties = + private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(this.getClass()); /** @@ -86,7 +86,8 @@ public List> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithArrayOfMapOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithArrayOfMapOfPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java index 735cb646..49623ce4 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java @@ -15,7 +15,7 @@ public class ModelWithArrayOfNonPrimitiveAdditionalProperties { private String company; - protected AdditionalProperties> additionalProperties = + private AdditionalProperties> additionalProperties = new AdditionalProperties>(this.getClass()); /** @@ -88,7 +88,8 @@ public List getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithArrayOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithArrayOfNonPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java index 019e8fbf..9a633526 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java @@ -12,8 +12,9 @@ import io.apimatic.core.utilities.ConversionHelper; public class ModelWithArrayOfPrimitiveAdditionalProperties { + private String company; - protected AdditionalProperties> additionalProperties = + private AdditionalProperties> additionalProperties = new AdditionalProperties>(this.getClass()); /** @@ -85,7 +86,8 @@ public List getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithArrayOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithArrayOfPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java index 121b575c..198967ed 100644 --- a/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java @@ -14,8 +14,9 @@ import io.apimatic.core.utilities.LocalDateTimeHelper; public class ModelWithDateTimeAdditionalProperties { + private String company; - protected AdditionalProperties additionalProperties = + private AdditionalProperties additionalProperties = new AdditionalProperties(this.getClass()); /** @@ -68,7 +69,7 @@ private Map getAdditionalProperties() { @JsonAnySetter private void setAdditionalProperties(String name, Object value) { additionalProperties.setAdditionalProperty(name, - ConversionHelper.convertToSimpleType(value, + ConversionHelper.convertToSimpleType(value, x -> LocalDateTimeHelper.fromRfc1123DateTime(String.valueOf(x))), true); } @@ -88,7 +89,8 @@ public LocalDateTime getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithDateTimeAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithDateTimeAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java index 26f55da4..df1fcee5 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java @@ -13,8 +13,9 @@ import io.apimatic.core.utilities.CoreHelper; public class ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties { + private String company; - protected AdditionalProperties>> additionalProperties = + private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(this.getClass()); /** @@ -87,7 +88,8 @@ public Map> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java index 8d1d270a..938a6b4a 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java @@ -12,8 +12,9 @@ import io.apimatic.core.utilities.ConversionHelper; public class ModelWithMapOfArrayOfPrimitiveAdditionalProperties { + private String company; - protected AdditionalProperties>> additionalProperties = + private AdditionalProperties>> additionalProperties = new AdditionalProperties>>(this.getClass()); /** @@ -85,7 +86,8 @@ public Map> getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithMapOfArrayOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithMapOfArrayOfPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java index 727b6279..a9eccbec 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java @@ -12,8 +12,9 @@ import io.apimatic.core.utilities.CoreHelper; public class ModelWithMapOfNonPrimitiveAdditionalProperties { + private String company; - protected AdditionalProperties> additionalProperties = + private AdditionalProperties> additionalProperties = new AdditionalProperties>(this.getClass()); /** @@ -86,7 +87,8 @@ public Map getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithMapOfNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithMapOfNonPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java index ab80a3e3..610b9925 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java @@ -11,8 +11,9 @@ import io.apimatic.core.utilities.ConversionHelper; public class ModelWithMapOfPrimitiveAdditionalProperties { + private String company; - protected AdditionalProperties> additionalProperties = + private AdditionalProperties> additionalProperties = new AdditionalProperties>(this.getClass()); /** @@ -84,7 +85,8 @@ public Map getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithMapOfPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithMapOfPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java index 617d2b19..4e6af500 100644 --- a/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java @@ -12,8 +12,9 @@ import io.apimatic.core.utilities.CoreHelper; public class ModelWithNonPrimitiveAdditionalProperties { + private String company; - protected AdditionalProperties additionalProperties = + private AdditionalProperties additionalProperties = new AdditionalProperties(this.getClass()); /** @@ -86,7 +87,8 @@ public Vehicle getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithNonPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithNonPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java index 1be15b08..c620a333 100644 --- a/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java @@ -11,8 +11,9 @@ import io.apimatic.core.utilities.ConversionHelper; public class ModelWithPrimitiveAdditionalProperties { + private String company; - protected AdditionalProperties additionalProperties = + private AdditionalProperties additionalProperties = new AdditionalProperties(this.getClass()); /** @@ -84,7 +85,8 @@ public String getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithPrimitiveAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithPrimitiveAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java index 50864a7f..6180bc64 100644 --- a/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java @@ -13,8 +13,9 @@ import io.apimatic.core.utilities.CoreHelper; public class ModelWithTypeCombinatorAdditionalProperties { + private String company; - protected AdditionalProperties additionalProperties = + private AdditionalProperties additionalProperties = new AdditionalProperties(this.getClass()); /** @@ -87,7 +88,8 @@ public SendScalarParamBody getAdditionalProperty(String key) { */ @Override public String toString() { - return "ModelWithTypeCombinatorAdditionalProperties [" + "company=" + company + additionalProperties + "]"; + return "ModelWithTypeCombinatorAdditionalProperties [" + + "company=" + company + additionalProperties + "]"; } /** diff --git a/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java b/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java index 657b2a40..091411c6 100644 --- a/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java +++ b/src/test/java/apimatic/core/type/AdditionalPropertiesTest.java @@ -297,18 +297,18 @@ public void test3DArrayAdditionalProperties() throws IOException { @Test public void testTypeCombinatorAdditionalProperties() throws IOException { - final Double Item1 = 100.11; - final Double Item2 = 133.00; + final Double item1 = 100.11; + final Double item2 = 133.00; // Case A ModelWithTypeCombinatorAdditionalProperties model = new ModelWithTypeCombinatorAdditionalProperties.Builder("APIMatic") .additionalProperty("name", SendScalarParamBody.fromPrecision( - Arrays.asList(Item1, Item2))) + Arrays.asList(item1, item2))) .build(); ModelWithTypeCombinatorAdditionalProperties actualModel = CoreHelper.deserialize( CoreHelper.serialize(model), ModelWithTypeCombinatorAdditionalProperties.class); - List expectedListValue = Arrays.asList(Item1, Item2); + List expectedListValue = Arrays.asList(item1, item2); actualModel.getAdditionalProperty("name").match(new SendScalarParamBody.Cases() { @Override diff --git a/src/test/java/apimatic/core/utilities/ConversionHelperTest.java b/src/test/java/apimatic/core/utilities/ConversionHelperTest.java index 86469bd8..c71c8397 100644 --- a/src/test/java/apimatic/core/utilities/ConversionHelperTest.java +++ b/src/test/java/apimatic/core/utilities/ConversionHelperTest.java @@ -31,7 +31,7 @@ public class ConversionHelperTest { private static final int DIMENSION_TWO = 2; // Helper function for conversion - private static final Function ToInteger = value -> { + private static final Function To_Integer = value -> { if (value instanceof Number) { return ((Number) value).intValue(); } @@ -40,12 +40,12 @@ public class ConversionHelperTest { @Test public void testConvertToSimpleTypeSuccess() { - assertEquals(TEST_INTEGER_FIVE, ConversionHelper.convertToSimpleType(5, ToInteger)); + assertEquals(TEST_INTEGER_FIVE, ConversionHelper.convertToSimpleType(TEST_INTEGER_FIVE, To_Integer)); } @Test public void testConvertToSimpleTypeNullConversionFunction() { - assertNull(ConversionHelper.convertToSimpleType("test", ToInteger)); + assertNull(ConversionHelper.convertToSimpleType("test", To_Integer)); } @Test @@ -53,7 +53,7 @@ public void testConvertToMapSuccess() { Map input = new HashMap<>(); input.put(KEY_ONE, EXPECTED_INTEGER_ONE); input.put(KEY_TWO, EXPECTED_INTEGER_TWO); - Map result = ConversionHelper.convertToMap(input, ToInteger); + Map result = ConversionHelper.convertToMap(input, To_Integer); assertEquals(EXPECTED_SIZE_TWO, result.size()); assertEquals(EXPECTED_INTEGER_ONE, result.get(KEY_ONE)); assertEquals(EXPECTED_INTEGER_TWO, result.get(KEY_TWO)); @@ -64,7 +64,7 @@ public void testConvertToMapSkipsUnconvertibleValues() { Map input = new HashMap<>(); input.put(KEY_ONE, EXPECTED_INTEGER_ONE); input.put(KEY_TWO, NON_INTEGER_VALUE); - Map result = ConversionHelper.convertToMap(input, ToInteger); + Map result = ConversionHelper.convertToMap(input, To_Integer); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(EXPECTED_INTEGER_ONE, result.get(KEY_ONE)); assertNull(result.get(KEY_TWO)); @@ -72,14 +72,14 @@ public void testConvertToMapSkipsUnconvertibleValues() { @Test public void testConvertToMapNullInput() { - assertNull(ConversionHelper.convertToMap(null, ToInteger)); + assertNull(ConversionHelper.convertToMap(null, To_Integer)); } @Test public void testConvertToArraySuccess() { List input = Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE); - List result = ConversionHelper.convertToArray(input, ToInteger); + List result = ConversionHelper.convertToArray(input, To_Integer); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE), result); } @@ -88,13 +88,13 @@ public void testConvertToArraySuccess() { public void testConvertToArraySkipsUnconvertibleItems() { List input = Arrays.asList(EXPECTED_INTEGER_ONE, NON_INTEGER_VALUE, EXPECTED_INTEGER_THREE); - List result = ConversionHelper.convertToArray(input, ToInteger); + List result = ConversionHelper.convertToArray(input, To_Integer); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_THREE), result); } @Test public void testConvertToArrayNullInput() { - assertNull(ConversionHelper.convertToArray(null, ToInteger)); + assertNull(ConversionHelper.convertToArray(null, To_Integer)); } @Test @@ -103,7 +103,7 @@ public void testConvertToArrayOfMapSuccess() { Map map1 = new HashMap<>(); map1.put(KEY_ONE, EXPECTED_INTEGER_ONE); input.add(map1); - List> result = ConversionHelper.convertToArrayOfMap(input, ToInteger); + List> result = ConversionHelper.convertToArrayOfMap(input, To_Integer); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(EXPECTED_INTEGER_ONE, result.get(0).get(KEY_ONE)); } @@ -117,21 +117,21 @@ public void testConvertToArrayOfMapSkipsEmptyAndUnconvertibleMaps() { map2.put(KEY_TWO, NON_INTEGER_VALUE); input.add(map1); input.add(map2); - List> result = ConversionHelper.convertToArrayOfMap(input, ToInteger); + List> result = ConversionHelper.convertToArrayOfMap(input, To_Integer); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(EXPECTED_INTEGER_ONE, result.get(0).get(KEY_ONE)); } @Test public void testConvertToArrayOfMapNullInput() { - assertNull(ConversionHelper.convertToArrayOfMap(null, ToInteger)); + assertNull(ConversionHelper.convertToArrayOfMap(null, To_Integer)); } @Test public void testConvertToMapOfArraySuccess() { Map input = new HashMap<>(); input.put(KEY_ONE, Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO)); - Map> result = ConversionHelper.convertToMapOfArray(input, ToInteger); + Map> result = ConversionHelper.convertToMapOfArray(input, To_Integer); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO), result.get(KEY_ONE)); @@ -143,7 +143,7 @@ public void testConvertToMapOfArraySkipsEmptyAndUnconvertibleArrays() { input.put(KEY_ONE, Arrays.asList(EXPECTED_INTEGER_ONE, NON_INTEGER_VALUE, EXPECTED_INTEGER_THREE)); input.put(KEY_TWO, Arrays.asList(NON_INTEGER_VALUE)); - Map> result = ConversionHelper.convertToMapOfArray(input, ToInteger); + Map> result = ConversionHelper.convertToMapOfArray(input, To_Integer); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_THREE), result.get(KEY_ONE)); @@ -151,7 +151,7 @@ public void testConvertToMapOfArraySkipsEmptyAndUnconvertibleArrays() { @Test public void testConvertToMapOfArrayNullInput() { - assertNull(ConversionHelper.convertToMapOfArray(null, ToInteger)); + assertNull(ConversionHelper.convertToMapOfArray(null, To_Integer)); } @Test @@ -159,7 +159,7 @@ public void testConvertToNDimensionalArray1DArray() { List input = Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE); List result = ConversionHelper.convertToNDimensionalArray(input, - ToInteger, DIMENSION_ONE); + To_Integer, DIMENSION_ONE); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE), result); } @@ -170,7 +170,7 @@ public void testConvertToNDimensionalArray2DArray() { Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO), Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)); List> result = ConversionHelper.convertToNDimensionalArray(input, - ToInteger, DIMENSION_TWO); + To_Integer, DIMENSION_TWO); assertEquals(Arrays.asList(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO), Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)), result); } @@ -180,13 +180,13 @@ public void testConvertToNDimensionalArraySkipsEmptyAndUnconvertibleItems() { List input = Arrays.asList(Arrays.asList(EXPECTED_INTEGER_ONE, NON_INTEGER_VALUE), Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)); List> result = ConversionHelper.convertToNDimensionalArray(input, - ToInteger, DIMENSION_TWO); + To_Integer, DIMENSION_TWO); assertEquals(Arrays.asList(Arrays.asList(EXPECTED_INTEGER_ONE), Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)), result); } @Test public void testConvertToNDimensionalArrayNullInput() { - assertNull(ConversionHelper.convertToNDimensionalArray(null, ToInteger, DIMENSION_TWO)); + assertNull(ConversionHelper.convertToNDimensionalArray(null, To_Integer, DIMENSION_TWO)); } -} \ No newline at end of file +} diff --git a/src/test/java/apimatic/core/utilities/CoreHelperTest.java b/src/test/java/apimatic/core/utilities/CoreHelperTest.java index 1f0647e6..92d1d3c9 100644 --- a/src/test/java/apimatic/core/utilities/CoreHelperTest.java +++ b/src/test/java/apimatic/core/utilities/CoreHelperTest.java @@ -721,11 +721,12 @@ public void testPrepareFormFieldsModel() { ArraySerializationFormat.INDEXED); assertEquals(actual, expected); } - + @SuppressWarnings("serial") @Test public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { - ModelWithPrimitiveAdditionalProperties simple = new ModelWithPrimitiveAdditionalProperties.Builder("APIMatic") + ModelWithPrimitiveAdditionalProperties simple = + new ModelWithPrimitiveAdditionalProperties.Builder("APIMatic") .additionalProperty("name", "value").build(); Map formParameters = new HashMap<>(); formParameters.put("body", simple); @@ -740,8 +741,9 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { assertEquals(expected, actual); // Array of primitive types - ModelWithArrayOfPrimitiveAdditionalProperties array = new ModelWithArrayOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList("value1", "value2")).build(); + ModelWithArrayOfPrimitiveAdditionalProperties array = + new ModelWithArrayOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList("value1", "value2")).build(); formParameters = new HashMap<>(); formParameters.put("body", array); @@ -760,8 +762,9 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { put("key2", "value2"); } }; - ModelWithMapOfPrimitiveAdditionalProperties map = new ModelWithMapOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", primitiveAdditionalProperties).build(); + ModelWithMapOfPrimitiveAdditionalProperties map = + new ModelWithMapOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", primitiveAdditionalProperties).build(); formParameters = new HashMap<>(); formParameters.put("body", map); @@ -774,8 +777,9 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { assertEquals(expected, actual); // Array of Map of primitive types - ModelWithArrayOfMapOfPrimitiveAdditionalProperties arrayOfMap = new ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList(primitiveAdditionalProperties)).build(); + ModelWithArrayOfMapOfPrimitiveAdditionalProperties arrayOfMap = + new ModelWithArrayOfMapOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList(primitiveAdditionalProperties)).build(); formParameters = new HashMap<>(); formParameters.put("body", arrayOfMap); @@ -794,8 +798,9 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { put("key2", Arrays.asList("value1", "value2")); } }; - ModelWithMapOfArrayOfPrimitiveAdditionalProperties mapOfArray = new ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", arrayAdditionalProperties).build(); + ModelWithMapOfArrayOfPrimitiveAdditionalProperties mapOfArray = + new ModelWithMapOfArrayOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", arrayAdditionalProperties).build(); formParameters = new HashMap<>(); formParameters.put("body", mapOfArray); @@ -810,9 +815,11 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { assertEquals(expected, actual); // 3D Array of primitive types - ModelWith3dArrayOfPrimitiveAdditionalProperties array3D = new ModelWith3dArrayOfPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList(Arrays.asList(Arrays.asList("value1", "value2")))) - .build(); + ModelWith3dArrayOfPrimitiveAdditionalProperties array3D = + new ModelWith3dArrayOfPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList(Arrays.asList( + Arrays.asList("value1", "value2")))) + .build(); formParameters = new HashMap<>(); formParameters.put("body", array3D); @@ -824,18 +831,20 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - ModelWithDateTimeAdditionalProperties dateTimeModel = new ModelWithDateTimeAdditionalProperties.Builder( - "APIMatic") - .additionalProperty("name", - LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10)) - .build(); + ModelWithDateTimeAdditionalProperties dateTimeModel = + new ModelWithDateTimeAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", + LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, + DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10)) + .build(); formParameters = new HashMap<>(); formParameters.put("body", dateTimeModel); expected = new ArrayList>(); expected.add(new SimpleEntry("body[company]", "APIMatic")); - expected.add(new SimpleEntry("body[name]", "Thu, 13 Jul 2000 06:10:00 GMT")); + expected.add(new SimpleEntry("body[name]", + "Thu, 13 Jul 2000 06:10:00 GMT")); actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); @@ -844,8 +853,9 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { @SuppressWarnings("serial") @Test public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { - ModelWithNonPrimitiveAdditionalProperties simpleModel = new ModelWithNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", new Vehicle.Builder("4").build()).build(); + ModelWithNonPrimitiveAdditionalProperties simpleModel = + new ModelWithNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", new Vehicle.Builder("4").build()).build(); Map formParameters = new HashMap<>(); formParameters.put("body", simpleModel); @@ -859,11 +869,11 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { assertEquals(expected, actual); // Array of non primitive types - ModelWithArrayOfNonPrimitiveAdditionalProperties array = new ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic") - .additionalProperty("name", - Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build())) - .build(); + ModelWithArrayOfNonPrimitiveAdditionalProperties array = + new ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name",Arrays.asList( + new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build())) + .build(); formParameters = new HashMap<>(); formParameters.put("body", array); @@ -882,8 +892,9 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { put("key2", new Vehicle.Builder("5").build()); } }; - ModelWithMapOfNonPrimitiveAdditionalProperties map = new ModelWithMapOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", nonPrimitiveAdditionalProperties).build(); + ModelWithMapOfNonPrimitiveAdditionalProperties map = + new ModelWithMapOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", nonPrimitiveAdditionalProperties).build(); formParameters = new HashMap<>(); formParameters.put("body", map); @@ -896,8 +907,10 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { assertEquals(expected, actual); // Array of Map of non primitive types - ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties arrayOfMap = new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", Arrays.asList(nonPrimitiveAdditionalProperties)).build(); + ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties arrayOfMap = + new ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList(nonPrimitiveAdditionalProperties)) + .build(); formParameters = new HashMap<>(); formParameters.put("body", arrayOfMap); @@ -910,14 +923,16 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { assertEquals(expected, actual); // Map of Array of non primitive types - Map> arrayNonPrimitiveAdditionalProperties = new HashMap>() { + Map> arrayNonPrimitiveAdditionalProperties = + new HashMap>() { { put("key1", Arrays.asList(new Vehicle.Builder("4").build())); put("key2", Arrays.asList(new Vehicle.Builder("5").build())); } }; - ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties mapOfArray = new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", arrayNonPrimitiveAdditionalProperties).build(); + ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties mapOfArray = + new ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", arrayNonPrimitiveAdditionalProperties).build(); formParameters = new HashMap<>(); formParameters.put("body", mapOfArray); @@ -930,12 +945,11 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { assertEquals(expected, actual); // 3D Array of non primitive types - ModelWith3dArrayOfNonPrimitiveAdditionalProperties array3D = new ModelWith3dArrayOfNonPrimitiveAdditionalProperties.Builder( - "APIMatic").additionalProperty( - "name", - Arrays.asList(Arrays.asList( - Arrays.asList(new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build())))) - .build(); + ModelWith3dArrayOfNonPrimitiveAdditionalProperties array3D = + new ModelWith3dArrayOfNonPrimitiveAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", Arrays.asList(Arrays.asList(Arrays.asList( + new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build())))) + .build(); formParameters = new HashMap<>(); formParameters.put("body", array3D); @@ -948,23 +962,29 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { assertEquals(expected, actual); // oneOf/anyOf cases - ModelWithTypeCombinatorAdditionalProperties typeCombinatorAModel = new ModelWithTypeCombinatorAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", SendScalarParamBody.fromPrecision(Arrays.asList(100.11, 133.00))) - .build(); + final Double item1 = 100.11; + final Double item2 = 133.0; + ModelWithTypeCombinatorAdditionalProperties typeCombinatorAModel = + new ModelWithTypeCombinatorAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", SendScalarParamBody.fromPrecision( + Arrays.asList(item1, item2))) + .build(); formParameters = new HashMap<>(); formParameters.put("body", typeCombinatorAModel); expected = new ArrayList>(); expected.add(new SimpleEntry("body[company]", "APIMatic")); - expected.add(new SimpleEntry("body[name][0]", 100.11)); - expected.add(new SimpleEntry("body[name][1]", 133.0)); + expected.add(new SimpleEntry("body[name][0]", item1)); + expected.add(new SimpleEntry("body[name][1]", item2)); actual = CoreHelper.prepareFormFields(formParameters, ArraySerializationFormat.INDEXED); actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); - ModelWithTypeCombinatorAdditionalProperties typeCombinatorBModel = new ModelWithTypeCombinatorAdditionalProperties.Builder( - "APIMatic").additionalProperty("name", SendScalarParamBody.fromMString("value")).build(); + ModelWithTypeCombinatorAdditionalProperties typeCombinatorBModel = + new ModelWithTypeCombinatorAdditionalProperties.Builder("APIMatic") + .additionalProperty("name", SendScalarParamBody.fromMString("value")) + .build(); formParameters = new HashMap<>(); formParameters.put("body", typeCombinatorBModel); From 5935ff8d18fe13f103160b8283a59deeb905329c Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 16:18:37 +0500 Subject: [PATCH 07/14] refactors code for linting issues --- .../ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java | 4 ++-- .../ModelWith3dArrayOfPrimitiveAdditionalProperties.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java index 89450190..93e860b3 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java @@ -14,7 +14,7 @@ public class ModelWith3dArrayOfNonPrimitiveAdditionalProperties { - private final static int ArrayDimension = 3; + private final static int Array_Dimension = 3; private String company; private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(this.getClass()); @@ -72,7 +72,7 @@ private void setAdditionalProperties(String name, Object value) { ConversionHelper.convertToNDimensionalArray(value, x -> CoreHelper.tryDeserialize( CoreHelper.trySerialize(x), Vehicle.class), - ArrayDimension), + Array_Dimension), true); } diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java index 9bdd9818..09b1445a 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java @@ -13,7 +13,7 @@ public class ModelWith3dArrayOfPrimitiveAdditionalProperties { - private final static int ArrayDimension = 3; + private final static int Array_Dimension = 3; private String company; private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(this.getClass()); @@ -70,7 +70,7 @@ private void setAdditionalProperties(String name, Object value) { additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToNDimensionalArray(value, x -> ((String) x), - ArrayDimension), + Array_Dimension), true); } From 6141f330b485a32b506f3dc0df2605f519ac19e2 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 16:21:04 +0500 Subject: [PATCH 08/14] fixed name of constants --- .../ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java | 4 ++-- .../ModelWith3dArrayOfPrimitiveAdditionalProperties.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java index 93e860b3..473bbead 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java @@ -14,7 +14,7 @@ public class ModelWith3dArrayOfNonPrimitiveAdditionalProperties { - private final static int Array_Dimension = 3; + private final static int ARRAY_DIMENSION = 3; private String company; private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(this.getClass()); @@ -72,7 +72,7 @@ private void setAdditionalProperties(String name, Object value) { ConversionHelper.convertToNDimensionalArray(value, x -> CoreHelper.tryDeserialize( CoreHelper.trySerialize(x), Vehicle.class), - Array_Dimension), + ARRAY_DIMENSION), true); } diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java index 09b1445a..2fd62b2b 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java @@ -13,7 +13,7 @@ public class ModelWith3dArrayOfPrimitiveAdditionalProperties { - private final static int Array_Dimension = 3; + private final static int ARRAY_DIMENSION = 3; private String company; private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(this.getClass()); @@ -70,7 +70,7 @@ private void setAdditionalProperties(String name, Object value) { additionalProperties.setAdditionalProperty(name, ConversionHelper.convertToNDimensionalArray(value, x -> ((String) x), - Array_Dimension), + ARRAY_DIMENSION), true); } From e9ce9df3ce73a311aaef5b27467d067a2d69b804 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 16:26:41 +0500 Subject: [PATCH 09/14] fixes the toBuilder method --- src/main/java/io/apimatic/core/utilities/CoreHelper.java | 2 +- .../ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java | 3 ++- .../ModelWith3dArrayOfPrimitiveAdditionalProperties.java | 3 ++- .../ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java | 1 + .../ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java | 1 + .../ModelWithArrayOfNonPrimitiveAdditionalProperties.java | 1 + .../models/ModelWithArrayOfPrimitiveAdditionalProperties.java | 1 + .../core/models/ModelWithDateTimeAdditionalProperties.java | 1 + .../ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java | 1 + .../ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java | 1 + .../models/ModelWithMapOfNonPrimitiveAdditionalProperties.java | 1 + .../models/ModelWithMapOfPrimitiveAdditionalProperties.java | 1 + .../core/models/ModelWithNonPrimitiveAdditionalProperties.java | 1 + .../core/models/ModelWithPrimitiveAdditionalProperties.java | 1 + .../models/ModelWithTypeCombinatorAdditionalProperties.java | 1 + 15 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/apimatic/core/utilities/CoreHelper.java b/src/main/java/io/apimatic/core/utilities/CoreHelper.java index 90e06980..328a9d76 100644 --- a/src/main/java/io/apimatic/core/utilities/CoreHelper.java +++ b/src/main/java/io/apimatic/core/utilities/CoreHelper.java @@ -1302,7 +1302,7 @@ private static void objectToList(String objName, Object obj, serializerAnnotation); String serializedValue = serialize(value, serializer); value = serializedValue != null - ? deserializeAsObject(serializedValue.toString()) : value; + ? deserializeAsObject(serializedValue) : value; objectToList(objName, (Map) value, objectList, processed, arraySerializationFormat); } diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java index 473bbead..80b5f921 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java @@ -14,7 +14,7 @@ public class ModelWith3dArrayOfNonPrimitiveAdditionalProperties { - private final static int ARRAY_DIMENSION = 3; + private static final int ARRAY_DIMENSION = 3; private String company; private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(this.getClass()); @@ -102,6 +102,7 @@ public String toString() { */ public Builder toModelWith3dArrayOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java index 2fd62b2b..cca460c0 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java @@ -13,7 +13,7 @@ public class ModelWith3dArrayOfPrimitiveAdditionalProperties { - private final static int ARRAY_DIMENSION = 3; + private static final int ARRAY_DIMENSION = 3; private String company; private AdditionalProperties>>> additionalProperties = new AdditionalProperties>>>(this.getClass()); @@ -100,6 +100,7 @@ public String toString() { */ public Builder toModelWith3dArrayOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java index a6a88fb8..a2dbda2c 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfNonPrimitiveAdditionalProperties.java @@ -101,6 +101,7 @@ public String toString() { */ public Builder toModelWithArrayOfMapOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java index cb08cbba..58883b9c 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfMapOfPrimitiveAdditionalProperties.java @@ -97,6 +97,7 @@ public String toString() { */ public Builder toModelWithArrayOfMapOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java index 49623ce4..5b4b1c64 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfNonPrimitiveAdditionalProperties.java @@ -99,6 +99,7 @@ public String toString() { */ public Builder toModelWithArrayOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java index 9a633526..f6b33952 100644 --- a/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithArrayOfPrimitiveAdditionalProperties.java @@ -97,6 +97,7 @@ public String toString() { */ public Builder toModelWithArrayOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java index 198967ed..319589ea 100644 --- a/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithDateTimeAdditionalProperties.java @@ -100,6 +100,7 @@ public String toString() { */ public Builder toModelWithDateTimeAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java index df1fcee5..3f647802 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfNonPrimitiveAdditionalProperties.java @@ -99,6 +99,7 @@ public String toString() { */ public Builder toModelWithMapOfArrayOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java index 938a6b4a..db68ec3e 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java @@ -97,6 +97,7 @@ public String toString() { */ public Builder toModelWithMapOfArrayOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java index a9eccbec..ff664371 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfNonPrimitiveAdditionalProperties.java @@ -98,6 +98,7 @@ public String toString() { */ public Builder toModelWithMapOfNonPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java index 610b9925..02f2b41f 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfPrimitiveAdditionalProperties.java @@ -96,6 +96,7 @@ public String toString() { */ public Builder toModelWithMapOfPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java index 4e6af500..121b9602 100644 --- a/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java @@ -98,6 +98,7 @@ public String toString() { */ public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java index c620a333..81c20750 100644 --- a/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithPrimitiveAdditionalProperties.java @@ -96,6 +96,7 @@ public String toString() { */ public Builder toModelWithPrimitiveAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } diff --git a/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java index 6180bc64..252502bf 100644 --- a/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java @@ -99,6 +99,7 @@ public String toString() { */ public Builder toModelWithTypeCombinatorAdditionalPropertiesBuilder() { Builder builder = new Builder(company); + builder.additionalProperties = additionalProperties; return builder; } From 10e5b5107249d397f098cd4313f7d5733901f159 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 16:49:31 +0500 Subject: [PATCH 10/14] fixed linting issues --- .../core/types/AdditionalProperties.java | 3 + .../core/utilities/ConversionHelper.java | 20 ++ ...dArrayOfPrimitiveAdditionalProperties.java | 2 +- ...fArrayOfPrimitiveAdditionalProperties.java | 2 +- ...lWithNonPrimitiveAdditionalProperties.java | 3 +- ...ithTypeCombinatorAdditionalProperties.java | 5 +- .../core/utilities/ConversionHelperTest.java | 39 ++-- .../core/utilities/CoreHelperTest.java | 4 +- .../utilities/LocalDateTimeHelperTest.java | 208 +++++++++++------- 9 files changed, 178 insertions(+), 108 deletions(-) diff --git a/src/main/java/io/apimatic/core/types/AdditionalProperties.java b/src/main/java/io/apimatic/core/types/AdditionalProperties.java index 72cdd347..b1d77592 100644 --- a/src/main/java/io/apimatic/core/types/AdditionalProperties.java +++ b/src/main/java/io/apimatic/core/types/AdditionalProperties.java @@ -71,6 +71,7 @@ public void setAdditionalProperty(String key, T value) { throw new IllegalArgumentException( "Key '" + key + "' conflicts with a model property."); } + properties.put(key, value); } @@ -86,6 +87,7 @@ public void setAdditionalProperty(String key, T value, boolean skipNullValue) { if (skipNullValue && value == null) { return; } + setAdditionalProperty(key, value); } @@ -94,6 +96,7 @@ public String toString() { if (properties.isEmpty()) { return ""; } + return properties.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()) .collect(Collectors.joining(", ", ", ", "")); } diff --git a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java index 80cfa944..83209932 100644 --- a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java +++ b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java @@ -75,6 +75,10 @@ public static Map convertToMap(Object value, @SuppressWarnings("unchecked") public static List convertToArray(Object value, Function conversionFunction) { + if (value == null) { + return null; + } + try { List valueList = (List) value; return valueList.stream().map(item -> convertToSimpleType(item, conversionFunction)) @@ -98,6 +102,10 @@ public static List convertToArray(Object value, @SuppressWarnings("unchecked") public static List> convertToArrayOfMap(Object value, Function conversionFunction) { + if (value == null) { + return null; + } + try { List valueList = (List) value; return valueList.stream().map(item -> convertToMap(item, conversionFunction)) @@ -121,6 +129,10 @@ public static List> convertToArrayOfMap(Object value, @SuppressWarnings("unchecked") public static Map> convertToMapOfArray(Object value, Function conversionFunction) { + if (value == null) { + return null; + } + try { Map valueMap = (Map) value; return valueMap.entrySet().stream() @@ -150,6 +162,10 @@ public static Map> convertToMapOfArray(Object value, public static T convertToNDimensionalArray(Object value, Function conversionFunction, int dimensionCount) { + if (value == null) { + return null; + } + try { return (T) convertToNDimensionalArrayInternal(value, conversionFunction, dimensionCount); @@ -173,6 +189,10 @@ public static T convertToNDimensionalArray(Object value, private static List convertToNDimensionalArrayInternal(Object value, Function conversionFunction, int dimensionCount) { + if (value == null) { + return null; + } + try { if (dimensionCount == 1) { return convertToArray(value, conversionFunction); diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java index cca460c0..46a819cb 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfPrimitiveAdditionalProperties.java @@ -153,7 +153,7 @@ public Builder additionalProperty(String name, List>> value) { * @return {@link ChildNumberType} */ public ModelWith3dArrayOfPrimitiveAdditionalProperties build() { - ModelWith3dArrayOfPrimitiveAdditionalProperties obj = + ModelWith3dArrayOfPrimitiveAdditionalProperties obj = new ModelWith3dArrayOfPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; diff --git a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java index db68ec3e..2f9b682b 100644 --- a/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithMapOfArrayOfPrimitiveAdditionalProperties.java @@ -119,7 +119,7 @@ public Builder() { * Initialization constructor. * @param company String value for company. */ - public Builder(String company) { + public Builder(final String company) { this.company = company; } diff --git a/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java index 121b9602..e34a428b 100644 --- a/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithNonPrimitiveAdditionalProperties.java @@ -151,7 +151,8 @@ public Builder additionalProperty(String name, Vehicle value) { * @return {@link ModelWithNonPrimitiveAdditionalProperties} */ public ModelWithNonPrimitiveAdditionalProperties build() { - ModelWithNonPrimitiveAdditionalProperties obj = new ModelWithNonPrimitiveAdditionalProperties(company); + ModelWithNonPrimitiveAdditionalProperties obj = + new ModelWithNonPrimitiveAdditionalProperties(company); obj.additionalProperties = this.additionalProperties; return obj; } diff --git a/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java index 252502bf..06134c97 100644 --- a/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWithTypeCombinatorAdditionalProperties.java @@ -28,7 +28,7 @@ public ModelWithTypeCombinatorAdditionalProperties() { * Initialization constructor. * @param company String value for company. */ - public ModelWithTypeCombinatorAdditionalProperties(String company) { + public ModelWithTypeCombinatorAdditionalProperties(final String company) { this.company = company; } @@ -147,7 +147,8 @@ public Builder additionalProperty(String name, SendScalarParamBody value) { } /** - * Builds a new {@link ModelWithTypeCombinatorAdditionalProperties} object using the set fields. + * Builds a new {@link ModelWithTypeCombinatorAdditionalProperties} object + * using the set fields. * @return {@link ModelWithTypeCombinatorAdditionalProperties} */ public ModelWithTypeCombinatorAdditionalProperties build() { diff --git a/src/test/java/apimatic/core/utilities/ConversionHelperTest.java b/src/test/java/apimatic/core/utilities/ConversionHelperTest.java index c71c8397..e3c641fb 100644 --- a/src/test/java/apimatic/core/utilities/ConversionHelperTest.java +++ b/src/test/java/apimatic/core/utilities/ConversionHelperTest.java @@ -31,7 +31,7 @@ public class ConversionHelperTest { private static final int DIMENSION_TWO = 2; // Helper function for conversion - private static final Function To_Integer = value -> { + private static final Function TO_INTEGER = value -> { if (value instanceof Number) { return ((Number) value).intValue(); } @@ -40,12 +40,13 @@ public class ConversionHelperTest { @Test public void testConvertToSimpleTypeSuccess() { - assertEquals(TEST_INTEGER_FIVE, ConversionHelper.convertToSimpleType(TEST_INTEGER_FIVE, To_Integer)); + assertEquals(TEST_INTEGER_FIVE, ConversionHelper.convertToSimpleType( + TEST_INTEGER_FIVE, TO_INTEGER)); } @Test public void testConvertToSimpleTypeNullConversionFunction() { - assertNull(ConversionHelper.convertToSimpleType("test", To_Integer)); + assertNull(ConversionHelper.convertToSimpleType("test", TO_INTEGER)); } @Test @@ -53,7 +54,7 @@ public void testConvertToMapSuccess() { Map input = new HashMap<>(); input.put(KEY_ONE, EXPECTED_INTEGER_ONE); input.put(KEY_TWO, EXPECTED_INTEGER_TWO); - Map result = ConversionHelper.convertToMap(input, To_Integer); + Map result = ConversionHelper.convertToMap(input, TO_INTEGER); assertEquals(EXPECTED_SIZE_TWO, result.size()); assertEquals(EXPECTED_INTEGER_ONE, result.get(KEY_ONE)); assertEquals(EXPECTED_INTEGER_TWO, result.get(KEY_TWO)); @@ -64,7 +65,7 @@ public void testConvertToMapSkipsUnconvertibleValues() { Map input = new HashMap<>(); input.put(KEY_ONE, EXPECTED_INTEGER_ONE); input.put(KEY_TWO, NON_INTEGER_VALUE); - Map result = ConversionHelper.convertToMap(input, To_Integer); + Map result = ConversionHelper.convertToMap(input, TO_INTEGER); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(EXPECTED_INTEGER_ONE, result.get(KEY_ONE)); assertNull(result.get(KEY_TWO)); @@ -72,14 +73,14 @@ public void testConvertToMapSkipsUnconvertibleValues() { @Test public void testConvertToMapNullInput() { - assertNull(ConversionHelper.convertToMap(null, To_Integer)); + assertNull(ConversionHelper.convertToMap(null, TO_INTEGER)); } @Test public void testConvertToArraySuccess() { List input = Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE); - List result = ConversionHelper.convertToArray(input, To_Integer); + List result = ConversionHelper.convertToArray(input, TO_INTEGER); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE), result); } @@ -88,13 +89,13 @@ public void testConvertToArraySuccess() { public void testConvertToArraySkipsUnconvertibleItems() { List input = Arrays.asList(EXPECTED_INTEGER_ONE, NON_INTEGER_VALUE, EXPECTED_INTEGER_THREE); - List result = ConversionHelper.convertToArray(input, To_Integer); + List result = ConversionHelper.convertToArray(input, TO_INTEGER); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_THREE), result); } @Test public void testConvertToArrayNullInput() { - assertNull(ConversionHelper.convertToArray(null, To_Integer)); + assertNull(ConversionHelper.convertToArray(null, TO_INTEGER)); } @Test @@ -103,7 +104,7 @@ public void testConvertToArrayOfMapSuccess() { Map map1 = new HashMap<>(); map1.put(KEY_ONE, EXPECTED_INTEGER_ONE); input.add(map1); - List> result = ConversionHelper.convertToArrayOfMap(input, To_Integer); + List> result = ConversionHelper.convertToArrayOfMap(input, TO_INTEGER); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(EXPECTED_INTEGER_ONE, result.get(0).get(KEY_ONE)); } @@ -117,21 +118,21 @@ public void testConvertToArrayOfMapSkipsEmptyAndUnconvertibleMaps() { map2.put(KEY_TWO, NON_INTEGER_VALUE); input.add(map1); input.add(map2); - List> result = ConversionHelper.convertToArrayOfMap(input, To_Integer); + List> result = ConversionHelper.convertToArrayOfMap(input, TO_INTEGER); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(EXPECTED_INTEGER_ONE, result.get(0).get(KEY_ONE)); } @Test public void testConvertToArrayOfMapNullInput() { - assertNull(ConversionHelper.convertToArrayOfMap(null, To_Integer)); + assertNull(ConversionHelper.convertToArrayOfMap(null, TO_INTEGER)); } @Test public void testConvertToMapOfArraySuccess() { Map input = new HashMap<>(); input.put(KEY_ONE, Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO)); - Map> result = ConversionHelper.convertToMapOfArray(input, To_Integer); + Map> result = ConversionHelper.convertToMapOfArray(input, TO_INTEGER); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO), result.get(KEY_ONE)); @@ -143,7 +144,7 @@ public void testConvertToMapOfArraySkipsEmptyAndUnconvertibleArrays() { input.put(KEY_ONE, Arrays.asList(EXPECTED_INTEGER_ONE, NON_INTEGER_VALUE, EXPECTED_INTEGER_THREE)); input.put(KEY_TWO, Arrays.asList(NON_INTEGER_VALUE)); - Map> result = ConversionHelper.convertToMapOfArray(input, To_Integer); + Map> result = ConversionHelper.convertToMapOfArray(input, TO_INTEGER); assertEquals(EXPECTED_SIZE_ONE, result.size()); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_THREE), result.get(KEY_ONE)); @@ -151,7 +152,7 @@ public void testConvertToMapOfArraySkipsEmptyAndUnconvertibleArrays() { @Test public void testConvertToMapOfArrayNullInput() { - assertNull(ConversionHelper.convertToMapOfArray(null, To_Integer)); + assertNull(ConversionHelper.convertToMapOfArray(null, TO_INTEGER)); } @Test @@ -159,7 +160,7 @@ public void testConvertToNDimensionalArray1DArray() { List input = Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE); List result = ConversionHelper.convertToNDimensionalArray(input, - To_Integer, DIMENSION_ONE); + TO_INTEGER, DIMENSION_ONE); assertEquals(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO, EXPECTED_INTEGER_THREE), result); } @@ -170,7 +171,7 @@ public void testConvertToNDimensionalArray2DArray() { Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO), Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)); List> result = ConversionHelper.convertToNDimensionalArray(input, - To_Integer, DIMENSION_TWO); + TO_INTEGER, DIMENSION_TWO); assertEquals(Arrays.asList(Arrays.asList(EXPECTED_INTEGER_ONE, EXPECTED_INTEGER_TWO), Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)), result); } @@ -180,13 +181,13 @@ public void testConvertToNDimensionalArraySkipsEmptyAndUnconvertibleItems() { List input = Arrays.asList(Arrays.asList(EXPECTED_INTEGER_ONE, NON_INTEGER_VALUE), Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)); List> result = ConversionHelper.convertToNDimensionalArray(input, - To_Integer, DIMENSION_TWO); + TO_INTEGER, DIMENSION_TWO); assertEquals(Arrays.asList(Arrays.asList(EXPECTED_INTEGER_ONE), Arrays.asList(EXPECTED_INTEGER_THREE, EXPECTED_INTEGER_FOUR)), result); } @Test public void testConvertToNDimensionalArrayNullInput() { - assertNull(ConversionHelper.convertToNDimensionalArray(null, To_Integer, DIMENSION_TWO)); + assertNull(ConversionHelper.convertToNDimensionalArray(null, TO_INTEGER, DIMENSION_TWO)); } } diff --git a/src/test/java/apimatic/core/utilities/CoreHelperTest.java b/src/test/java/apimatic/core/utilities/CoreHelperTest.java index 92d1d3c9..09e20d88 100644 --- a/src/test/java/apimatic/core/utilities/CoreHelperTest.java +++ b/src/test/java/apimatic/core/utilities/CoreHelperTest.java @@ -849,7 +849,7 @@ public void testPrepareFormFieldsPrimitiveAdditionalPropertiesModel() { actual.sort(Comparator.comparing(SimpleEntry::getKey)); assertEquals(expected, actual); } - + @SuppressWarnings("serial") @Test public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { @@ -871,7 +871,7 @@ public void testPrepareFormFieldsNonPrimitiveAdditionalPropertiesModel() { // Array of non primitive types ModelWithArrayOfNonPrimitiveAdditionalProperties array = new ModelWithArrayOfNonPrimitiveAdditionalProperties.Builder("APIMatic") - .additionalProperty("name",Arrays.asList( + .additionalProperty("name", Arrays.asList( new Vehicle.Builder("4").build(), new Vehicle.Builder("5").build())) .build(); formParameters = new HashMap<>(); diff --git a/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java b/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java index 89eb21e7..46c45260 100644 --- a/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java +++ b/src/test/java/apimatic/core/utilities/LocalDateTimeHelperTest.java @@ -24,8 +24,9 @@ public class LocalDateTimeHelperTest { @Test public void testLocalDateTimeToRfc1123() { - LocalDateTime dateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); // stub String expected = "Sun, 13 Jul 1997 06:10:00 GMT"; @@ -41,14 +42,17 @@ public void testLocalDateTimeNullToRfc1123() { @Test public void testLocalDateTimeListToRfc1123() { - LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); List dateTimeArray = Arrays.asList(dateTime1, dateTime2); // stub - List expected = Arrays.asList("Thu, 13 Jul 2000 06:10:00 GMT", "Sat, 25 Jul 2020 06:10:00 GMT"); + List expected = Arrays.asList("Thu, 13 Jul 2000 06:10:00 GMT", + "Sat, 25 Jul 2020 06:10:00 GMT"); assertEquals(LocalDateTimeHelper.toRfc1123DateTime(dateTimeArray), expected); } @@ -61,10 +65,12 @@ public void testLocalDateTimeNullListToRfc1123() { @Test public void testLocalDateTimeMapToRfc1123() { - LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -80,10 +86,12 @@ public void testLocalDateTimeMapToRfc1123() { @Test public void testLocalDateTimeListOfMapToRfc1123() { - LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -97,7 +105,8 @@ public void testLocalDateTimeListOfMapToRfc1123() { List> expected = Arrays.asList(mapOfStrings); - assertEquals(LocalDateTimeHelper.toArrayOfMapOfRfc1123DateTime(listOfMapOfLocalDateTime), expected); + assertEquals(LocalDateTimeHelper.toArrayOfMapOfRfc1123DateTime(listOfMapOfLocalDateTime), + expected); } @@ -116,8 +125,9 @@ public void testLocalDateTimeMapValidateToRfc1123() { @Test public void testLocalDateTimeToRfc8601() { - LocalDateTime dateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); // stub String expected = "1997-07-13T06:10Z"; @@ -133,10 +143,12 @@ public void testLocalDateTimeNullToRfc8601() { @Test public void testLocalDateTimeListToRfc8601() { - LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); List dateTimeArray = Arrays.asList(dateTime1, dateTime2); // stub List expected = Arrays.asList("2000-07-13T06:10Z", "2020-07-25T06:10Z"); @@ -152,10 +164,12 @@ public void testLocalDateTimeNullListToRfc8601() { @Test public void testLocalDateTimeMapToRfc8601() { - LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -171,10 +185,12 @@ public void testLocalDateTimeMapToRfc8601() { @Test public void testLocalDateTimeListOfMapToRfc8601() { - LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); - LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime dateTime1 = LocalDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); + LocalDateTime dateTime2 = LocalDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -188,7 +204,8 @@ public void testLocalDateTimeListOfMapToRfc8601() { List> expected = Arrays.asList(mapOfString); - assertEquals(LocalDateTimeHelper.toArrayOfMapOfRfc8601DateTime(listOfMapOfLocalDateTime), expected); + assertEquals(LocalDateTimeHelper.toArrayOfMapOfRfc8601DateTime(listOfMapOfLocalDateTime), + expected); } @@ -208,8 +225,9 @@ public void testLocalDateTimeMapValidateToRfc8601() { @Test public void testLocalDateTimeToUnixTimeStamp() { LocalDateTime dateTime = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); // stub String expected = "868756200"; assertEquals(LocalDateTimeHelper.toUnixTimestamp(dateTime), expected); @@ -225,11 +243,13 @@ public void testLocalDateTimeNullToUnixTimeStamp() { @Test public void testLocalDateTimeListToUnixTimeStamp() { LocalDateTime dateTime1 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); LocalDateTime dateTime2 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); List dateTimeArray = Arrays.asList(dateTime1, dateTime2); // stub @@ -247,11 +267,13 @@ public void testLocalDateTimeNullListToUnixTimeStamp() { @Test public void testLocalDateTimeMapToUnixTimeStamp() { LocalDateTime dateTime1 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); LocalDateTime dateTime2 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -268,11 +290,13 @@ public void testLocalDateTimeMapToUnixTimeStamp() { @Test public void testListOfMapToUnixTimeStamp() { LocalDateTime dateTime1 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); LocalDateTime dateTime2 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -286,7 +310,8 @@ public void testListOfMapToUnixTimeStamp() { List> expected = Arrays.asList(mapOfStrings); - assertEquals(LocalDateTimeHelper.toArrayOfMapOfUnixTimestamp(listOfMapOfLocalDateTime), expected); + assertEquals(LocalDateTimeHelper.toArrayOfMapOfUnixTimestamp(listOfMapOfLocalDateTime), + expected); } @@ -306,8 +331,9 @@ public void testLocalDateTimeMapValidateToUnixTimeStamp() { @Test public void testUnixDateTimeLong() { LocalDateTime dateTime = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Long expectedValue = DateTimeConstants.UNIXTIMESTAMP3; Long actualValue = LocalDateTimeHelper.toUnixTimestampLong(dateTime); @@ -327,15 +353,18 @@ public void testNullUnixDateTimeLong() { @Test public void testListToUnixTimeLong() { LocalDateTime dateTime1 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); LocalDateTime dateTime2 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); List dateTimeArray = Arrays.asList(dateTime1, dateTime2); // stub - List expected = Arrays.asList(DateTimeConstants.UNIXTIMESTAMP1, DateTimeConstants.UNIXTIMESTAMP2); + List expected = Arrays.asList(DateTimeConstants.UNIXTIMESTAMP1, + DateTimeConstants.UNIXTIMESTAMP2); assertEquals(LocalDateTimeHelper.toUnixTimestampLong(dateTimeArray), expected); } @@ -349,11 +378,13 @@ public void testNullListToUnixTimeLong() { @Test public void testLocalDateTimeMapToUnixTimeLong() { LocalDateTime dateTime1 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); LocalDateTime dateTime2 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -370,11 +401,13 @@ public void testLocalDateTimeMapToUnixTimeLong() { @Test public void testListOfMapToUnixTimeLong() { LocalDateTime dateTime1 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); LocalDateTime dateTime2 = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, DateTimeConstants.JULY, - DateTimeConstants.DAY25, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2020, + DateTimeConstants.JULY, DateTimeConstants.DAY25, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Map dateTimeMap = new HashMap<>(); dateTimeMap.put("dateTime1", dateTime1); dateTimeMap.put("dateTime2", dateTime2); @@ -388,7 +421,8 @@ public void testListOfMapToUnixTimeLong() { List> expected = Arrays.asList(mapOfLong); - assertEquals(LocalDateTimeHelper.toArrayOfMapOfUnixTimestampLong(listOfMapOfLocalDateTime), expected); + assertEquals(LocalDateTimeHelper.toArrayOfMapOfUnixTimestampLong(listOfMapOfLocalDateTime), + expected); } @@ -408,8 +442,9 @@ public void testLocalDateTimeMapValidateToUnixTimeLong() { @Test public void testFromUnixTimeStampLong() { LocalDateTime expected = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); Long date = DateTimeConstants.UNIXTIMESTAMP1; LocalDateTime actualValue = LocalDateTimeHelper.fromUnixTimestamp(date); @@ -419,8 +454,9 @@ public void testFromUnixTimeStampLong() { @Test public void testFromUnixTimeStampString() { LocalDateTime expected = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR2000, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); String date = "963450600"; LocalDateTime actualValue = LocalDateTimeHelper.fromUnixTimestamp(date); @@ -430,8 +466,9 @@ public void testFromUnixTimeStampString() { @Test public void testFromRfc1123String() { String date = "Sun, 13 Jul 1997 06:10:00 GMT"; - LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, + DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); LocalDateTime actualValue = LocalDateTimeHelper.fromRfc1123DateTime(date); assertEquals(actualValue, expected); } @@ -439,8 +476,9 @@ public void testFromRfc1123String() { @Test public void testFromRfc8601String() { String date = "1997-07-13T06:10Z"; - LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); LocalDateTime actualValue = LocalDateTimeHelper.fromRfc8601DateTime(date); assertEquals(actualValue, expected); } @@ -448,8 +486,9 @@ public void testFromRfc8601String() { @SuppressWarnings("unchecked") @Test public void testRfc1123Serializer() throws JsonProcessingException { - LocalDateTime localDateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime localDateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); @SuppressWarnings("rawtypes") JsonSerializer serializer = new LocalDateTimeHelper.Rfc1123DateTimeSerializer(); ObjectMapper mapper = new ObjectMapper(); @@ -475,8 +514,9 @@ public void testRfc1123Deserializer() throws JsonProcessingException { mapper.registerModule(module); String datetime = "\"Sun, 13 Jul 1997 06:10:00 GMT\""; - LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); LocalDateTime actual = mapper.readValue(datetime, LocalDateTime.class); assertEquals(actual, expected); } @@ -484,8 +524,9 @@ public void testRfc1123Deserializer() throws JsonProcessingException { @SuppressWarnings("unchecked") @Test public void testRfc8601Serializer() throws JsonProcessingException { - LocalDateTime localDateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime localDateTime = LocalDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); @SuppressWarnings("rawtypes") JsonSerializer serializer = new LocalDateTimeHelper.Rfc8601DateTimeSerializer(); ObjectMapper mapper = new ObjectMapper(); @@ -511,8 +552,9 @@ public void testRfc8601Deserializer() throws JsonProcessingException { mapper.registerModule(module); String dateTime = "\"1997-07-13T06:10Z\""; - LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, DateTimeConstants.HOUR6, DateTimeConstants.MINUTES10); + LocalDateTime expected = LocalDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, DateTimeConstants.HOUR6, + DateTimeConstants.MINUTES10); LocalDateTime actual = mapper.readValue(dateTime, LocalDateTime.class); assertEquals(actual, expected); } @@ -521,8 +563,9 @@ public void testRfc8601Deserializer() throws JsonProcessingException { @Test public void testUnixTimeStampSerializer() throws JsonProcessingException { LocalDateTime localDateTime = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); @SuppressWarnings("rawtypes") JsonSerializer serializer = new LocalDateTimeHelper.UnixTimestampSerializer(); ObjectMapper mapper = new ObjectMapper(); @@ -547,8 +590,9 @@ public void testUnixTimeStampDeSerializer() throws JsonProcessingException { String dateTime = "868756200"; LocalDateTime expected = TestDateTimeHelper - .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, DateTimeConstants.JULY, - DateTimeConstants.DAY13, 1, DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); + .getLocalDateTimeFromGMT(ZonedDateTime.of(DateTimeConstants.YEAR1997, + DateTimeConstants.JULY, DateTimeConstants.DAY13, 1, + DateTimeConstants.MINUTES10, 0, 0, ZoneId.of("GMT"))); LocalDateTime actual = mapper.readValue(dateTime, LocalDateTime.class); assertEquals(actual, expected); } From 4b828032a44704ccf3cbfb68dbee39b1a16f4c28 Mon Sep 17 00:00:00 2001 From: Muhammad Sufyan Date: Thu, 14 Nov 2024 17:12:04 +0500 Subject: [PATCH 11/14] fixes liniting issue --- .../ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java index 80b5f921..48d41e8e 100644 --- a/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java +++ b/src/test/java/apimatic/core/models/ModelWith3dArrayOfNonPrimitiveAdditionalProperties.java @@ -150,7 +150,7 @@ public Builder additionalProperty(String name, List>> value) } /** - * Builds a new {@link ModelWith3dArrayOfNonPrimitiveAdditionalProperties} object + * Builds a new {@link ModelWith3dArrayOfNonPrimitiveAdditionalProperties} object * using the set fields. * @return {@link ModelWith3dArrayOfNonPrimitiveAdditionalProperties} */ From e8c49b18f639c0995622ddcb645d07373acc7f21 Mon Sep 17 00:00:00 2001 From: Muhammad Haseeb Date: Thu, 28 Nov 2024 11:55:59 +0500 Subject: [PATCH 12/14] refactor: added suggestion from comments --- src/main/java/io/apimatic/core/utilities/ConversionHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java index 83209932..2e37a178 100644 --- a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java +++ b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java @@ -82,7 +82,7 @@ public static List convertToArray(Object value, try { List valueList = (List) value; return valueList.stream().map(item -> convertToSimpleType(item, conversionFunction)) - .filter(item -> item != null).collect(Collectors.toList()); + .filter(Objects::nonNull).collect(Collectors.toList()); } catch (Exception e) { return null; } From a1e0fc977f07bed530f7f8d3a40a275a512c5590 Mon Sep 17 00:00:00 2001 From: Muhammad Haseeb Date: Thu, 28 Nov 2024 11:55:59 +0500 Subject: [PATCH 13/14] refactor: added suggestion from comments --- src/main/java/io/apimatic/core/utilities/ConversionHelper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java index 83209932..6dc5ac26 100644 --- a/src/main/java/io/apimatic/core/utilities/ConversionHelper.java +++ b/src/main/java/io/apimatic/core/utilities/ConversionHelper.java @@ -3,6 +3,7 @@ import java.util.AbstractMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; @@ -82,7 +83,7 @@ public static List convertToArray(Object value, try { List valueList = (List) value; return valueList.stream().map(item -> convertToSimpleType(item, conversionFunction)) - .filter(item -> item != null).collect(Collectors.toList()); + .filter(Objects::nonNull).collect(Collectors.toList()); } catch (Exception e) { return null; } From a4f996d096cc1193148097ef4e7e8712023eebba Mon Sep 17 00:00:00 2001 From: Hamza Mahmood Date: Thu, 28 Nov 2024 13:17:15 +0500 Subject: [PATCH 14/14] add AdditionalProperties class in README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8cd14767..e5400676 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ Core lib's Maven group ID is `io.apimatic`, and its artifact ID is `core`. | [`CoreJsonObject`](./src/main/java/io/apimatic/core/utilities/CoreJsonObject.java) | Wrapper class for JSON object | | [`CoreJsonValue`](./src/main/java/io/apimatic/core/utilities/CoreJsonValue.java) | Wrapper class for JSON value | | [`TestHelper`](./src/main/java/io/apimatic/core/utilities/TestHelper.java) | Contains utility methods for comparing objects, arrays and files | +| [`AdditionalProperties`](./src/main/java/io/apimatic/core/types/AdditionalProperties.java) | A generic class for managing additional properties in a model. | | [`ConversionHelper`](./src/main/java/io/apimatic/core/utilities/ConversionHelper.java) | A Helper class for the coversion of type (provided as function) for all structures (array, map, array of map, n-dimensional arrays etc) supported in the SDK. | ## Interfaces