You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2015/01/26 11:02:39 UTC
olingo-odata4 git commit: [OLINGO-530] Extended test scenario EDM and
added more test cases
Repository: olingo-odata4
Updated Branches:
refs/heads/master e827ce122 -> de3f3453b
[OLINGO-530] Extended test scenario EDM and added more test cases
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/de3f3453
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/de3f3453
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/de3f3453
Branch: refs/heads/master
Commit: de3f3453b777d743a4d0935bb50b1b12d3fdfc61
Parents: e827ce1
Author: Michael Bolz <mi...@sap.com>
Authored: Mon Jan 26 10:49:54 2015 +0100
Committer: Michael Bolz <mi...@sap.com>
Committed: Mon Jan 26 10:56:10 2015 +0100
----------------------------------------------------------------------
.../json/ODataJsonDeserializer.java | 21 +-
.../tecsvc/provider/ComplexTypeProvider.java | 3 +-
.../tecsvc/provider/EntityTypeProvider.java | 14 +-
.../tecsvc/provider/PropertyProvider.java | 746 +++++++++++--------
.../json/ODataJsonDeserializerEntityTest.java | 87 ++-
5 files changed, 532 insertions(+), 339 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de3f3453/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
index 2fa54a0..6d03215 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
@@ -431,7 +431,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
}
private Object readComplexValue(EdmProperty edmComplexProperty, JsonNode jsonNode) throws DeserializerException {
- if(isNullable(edmComplexProperty) && jsonNode.isNull()) {
+ if(isValidNull(edmComplexProperty, jsonNode)) {
return null;
}
if (jsonNode.isArray() || !jsonNode.isContainerNode()) {
@@ -465,7 +465,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
private Object readTypeDefinitionValue(EdmProperty edmProperty, JsonNode jsonNode) throws DeserializerException {
checkForValueNode(edmProperty, jsonNode);
- if(isNullable(edmProperty) && jsonNode.isNull()) {
+ if(isValidNull(edmProperty, jsonNode)) {
return null;
}
try {
@@ -483,9 +483,22 @@ public class ODataJsonDeserializer implements ODataDeserializer {
}
}
+ private boolean isValidNull(EdmProperty edmProperty, JsonNode jsonNode) throws DeserializerException {
+ if (jsonNode.isNull()) {
+ if (isNullable(edmProperty)) {
+ return true;
+ } else {
+ throw new DeserializerException("Property: " + edmProperty.getName() + " must not be null.",
+ DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, edmProperty.getName());
+ }
+
+ }
+ return false;
+ }
+
private Object readEnumValue(EdmProperty edmProperty, JsonNode jsonNode) throws DeserializerException {
checkForValueNode(edmProperty, jsonNode);
- if(isNullable(edmProperty) && jsonNode.isNull()) {
+ if(isValidNull(edmProperty, jsonNode)) {
return null;
}
try {
@@ -503,7 +516,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
private Object readPrimitiveValue(EdmProperty edmProperty, JsonNode jsonNode) throws DeserializerException {
checkForValueNode(edmProperty, jsonNode);
- if(isNullable(edmProperty) && jsonNode.isNull()) {
+ if(isValidNull(edmProperty, jsonNode)) {
return null;
}
try {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de3f3453/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
index 3c23d79..bf30b32 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
@@ -89,7 +89,8 @@ public class ComplexTypeProvider {
} else if (complexTypeName.equals(nameCTTwoPrim)) {
return new ComplexType()
.setName("CTTwoPrim")
- .setProperties(Arrays.asList(PropertyProvider.propertyInt16, PropertyProvider.propertyString));
+ .setProperties(Arrays.asList(PropertyProvider.propertyInt16_NotNullable,
+ PropertyProvider.propertyString_NotNullable));
} else if (complexTypeName.equals(nameCTCompNav)) {
return new ComplexType()
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de3f3453/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
index 7230a55..55ec15f 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
@@ -103,15 +103,19 @@ public class EntityTypeProvider {
.setProperties(
Arrays.asList(
- PropertyProvider.propertyInt16_NotNullable, PropertyProvider.collPropertyString,
+ PropertyProvider.propertyInt16_NotNullable,
+ PropertyProvider.collPropertyString_NotNullable,
PropertyProvider.collPropertyBoolean, PropertyProvider.collPropertyByte,
- PropertyProvider.collPropertySByte, PropertyProvider.collPropertyInt16,
+ PropertyProvider.collPropertySByte,
+ PropertyProvider.collPropertyInt16_NotNullable,
PropertyProvider.collPropertyInt32, PropertyProvider.collPropertyInt64,
PropertyProvider.collPropertySingle, PropertyProvider.collPropertyDouble,
PropertyProvider.collPropertyDecimal, PropertyProvider.collPropertyBinary,
- PropertyProvider.collPropertyDate, PropertyProvider.collPropertyDateTimeOffset,
- PropertyProvider.collPropertyDuration, PropertyProvider.collPropertyGuid,
- PropertyProvider.collPropertyTimeOfDay /* TODO add propertyStream */));
+ PropertyProvider.collPropertyDate_NotNullable,
+ PropertyProvider.collPropertyDateTimeOffset_NotNullable,
+ PropertyProvider.collPropertyDuration_NotNullable,
+ PropertyProvider.collPropertyGuid, PropertyProvider.collPropertyTimeOfDay
+ /* TODO add propertyStream */));
} else if (entityTypeName.equals(nameETTwoPrim)) {
return new EntityType()
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de3f3453/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
index 72eb8d5..7b1ef0f 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
@@ -32,7 +32,7 @@ public class PropertyProvider {
public static final FullQualifiedName nameDate = EdmPrimitiveTypeKind.Date.getFullQualifiedName();
public static final FullQualifiedName nameDateTimeOffset =
- EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName();
+ EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName();
public static final FullQualifiedName nameDecimal = EdmPrimitiveTypeKind.Decimal.getFullQualifiedName();
public static final FullQualifiedName nameDouble = EdmPrimitiveTypeKind.Double.getFullQualifiedName();
@@ -51,407 +51,503 @@ public class PropertyProvider {
// Primitive Properties --------------------------------------------------------------------------------------------
public static final Property collPropertyBinary = new Property()
- .setName("CollPropertyBinary")
- .setType(nameBinary)
- .setCollection(true);
+ .setName("CollPropertyBinary")
+ .setType(nameBinary)
+ .setCollection(true);
public static final Property collPropertyBinary_ExplicitNullable = new Property()
- .setName("CollPropertyBinary")
- .setType(nameBinary)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyBinary")
+ .setType(nameBinary)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyBinary_NotNullable = new Property()
+ .setName("CollPropertyBinary")
+ .setType(nameBinary)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyBoolean = new Property()
- .setName("CollPropertyBoolean")
- .setType(nameBoolean)
- .setCollection(true);
+ .setName("CollPropertyBoolean")
+ .setType(nameBoolean)
+ .setCollection(true);
public static final Property collPropertyBoolean_ExplicitNullable = new Property()
- .setName("CollPropertyBoolean")
- .setType(nameBoolean)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyBoolean")
+ .setType(nameBoolean)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyBoolean_NotNullable = new Property()
+ .setName("CollPropertyBoolean")
+ .setType(nameBoolean)
+ .setNullable(true)
+ .setCollection(true);
public static final Property collPropertyByte = new Property()
- .setName("CollPropertyByte")
- .setType(nameByte)
- .setCollection(true);
+ .setName("CollPropertyByte")
+ .setType(nameByte)
+ .setCollection(true);
public static final Property collPropertyByte_ExplicitNullable = new Property()
- .setName("CollPropertyByte")
- .setType(nameByte)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyByte")
+ .setType(nameByte)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyByte_NotNullable = new Property()
+ .setName("CollPropertyByte")
+ .setType(nameByte)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyDate = new Property()
- .setName("CollPropertyDate")
- .setType(nameDate)
- .setCollection(true);
+ .setName("CollPropertyDate")
+ .setType(nameDate)
+ .setCollection(true);
public static final Property collPropertyDate_ExplicitNullable = new Property()
- .setName("CollPropertyDate")
- .setType(nameDate)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyDate")
+ .setType(nameDate)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyDate_NotNullable = new Property()
+ .setName("CollPropertyDate")
+ .setType(nameDate)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyDateTimeOffset = new Property()
- .setName("CollPropertyDateTimeOffset")
- .setType(nameDateTimeOffset)
- .setCollection(true);
+ .setName("CollPropertyDateTimeOffset")
+ .setType(nameDateTimeOffset)
+ .setCollection(true);
public static final Property collPropertyDateTimeOffset_ExplicitNullable = new Property()
- .setName("CollPropertyDateTimeOffset")
- .setType(nameDateTimeOffset)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyDateTimeOffset")
+ .setType(nameDateTimeOffset)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyDateTimeOffset_NotNullable = new Property()
+ .setName("CollPropertyDateTimeOffset")
+ .setType(nameDateTimeOffset)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyDecimal = new Property()
- .setName("CollPropertyDecimal")
- .setType(nameDecimal)
- .setCollection(true);
+ .setName("CollPropertyDecimal")
+ .setType(nameDecimal)
+ .setCollection(true);
public static final Property collPropertyDecimal_ExplicitNullable = new Property()
- .setName("CollPropertyDecimal")
- .setType(nameDecimal)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyDecimal")
+ .setType(nameDecimal)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyDecimal_NotNullable = new Property()
+ .setName("CollPropertyDecimal")
+ .setType(nameDecimal)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyDouble = new Property()
- .setName("CollPropertyDouble")
- .setType(nameDouble)
- .setCollection(true);
+ .setName("CollPropertyDouble")
+ .setType(nameDouble)
+ .setCollection(true);
public static final Property collPropertyDouble_ExplicitNullable = new Property()
- .setName("CollPropertyDouble")
- .setType(nameDouble)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyDouble")
+ .setType(nameDouble)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyDouble_NotNullable = new Property()
+ .setName("CollPropertyDouble")
+ .setType(nameDouble)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyDuration = new Property()
- .setName("CollPropertyDuration")
- .setType(nameDuration)
- .setCollection(true);
+ .setName("CollPropertyDuration")
+ .setType(nameDuration)
+ .setCollection(true);
public static final Property collPropertyDuration_ExplicitNullable = new Property()
- .setName("CollPropertyDuration")
- .setType(nameDuration)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyDuration")
+ .setType(nameDuration)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyDuration_NotNullable = new Property()
+ .setName("CollPropertyDuration")
+ .setType(nameDuration)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyGuid = new Property()
- .setName("CollPropertyGuid")
- .setType(nameGuid)
- .setCollection(true);
+ .setName("CollPropertyGuid")
+ .setType(nameGuid)
+ .setCollection(true);
public static final Property collPropertyGuid_ExplicitNullable = new Property()
- .setName("CollPropertyGuid")
- .setType(nameGuid)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyGuid")
+ .setType(nameGuid)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyGuid_NotNullable = new Property()
+ .setName("CollPropertyGuid")
+ .setType(nameGuid)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyInt16 = new Property()
- .setName("CollPropertyInt16")
- .setType(nameInt16)
- .setCollection(true);
+ .setName("CollPropertyInt16")
+ .setType(nameInt16)
+ .setCollection(true);
public static final Property collPropertyInt16_ExplicitNullable = new Property()
- .setName("CollPropertyInt16")
- .setType(nameInt16)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyInt16")
+ .setType(nameInt16)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyInt16_NotNullable = new Property()
+ .setName("CollPropertyInt16")
+ .setType(nameInt16)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyInt32 = new Property()
- .setName("CollPropertyInt32")
- .setType(nameInt32)
- .setCollection(true);
+ .setName("CollPropertyInt32")
+ .setType(nameInt32)
+ .setCollection(true);
public static final Property collPropertyInt32_ExplicitNullable = new Property()
- .setName("CollPropertyInt32")
- .setType(nameInt32)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyInt32")
+ .setType(nameInt32)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyInt32_NotNullable = new Property()
+ .setName("CollPropertyInt32")
+ .setType(nameInt32)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyInt64 = new Property()
- .setName("CollPropertyInt64")
- .setType(nameInt64)
- .setCollection(true);
+ .setName("CollPropertyInt64")
+ .setType(nameInt64)
+ .setCollection(true);
public static final Property collPropertyInt64_ExplicitNullable = new Property()
- .setName("CollPropertyInt64")
- .setType(nameInt64)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyInt64")
+ .setType(nameInt64)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyInt64_NotNullable = new Property()
+ .setName("CollPropertyInt64")
+ .setType(nameInt64)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertySByte = new Property()
- .setName("CollPropertySByte")
- .setType(nameSByte)
- .setCollection(true);
+ .setName("CollPropertySByte")
+ .setType(nameSByte)
+ .setCollection(true);
public static final Property collPropertySByte_ExplicitNullable = new Property()
- .setName("CollPropertySByte")
- .setType(nameSByte)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertySByte")
+ .setType(nameSByte)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertySByte_NotNullable = new Property()
+ .setName("CollPropertySByte")
+ .setType(nameSByte)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertySingle = new Property()
- .setName("CollPropertySingle")
- .setType(nameSingle)
- .setCollection(true);
+ .setName("CollPropertySingle")
+ .setType(nameSingle)
+ .setCollection(true);
public static final Property collPropertySingle_ExplicitNullable = new Property()
- .setName("CollPropertySingle")
- .setType(nameSingle)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertySingle")
+ .setType(nameSingle)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertySingle_NotNullable = new Property()
+ .setName("CollPropertySingle")
+ .setType(nameSingle)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyString = new Property()
- .setName("CollPropertyString")
- .setType(nameString)
- .setCollection(true);
+ .setName("CollPropertyString")
+ .setType(nameString)
+ .setCollection(true);
public static final Property collPropertyString_ExplicitNullable = new Property()
- .setName("CollPropertyString")
- .setType(nameString)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyString")
+ .setType(nameString)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyString_NotNullable = new Property()
+ .setName("CollPropertyString")
+ .setType(nameString)
+ .setNullable(false)
+ .setCollection(true);
public static final Property collPropertyTimeOfDay = new Property()
- .setName("CollPropertyTimeOfDay")
- .setType(nameTimeOfDay)
- .setCollection(true);
+ .setName("CollPropertyTimeOfDay")
+ .setType(nameTimeOfDay)
+ .setCollection(true);
public static final Property collPropertyTimeOfDay_ExplicitNullable = new Property()
- .setName("CollPropertyTimeOfDay")
- .setType(nameTimeOfDay)
- .setNullable(true)
- .setCollection(true);
+ .setName("CollPropertyTimeOfDay")
+ .setType(nameTimeOfDay)
+ .setNullable(true)
+ .setCollection(true);
+
+ public static final Property collPropertyTimeOfDay_NotNullable = new Property()
+ .setName("CollPropertyTimeOfDay")
+ .setType(nameTimeOfDay)
+ .setNullable(false)
+ .setCollection(true);
public static final Property propertyBinary = new Property()
- .setName("PropertyBinary")
- .setType(nameBinary);
+ .setName("PropertyBinary")
+ .setType(nameBinary);
public static final Property propertyBinary_NotNullable = new Property()
- .setName("PropertyBinary")
- .setType(nameBinary)
- .setNullable(false);
+ .setName("PropertyBinary")
+ .setType(nameBinary)
+ .setNullable(false);
public static final Property propertyBinary_ExplicitNullable = new Property()
- .setName("PropertyBinary")
- .setType(nameBinary)
- .setNullable(true);
+ .setName("PropertyBinary")
+ .setType(nameBinary)
+ .setNullable(true);
public static final Property propertyBoolean = new Property()
- .setName("PropertyBoolean")
- .setType(nameBoolean);
+ .setName("PropertyBoolean")
+ .setType(nameBoolean);
public static final Property propertyBoolean_NotNullable = new Property()
- .setName("PropertyBoolean")
- .setType(nameBoolean)
- .setNullable(false);
+ .setName("PropertyBoolean")
+ .setType(nameBoolean)
+ .setNullable(false);
public static final Property propertyBoolean_ExplicitNullable = new Property()
- .setName("PropertyBoolean")
- .setType(nameBoolean)
- .setNullable(true);
+ .setName("PropertyBoolean")
+ .setType(nameBoolean)
+ .setNullable(true);
public static final Property propertyByte = new Property()
- .setName("PropertyByte")
- .setType(nameByte);
+ .setName("PropertyByte")
+ .setType(nameByte);
public static final Property propertyByte_NotNullable = new Property()
- .setName("PropertyByte")
- .setType(nameByte)
- .setNullable(false);
+ .setName("PropertyByte")
+ .setType(nameByte)
+ .setNullable(false);
public static final Property propertyByte_ExplicitNullable = new Property()
- .setName("PropertyByte")
- .setType(nameByte)
- .setNullable(true);
+ .setName("PropertyByte")
+ .setType(nameByte)
+ .setNullable(true);
public static final Property propertyDate = new Property()
- .setName("PropertyDate")
- .setType(nameDate);
+ .setName("PropertyDate")
+ .setType(nameDate);
public static final Property propertyDate_NotNullable = new Property()
- .setName("PropertyDate")
- .setType(nameDate)
- .setNullable(false);
+ .setName("PropertyDate")
+ .setType(nameDate)
+ .setNullable(false);
public static final Property propertyDate_ExplicitNullable = new Property()
- .setName("PropertyDate")
- .setType(nameDate)
- .setNullable(true);
+ .setName("PropertyDate")
+ .setType(nameDate)
+ .setNullable(true);
public static final Property propertyDateTimeOffset = new Property()
- .setName("PropertyDateTimeOffset")
- .setPrecision(20)
- .setType(nameDateTimeOffset);
+ .setName("PropertyDateTimeOffset")
+ .setPrecision(20)
+ .setType(nameDateTimeOffset);
public static final Property propertyDateTimeOffset_NotNullable = new Property()
- .setName("PropertyDateTimeOffset")
- .setType(nameDateTimeOffset)
- .setNullable(false);
+ .setName("PropertyDateTimeOffset")
+ .setType(nameDateTimeOffset)
+ .setNullable(false);
public static final Property propertyDateTimeOffset_ExplicitNullable = new Property()
- .setName("PropertyDateTimeOffset")
- .setType(nameDateTimeOffset)
- .setNullable(true);
+ .setName("PropertyDateTimeOffset")
+ .setType(nameDateTimeOffset)
+ .setNullable(true);
public static final Property propertyDecimal = new Property()
- .setName("PropertyDecimal")
- .setScale(10)
- .setType(nameDecimal);
+ .setName("PropertyDecimal")
+ .setScale(10)
+ .setType(nameDecimal);
public static final Property propertyDecimal_NotNullable = new Property()
- .setName("PropertyDecimal")
- .setType(nameDecimal)
- .setNullable(false);
+ .setName("PropertyDecimal")
+ .setType(nameDecimal)
+ .setNullable(false);
public static final Property propertyDecimal_ExplicitNullable = new Property()
- .setName("PropertyDecimal")
- .setType(nameDecimal)
- .setNullable(true);
+ .setName("PropertyDecimal")
+ .setType(nameDecimal)
+ .setNullable(true);
public static final Property propertyDouble = new Property()
- .setName("PropertyDouble")
- .setType(nameDouble);
+ .setName("PropertyDouble")
+ .setType(nameDouble);
public static final Property propertyDouble_NotNullable = new Property()
- .setName("PropertyDouble")
- .setType(nameDouble)
- .setNullable(false);
+ .setName("PropertyDouble")
+ .setType(nameDouble)
+ .setNullable(false);
public static final Property propertyDouble_ExplicitNullable = new Property()
- .setName("PropertyDouble")
- .setType(nameDouble)
- .setNullable(true);
+ .setName("PropertyDouble")
+ .setType(nameDouble)
+ .setNullable(true);
public static final Property propertyDuration = new Property()
- .setName("PropertyDuration")
- .setType(nameDuration);
+ .setName("PropertyDuration")
+ .setType(nameDuration);
public static final Property propertyDuration_NotNullable = new Property()
- .setName("PropertyDuration")
- .setType(nameDuration)
- .setNullable(false);
+ .setName("PropertyDuration")
+ .setType(nameDuration)
+ .setNullable(false);
public static final Property propertyDuration_ExplicitNullable = new Property()
- .setName("PropertyDuration")
- .setType(nameDuration)
- .setNullable(true);
+ .setName("PropertyDuration")
+ .setType(nameDuration)
+ .setNullable(true);
public static final Property propertyGuid = new Property()
- .setName("PropertyGuid")
- .setType(nameGuid);
+ .setName("PropertyGuid")
+ .setType(nameGuid);
public static final Property propertyGuid_NotNullable = new Property()
- .setName("PropertyGuid")
- .setType(nameGuid)
- .setNullable(false);
+ .setName("PropertyGuid")
+ .setType(nameGuid)
+ .setNullable(false);
public static final Property propertyGuid_ExplicitNullable = new Property()
- .setName("PropertyGuid")
- .setType(nameGuid)
- .setNullable(true);
+ .setName("PropertyGuid")
+ .setType(nameGuid)
+ .setNullable(true);
public static final Property propertyInt16 = new Property()
- .setName("PropertyInt16")
- .setType(nameInt16);
+ .setName("PropertyInt16")
+ .setType(nameInt16);
public static final Property propertyInt16_NotNullable = new Property()
- .setName("PropertyInt16")
- .setType(nameInt16)
- .setNullable(false);
+ .setName("PropertyInt16")
+ .setType(nameInt16)
+ .setNullable(false);
public static final Property propertyInt16_ExplicitNullable = new Property()
- .setName("PropertyInt16")
- .setType(nameInt16)
- .setNullable(true);
+ .setName("PropertyInt16")
+ .setType(nameInt16)
+ .setNullable(true);
public static final Property propertyInt32 = new Property()
- .setName("PropertyInt32")
- .setType(nameInt32);
+ .setName("PropertyInt32")
+ .setType(nameInt32);
public static final Property propertyInt32_NotNullable = new Property()
- .setName("PropertyInt32")
- .setType(nameInt32)
- .setNullable(false);
+ .setName("PropertyInt32")
+ .setType(nameInt32)
+ .setNullable(false);
public static final Property propertyInt32_ExplicitNullable = new Property()
- .setName("PropertyInt32")
- .setType(nameInt32)
- .setNullable(true);
+ .setName("PropertyInt32")
+ .setType(nameInt32)
+ .setNullable(true);
public static final Property propertyInt64 = new Property()
- .setName("PropertyInt64")
- .setType(nameInt64);
+ .setName("PropertyInt64")
+ .setType(nameInt64);
public static final Property propertyInt64_NotNullable = new Property()
- .setName("PropertyInt64")
- .setType(nameInt64)
- .setNullable(false);
+ .setName("PropertyInt64")
+ .setType(nameInt64)
+ .setNullable(false);
public static final Property propertyInt64_ExplicitNullable = new Property()
- .setName("PropertyInt64")
- .setType(nameInt64)
- .setNullable(true);
+ .setName("PropertyInt64")
+ .setType(nameInt64)
+ .setNullable(true);
public static final Property propertySByte = new Property()
- .setName("PropertySByte")
- .setType(nameSByte);
+ .setName("PropertySByte")
+ .setType(nameSByte);
public static final Property propertySByte_NotNullable = new Property()
- .setName("PropertySByte")
- .setType(nameSByte)
- .setNullable(false);
+ .setName("PropertySByte")
+ .setType(nameSByte)
+ .setNullable(false);
public static final Property propertySByte_ExplicitNullable = new Property()
- .setName("PropertySByte")
- .setType(nameSByte)
- .setNullable(true);
+ .setName("PropertySByte")
+ .setType(nameSByte)
+ .setNullable(true);
public static final Property propertySingle = new Property()
- .setName("PropertySingle")
- .setType(nameSingle);
+ .setName("PropertySingle")
+ .setType(nameSingle);
public static final Property propertySingle_NotNullable = new Property()
- .setName("PropertySingle")
- .setType(nameSingle)
- .setNullable(false);
+ .setName("PropertySingle")
+ .setType(nameSingle)
+ .setNullable(false);
public static final Property propertySingle_ExplicitNullable = new Property()
- .setName("PropertySingle")
- .setType(nameSingle)
- .setNullable(true);
+ .setName("PropertySingle")
+ .setType(nameSingle)
+ .setNullable(true);
public static final Property propertyString = new Property()
- .setName("PropertyString")
- .setType(nameString);
+ .setName("PropertyString")
+ .setType(nameString);
public static final Property propertyString_NotNullable = new Property()
- .setName("PropertyString")
- .setType(nameString)
- .setNullable(false);
+ .setName("PropertyString")
+ .setType(nameString)
+ .setNullable(false);
public static final Property propertyString_ExplicitNullable = new Property()
- .setName("PropertyString")
- .setType(nameString)
- .setNullable(true);
+ .setName("PropertyString")
+ .setType(nameString)
+ .setNullable(true);
public static final Property propertyTimeOfDay = new Property()
- .setName("PropertyTimeOfDay")
- .setPrecision(10)
- .setType(nameTimeOfDay);
+ .setName("PropertyTimeOfDay")
+ .setPrecision(10)
+ .setType(nameTimeOfDay);
public static final Property propertyTimeOfDay_NotNullable = new Property()
- .setName("PropertyTimeOfDay")
- .setType(nameTimeOfDay)
- .setNullable(false);
+ .setName("PropertyTimeOfDay")
+ .setType(nameTimeOfDay)
+ .setNullable(false);
public static final Property propertyTimeOfDay_ExplicitNullable = new Property()
- .setName("PropertyTimeOfDay")
- .setType(nameTimeOfDay)
- .setNullable(true);
+ .setName("PropertyTimeOfDay")
+ .setType(nameTimeOfDay)
+ .setNullable(true);
/*
* TODO add propertyStream
@@ -462,150 +558,150 @@ public class PropertyProvider {
// Complex Properties ----------------------------------------------------------------------------------------------
public static final Property collPropertyComp_CTPrimComp = new Property()
- .setName("CollPropertyComp")
- .setType(ComplexTypeProvider.nameCTPrimComp)
- .setCollection(true);
+ .setName("CollPropertyComp")
+ .setType(ComplexTypeProvider.nameCTPrimComp)
+ .setCollection(true);
public static final Property collPropertyComp_CTTwoPrim = new Property()
- .setName("CollPropertyComp")
- .setType(ComplexTypeProvider.nameCTTwoPrim)
- .setCollection(true);
+ .setName("CollPropertyComp")
+ .setType(ComplexTypeProvider.nameCTTwoPrim)
+ .setCollection(true);
public static final Property propertyComp_CTAllPrim = new Property()
- .setName("PropertyComp")
- .setType(ComplexTypeProvider.nameCTAllPrim);
+ .setName("PropertyComp")
+ .setType(ComplexTypeProvider.nameCTAllPrim);
public static final Property propertyComp_CTCollAllPrim = new Property()
- .setName("PropertyComp")
- .setType(ComplexTypeProvider.nameCTCollAllPrim);
+ .setName("PropertyComp")
+ .setType(ComplexTypeProvider.nameCTCollAllPrim);
public static final Property propertyComp_CTCompCollComp = new Property()
- .setName("PropertyComp")
- .setType(ComplexTypeProvider.nameCTCompCollComp);
+ .setName("PropertyComp")
+ .setType(ComplexTypeProvider.nameCTCompCollComp);
public static final Property propertyComp_CTCompComp = new Property()
- .setName("PropertyComp")
- .setType(ComplexTypeProvider.nameCTCompComp);
+ .setName("PropertyComp")
+ .setType(ComplexTypeProvider.nameCTCompComp);
public static final Property propertyComp_CTNavFiveProp = new Property()
- .setName("PropertyComp")
- .setType(ComplexTypeProvider.nameCTNavFiveProp);
+ .setName("PropertyComp")
+ .setType(ComplexTypeProvider.nameCTNavFiveProp);
public static final Property propertyComp_CTPrimComp_NotNullable = new Property()
- .setName("PropertyComp")
- .setType(ComplexTypeProvider.nameCTPrimComp)
- .setNullable(false);
+ .setName("PropertyComp")
+ .setType(ComplexTypeProvider.nameCTPrimComp)
+ .setNullable(false);
public static final Property propertyComp_CTTwoPrim = new Property()
- .setName("PropertyComp")
- .setType(ComplexTypeProvider.nameCTTwoPrim);
+ .setName("PropertyComp")
+ .setType(ComplexTypeProvider.nameCTTwoPrim);
public static final Property propertyCompAllPrim_CTAllPrim = new Property()
- .setName("PropertyCompAllPrim")
- .setType(ComplexTypeProvider.nameCTAllPrim);
+ .setName("PropertyCompAllPrim")
+ .setType(ComplexTypeProvider.nameCTAllPrim);
public static final Property propertyCompComp_CTCompComp = new Property()
- .setName("PropertyCompComp")
- .setType(ComplexTypeProvider.nameCTCompComp);
+ .setName("PropertyCompComp")
+ .setType(ComplexTypeProvider.nameCTCompComp);
public static final Property propertyCompTwoPrim_CTTwoPrim = new Property()
- .setName("PropertyCompTwoPrim")
- .setType(ComplexTypeProvider.nameCTTwoPrim);
+ .setName("PropertyCompTwoPrim")
+ .setType(ComplexTypeProvider.nameCTTwoPrim);
public static final Property propertyMixedPrimCollComp_CTMixPrimCollComp = new Property()
- .setName("PropertyMixedPrimCollComp")
- .setType(ComplexTypeProvider.nameCTMixPrimCollComp);
+ .setName("PropertyMixedPrimCollComp")
+ .setType(ComplexTypeProvider.nameCTMixPrimCollComp);
public static final Property propertyComp_CTMixEnumTypeDefColl = new Property()
- .setName("PropertyCompMixedEnumDef")
- .setType(ComplexTypeProvider.nameCTMixEnumDef);
+ .setName("PropertyCompMixedEnumDef")
+ .setType(ComplexTypeProvider.nameCTMixEnumDef);
public static final Property propertyCompColl_CTMixEnumTypeDefColl = new Property()
- .setName("CollPropertyCompMixedEnumDef")
- .setType(ComplexTypeProvider.nameCTMixEnumDef)
- .setCollection(true);
+ .setName("CollPropertyCompMixedEnumDef")
+ .setType(ComplexTypeProvider.nameCTMixEnumDef)
+ .setCollection(true);
// Navigation Properties -------------------------------------------------------------------------------------------
public static final NavigationProperty collectionNavPropertyETKeyNavMany_ETKeyNav = new NavigationProperty()
- .setName("NavPropertyETKeyNavMany")
- .setType(EntityTypeProvider.nameETKeyNav)
- .setCollection(true);
+ .setName("NavPropertyETKeyNavMany")
+ .setType(EntityTypeProvider.nameETKeyNav)
+ .setCollection(true);
public static final NavigationProperty collectionNavPropertyETMediaMany_ETMedia = new NavigationProperty()
- .setName("NavPropertyETMediaMany")
- .setType(EntityTypeProvider.nameETMedia)
- .setCollection(true);
+ .setName("NavPropertyETMediaMany")
+ .setType(EntityTypeProvider.nameETMedia)
+ .setCollection(true);
public static final NavigationProperty collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav = new NavigationProperty()
- .setName("NavPropertyETTwoKeyNavMany")
- .setType(EntityTypeProvider.nameETTwoKeyNav)
- .setCollection(true)
- .setPartner("NavPropertyETKeyNavOne");
+ .setName("NavPropertyETTwoKeyNavMany")
+ .setType(EntityTypeProvider.nameETTwoKeyNav)
+ .setCollection(true)
+ .setPartner("NavPropertyETKeyNavOne");
public static final NavigationProperty collectionNavPropertyETTwoKeyNavOne_ETTwoKeyNav = new NavigationProperty()
- .setName("NavPropertyETTwoKeyNavOne")
- .setType(EntityTypeProvider.nameETTwoKeyNav);
+ .setName("NavPropertyETTwoKeyNavOne")
+ .setType(EntityTypeProvider.nameETTwoKeyNav);
public static final NavigationProperty collectionNavPropertyETTwoPrimMany_ETTwoPrim = new NavigationProperty()
- .setName("NavPropertyETTwoPrimMany")
- .setType(EntityTypeProvider.nameETTwoPrim)
- .setCollection(true)
- .setNullable(false);
+ .setName("NavPropertyETTwoPrimMany")
+ .setType(EntityTypeProvider.nameETTwoPrim)
+ .setCollection(true)
+ .setNullable(false);
public static final NavigationProperty collectionNavPropertyETAllPrimMany_ETAllPrim = new NavigationProperty()
- .setName("NavPropertyETAllPrimMany")
- .setType(EntityTypeProvider.nameETAllPrim)
- .setCollection(true);
+ .setName("NavPropertyETAllPrimMany")
+ .setType(EntityTypeProvider.nameETAllPrim)
+ .setCollection(true);
public static final NavigationProperty navPropertyETKeyNavOne_ETKeyNav = new NavigationProperty()
- .setName("NavPropertyETKeyNavOne")
- .setType(EntityTypeProvider.nameETKeyNav);
+ .setName("NavPropertyETKeyNavOne")
+ .setType(EntityTypeProvider.nameETKeyNav);
public static final NavigationProperty navPropertyETMediaOne_ETMedia = new NavigationProperty()
- .setName("NavPropertyETMediaOne")
- .setType(EntityTypeProvider.nameETMedia);
+ .setName("NavPropertyETMediaOne")
+ .setType(EntityTypeProvider.nameETMedia);
public static final NavigationProperty navPropertyETKeyPrimNavOne_ETKeyPrimNav = new NavigationProperty()
- .setName("NavPropertyETKeyPrimNavOne")
- .setType(EntityTypeProvider.nameETKeyPrimNav);
+ .setName("NavPropertyETKeyPrimNavOne")
+ .setType(EntityTypeProvider.nameETKeyPrimNav);
public static final NavigationProperty navPropertyETTwoKeyNavOne_ETTwoKeyNav_NotNullable = new NavigationProperty()
- .setName("NavPropertyETTwoKeyNavOne")
- .setType(EntityTypeProvider.nameETTwoKeyNav)
- .setNullable(false);
+ .setName("NavPropertyETTwoKeyNavOne")
+ .setType(EntityTypeProvider.nameETTwoKeyNav)
+ .setNullable(false);
public static final NavigationProperty navPropertyETTwoKeyNavOne_ETTwoKeyNav = new NavigationProperty()
- .setName("NavPropertyETTwoKeyNavOne")
- .setType(EntityTypeProvider.nameETTwoKeyNav);
+ .setName("NavPropertyETTwoKeyNavOne")
+ .setType(EntityTypeProvider.nameETTwoKeyNav);
public static final NavigationProperty navPropertyETTwoPrimOne_ETTwoPrim = new NavigationProperty()
- .setName("NavPropertyETTwoPrimOne")
- .setType(EntityTypeProvider.nameETTwoPrim)
- .setNullable(false);
+ .setName("NavPropertyETTwoPrimOne")
+ .setType(EntityTypeProvider.nameETTwoPrim)
+ .setNullable(false);
public static final NavigationProperty navPropertyETAllPrimOne_ETAllPrim = new NavigationProperty()
- .setName("NavPropertyETAllPrimOne")
- .setType(EntityTypeProvider.nameETAllPrim);
+ .setName("NavPropertyETAllPrimOne")
+ .setType(EntityTypeProvider.nameETAllPrim);
// EnumProperties --------------------------------------------------------------------------------------------------
public static final Property propertyEnumString_ENString = new Property()
- .setName("PropertyEnumString")
- .setType(EnumTypeProvider.nameENString);
+ .setName("PropertyEnumString")
+ .setType(EnumTypeProvider.nameENString);
public static final Property collPropertyEnumString_ENString = new Property()
- .setName("CollPropertyEnumString")
- .setType(EnumTypeProvider.nameENString)
- .setCollection(true);
+ .setName("CollPropertyEnumString")
+ .setType(EnumTypeProvider.nameENString)
+ .setCollection(true);
// TypeDefinition Properties ---------------------------------------------------------------------------------------
public static final Property propertyTypeDefinition_TDString = new Property()
- .setName("PropertyDefString")
- .setType(TypeDefinitionProvider.nameTDString)
- .setMaxLength(15);
+ .setName("PropertyDefString")
+ .setType(TypeDefinitionProvider.nameTDString)
+ .setMaxLength(15);
public static final Property collPropertyTypeDefinition_TDString = new Property()
- .setName("CollPropertyDefString")
- .setType(TypeDefinitionProvider.nameTDString)
- .setMaxLength(15)
- .setCollection(true);
+ .setName("CollPropertyDefString")
+ .setType(TypeDefinitionProvider.nameTDString)
+ .setMaxLength(15)
+ .setCollection(true);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de3f3453/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
index c467f2e..6c48d73 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
@@ -574,15 +574,15 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
@Test
public void validJsonValueForPrimPropertyInComplexTypeNull() throws Exception {
final String entityString = "{"
- + "\"PropertyComp\":{\"PropertyInt16\":null,\"PropertyString\":\"TEST A\"}"
+ + "\"PropertyComp\":{\"PropertyString\":\"TEST A\",\"PropertyInt16\":null}"
+ "}";
InputStream stream = new ByteArrayInputStream(entityString.getBytes());
ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
Entity entity = deserializer.entity(stream, edm.getEntityType(
- new FullQualifiedName("Namespace1_Alias", "ETMixPrimCollComp")));
+ new FullQualifiedName("Namespace1_Alias", "ETCompAllPrim")));
- assertNull(entity.getProperty("PropertyComp").asComplex().get(0).getValue());
- assertEquals("TEST A", entity.getProperty("PropertyComp").asComplex().get(1).getValue());
+ assertEquals("TEST A", entity.getProperty("PropertyComp").asComplex().get(0).getValue());
+ assertNull(entity.getProperty("PropertyComp").asComplex().get(1).getValue());
}
@Test
@@ -1148,6 +1148,85 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
}
@Test(expected = DeserializerException.class)
+ public void invalidNullValueForComplexTypeNullableFalse() throws Exception {
+ final String entityString = "{"
+ + "\"PropertyComp\":null"
+ + "}";
+ InputStream stream = new ByteArrayInputStream(entityString.getBytes());
+ ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
+ try {
+ deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETTwoKeyNav")));
+ } catch (DeserializerException e) {
+ assertEquals(DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, e.getMessageKey());
+ throw e;
+ }
+ }
+
+ @Test(expected = DeserializerException.class)
+ public void invalidNullValueForPrimBeforeComplexTypeNullableFalse() throws Exception {
+ final String entityString = "{"
+ + "\"PropertyInt16\": null, \"PropertyString\": \"321\", "
+ + "\"PropertyComp\":{\"PropertyInt16\": null, "
+ + "\"PropertyComp\": {\"PropertyString\":\"StringValue\"}}"
+ + "}";
+ InputStream stream = new ByteArrayInputStream(entityString.getBytes());
+ ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
+ try {
+ deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETTwoKeyNav")));
+ } catch (DeserializerException e) {
+ assertEquals(DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, e.getMessageKey());
+ throw e;
+ }
+ }
+
+ @Test(expected = DeserializerException.class)
+ public void invalidNullValueForComplexTypePropertyNullableFalse() throws Exception {
+ final String entityString = "{"
+ + "\"PropertyInt16\": 123, "
+ + "\"PropertyCompTwoPrim\":{\"PropertyInt16\": null, \"PropertyString\":\"StringValue\"}"
+ + "}";
+ InputStream stream = new ByteArrayInputStream(entityString.getBytes());
+ ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
+ try {
+ deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETKeyNav")));
+ } catch (DeserializerException e) {
+ assertEquals(DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, e.getMessageKey());
+ throw e;
+ }
+ }
+
+ @Test(expected = DeserializerException.class)
+ public void invalidNullValueForPrimCollectionNullableFalse() throws Exception {
+ final String entityString = "{"
+ + "\"CollPropertyString\":["
+ + "null,"
+ + "\"StringValue_1\",\"TEST 3\"]}";
+ InputStream stream = new ByteArrayInputStream(entityString.getBytes());
+ ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
+ try {
+ deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETCollAllPrim")));
+ } catch (DeserializerException e) {
+ assertEquals(DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, e.getMessageKey());
+ throw e;
+ }
+ }
+
+ @Test(expected = DeserializerException.class)
+ public void invalidNullValueForPrimIntCollectionNullableFalse() throws Exception {
+ final String entityString = "{"
+ + "\"CollPropertyInt16\":[123,\"null\",4711]"
+ + "}";
+ InputStream stream = new ByteArrayInputStream(entityString.getBytes());
+ ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
+ try {
+ deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETCollAllPrim")));
+ } catch (DeserializerException e) {
+ assertEquals(DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, e.getMessageKey());
+ throw e;
+ }
+ }
+
+ @Test(expected = DeserializerException.class)
public void provokedPrimitiveTypeException() throws Exception {
final String entityString = "{"
+ "\"PropertyInt16\":32767000000000000000000000000000000000000"