mirror of
https://github.com/apache/olingo-odata4.git
synced 2025-03-07 00:59:08 +00:00
[OLINGO-530] New Edm Entity Type for Deserializer tests
This commit is contained in:
parent
5e9fa5431d
commit
a0ebaef72a
@ -35,7 +35,7 @@ public class DeserializerException extends ODataTranslatedException {
|
||||
/** parameter: propertyName */ INVALID_NULL_PROPERTY,
|
||||
/** parameter: keyName */ UNKOWN_CONTENT,
|
||||
/** parameter: propertyName */ INVALID_VALUE_FOR_PROPERTY,
|
||||
/** parameter: propertyName */ INVALID_TYPE_FOR_PROPERTY,
|
||||
/** parameter: propertyName */ INVALID_JSON_TYPE_FOR_PROPERTY,
|
||||
VALUE_ARRAY_NOT_PRESENT,
|
||||
VALUE_TAG_MUST_BE_AN_ARRAY,
|
||||
INVALID_ENTITY,
|
||||
|
@ -306,7 +306,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
|
||||
if (edmProperty.isCollection()) {
|
||||
if (!jsonNode.isArray()) {
|
||||
throw new DeserializerException("Value for property: " + edmProperty.getName()
|
||||
+ " must be an arrat but is not.", DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY,
|
||||
+ " must be an arrat but is not.", DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY,
|
||||
edmProperty.getName());
|
||||
}
|
||||
List<Object> valueArray = new ArrayList<Object>();
|
||||
@ -370,7 +370,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
|
||||
break;
|
||||
default:
|
||||
throw new DeserializerException("Invalid Type Kind for a property found: " + edmProperty.getType().getKind(),
|
||||
DeserializerException.MessageKeys.INVALID_TYPE_FOR_PROPERTY, edmProperty.getName());
|
||||
DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, edmProperty.getName());
|
||||
}
|
||||
|
||||
} else {
|
||||
@ -416,7 +416,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
|
||||
break;
|
||||
default:
|
||||
throw new DeserializerException("Invalid Type Kind for a property found: " + edmProperty.getType().getKind(),
|
||||
DeserializerException.MessageKeys.INVALID_TYPE_FOR_PROPERTY, edmProperty.getName());
|
||||
DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, edmProperty.getName());
|
||||
}
|
||||
}
|
||||
return property;
|
||||
@ -426,7 +426,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
|
||||
if (jsonNode.isArray() || !jsonNode.isContainerNode()) {
|
||||
throw new DeserializerException(
|
||||
"Inavlid value for property: " + edmComplexProperty.getName() + " must not be an array or primitive value.",
|
||||
DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, edmComplexProperty.getName());
|
||||
DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, edmComplexProperty.getName());
|
||||
}
|
||||
// Even if there are no properties defined we have to give back an empty list
|
||||
List<Property> propertyList = new ArrayList<Property>();
|
||||
@ -476,7 +476,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
|
||||
if (!jsonNode.isValueNode()) {
|
||||
throw new DeserializerException(
|
||||
"Inavlid value for property: " + edmProperty.getName() + " must not be an object or array.",
|
||||
DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, edmProperty.getName());
|
||||
DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, edmProperty.getName());
|
||||
}
|
||||
try {
|
||||
EdmEnumType edmEnumType = (EdmEnumType) edmProperty.getType();
|
||||
@ -497,7 +497,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
|
||||
if (!jsonNode.isValueNode()) {
|
||||
throw new DeserializerException(
|
||||
"Inavlid value for property: " + edmProperty.getName() + " must not be an object or array.",
|
||||
DeserializerException.MessageKeys.INVALID_TYPE_FOR_PROPERTY, edmProperty.getName());
|
||||
DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, edmProperty.getName());
|
||||
}
|
||||
try {
|
||||
EdmPrimitiveType edmPrimitiveType = (EdmPrimitiveType) edmProperty.getType();
|
||||
|
@ -185,7 +185,7 @@ public class MetadataDocumentXmlSerializer {
|
||||
for (EdmTypeDefinition definition : typeDefinitions) {
|
||||
writer.writeEmptyElement(XML_TYPE_DEFINITION);
|
||||
writer.writeAttribute(XML_NAME, definition.getName());
|
||||
writer.writeAttribute(XML_TYPE, getFullQualifiedName(definition.getUnderlyingType(), false));
|
||||
writer.writeAttribute(XML_UNDERLYING_TYPE, getFullQualifiedName(definition.getUnderlyingType(), false));
|
||||
|
||||
// Facets
|
||||
if (definition.getMaxLength() != null) {
|
||||
|
@ -45,11 +45,12 @@ public class ComplexTypeProvider {
|
||||
"CTNavFiveProp");
|
||||
public static final FullQualifiedName nameCTPrim = new FullQualifiedName(SchemaProvider.NAMESPACE, "CTPrim");
|
||||
public static final FullQualifiedName nameCTPrimComp = new FullQualifiedName(SchemaProvider.NAMESPACE, "CTPrimComp");
|
||||
public static final FullQualifiedName nameCTPrimEnum = new FullQualifiedName(SchemaProvider.NAMESPACE, "CTPrimEnum");
|
||||
public static final FullQualifiedName nameCTTwoBase = new FullQualifiedName(SchemaProvider.NAMESPACE, "CTTwoBase");
|
||||
public static final FullQualifiedName nameCTTwoBasePrimCompNav =
|
||||
new FullQualifiedName(SchemaProvider.NAMESPACE, "CTTwoBasePrimCompNav");
|
||||
public static final FullQualifiedName nameCTTwoPrim = new FullQualifiedName(SchemaProvider.NAMESPACE, "CTTwoPrim");
|
||||
public static final FullQualifiedName nameCTMixEnumTypeDefColl = new FullQualifiedName(SchemaProvider.NAMESPACE,
|
||||
"CTMixEnumTypeDefColl");
|
||||
|
||||
public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
|
||||
|
||||
@ -157,19 +158,21 @@ public class ComplexTypeProvider {
|
||||
PropertyProvider.navPropertyETKeyNavOne_ETKeyNav,
|
||||
PropertyProvider.collectionNavPropertyETKeyNavMany_ETKeyNav));
|
||||
|
||||
} else if (complexTypeName.equals(nameCTPrimEnum)) {
|
||||
return new ComplexType()
|
||||
.setName("CTPrimEnum")
|
||||
.setProperties(Arrays.asList(PropertyProvider.propertyInt16, PropertyProvider.propertyEnumString_ENString));
|
||||
|
||||
} else if (complexTypeName.equals(nameCTTwoBasePrimCompNav)) {
|
||||
return new ComplexType()
|
||||
.setName("CTTwoBasePrimCompNav")
|
||||
.setBaseType(nameCTBasePrimCompNav);
|
||||
|
||||
} else if (complexTypeName.equals(nameCTMixEnumTypeDefColl)) {
|
||||
return new ComplexType()
|
||||
.setName(nameCTMixEnumTypeDefColl.getName())
|
||||
.setProperties(Arrays.asList(
|
||||
PropertyProvider.propertyEnumString_ENString,
|
||||
PropertyProvider.collPropertyEnumString_ENString,
|
||||
PropertyProvider.propertyTypeDefinition_TDString,
|
||||
PropertyProvider.collPropertyTypeDefinition_TDString));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -95,6 +95,7 @@ public class ContainerProvider {
|
||||
entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBaseTwoKeyNav"));
|
||||
entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompMixPrimCollComp"));
|
||||
entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESFourKeyAlias"));
|
||||
entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMixEnumTypeDefCollComp"));
|
||||
|
||||
// Singletons
|
||||
List<Singleton> singletons = new ArrayList<Singleton>();
|
||||
@ -262,6 +263,9 @@ public class ContainerProvider {
|
||||
return new EntitySet()
|
||||
.setName("ESFourKeyAlias")
|
||||
.setType(EntityTypeProvider.nameETFourKeyAlias);
|
||||
} else if (name.equals("ESMixEnumTypeDefCollComp")) {
|
||||
return new EntitySet().setName("ESMixEnumTypeDefCollComp").setType(
|
||||
EntityTypeProvider.nameETMixEnumTypeDefCollComp);
|
||||
}
|
||||
}
|
||||
|
||||
@ -269,12 +273,12 @@ public class ContainerProvider {
|
||||
}
|
||||
|
||||
public ActionImport getActionImport(final FullQualifiedName entityContainer, final String name)
|
||||
throws ODataException {
|
||||
throws ODataException {
|
||||
if (entityContainer.equals(nameContainer)) {
|
||||
if (name.equals(AIRT_STRING)) {
|
||||
return new ActionImport()
|
||||
.setName(AIRT_STRING)
|
||||
.setAction(ActionProvider.nameUARTString);
|
||||
.setName(AIRT_STRING)
|
||||
.setAction(ActionProvider.nameUARTString);
|
||||
|
||||
} else if (name.equals(AIRT_COLL_STRING_TWO_PARAM)) {
|
||||
return new ActionImport()
|
||||
|
@ -76,6 +76,9 @@ public class EntityTypeProvider {
|
||||
public static final FullQualifiedName nameETAbstractBase = new FullQualifiedName(SchemaProvider.NAMESPACE,
|
||||
"ETAbstractBase");
|
||||
|
||||
public static final FullQualifiedName nameETMixEnumTypeDefCollComp = new FullQualifiedName(SchemaProvider.NAMESPACE,
|
||||
"ETMixEnumTypeDefCollComp");
|
||||
|
||||
public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
|
||||
if (entityTypeName.equals(nameETAllPrim)) {
|
||||
return new EntityType()
|
||||
@ -336,12 +339,10 @@ public class EntityTypeProvider {
|
||||
PropertyProvider.propertyComp_CTPrimComp_NotNullable,
|
||||
new Property().setName("PropertyCompNav").setType(ComplexTypeProvider.nameCTBasePrimCompNav)
|
||||
.setNullable(false),
|
||||
PropertyProvider.propertyCompEnum_CTPrimEnum_NotNullable,
|
||||
PropertyProvider.collPropertyComp_CTPrimComp,
|
||||
new Property().setName("CollPropertyCompNav").setType(ComplexTypeProvider.nameCTNavFiveProp)
|
||||
.setCollection(true),
|
||||
PropertyProvider.collPropertyString, PropertyProvider.propertyCompTwoPrim_CTTwoPrim,
|
||||
PropertyProvider.propertyEnumString_ENString
|
||||
PropertyProvider.collPropertyString, PropertyProvider.propertyCompTwoPrim_CTTwoPrim
|
||||
))
|
||||
.setNavigationProperties(Arrays.asList(
|
||||
new NavigationProperty()
|
||||
@ -417,6 +418,18 @@ public class EntityTypeProvider {
|
||||
.setKey(Arrays.asList(new PropertyRef().setPropertyName("PropertyInt16")))
|
||||
.setProperties(Arrays.asList(
|
||||
PropertyProvider.propertyInt16_NotNullable));
|
||||
} else if (entityTypeName.equals(nameETMixEnumTypeDefCollComp)) {
|
||||
return new EntityType()
|
||||
.setName(nameETMixEnumTypeDefCollComp.getName())
|
||||
.setKey(Arrays.asList(new PropertyRef().setPropertyName("PropertyInt16")))
|
||||
.setProperties(Arrays.asList(
|
||||
PropertyProvider.propertyInt16_NotNullable,
|
||||
PropertyProvider.propertyEnumString_ENString,
|
||||
PropertyProvider.collPropertyEnumString_ENString,
|
||||
PropertyProvider.propertyTypeDefinition_TDString,
|
||||
PropertyProvider.collPropertyTypeDefinition_TDString,
|
||||
PropertyProvider.propertyComp_CTMixEnumTypeDefColl,
|
||||
PropertyProvider.propertyCompColl_CTMixEnumTypeDefColl));
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -508,11 +508,6 @@ public class PropertyProvider {
|
||||
.setName("PropertyCompComp")
|
||||
.setType(ComplexTypeProvider.nameCTCompComp);
|
||||
|
||||
public static final Property propertyCompEnum_CTPrimEnum_NotNullable = new Property()
|
||||
.setName("PropertyCompEnum")
|
||||
.setType(ComplexTypeProvider.nameCTPrimEnum)
|
||||
.setNullable(false);
|
||||
|
||||
public static final Property propertyCompTwoPrim_CTTwoPrim = new Property()
|
||||
.setName("PropertyCompTwoPrim")
|
||||
.setType(ComplexTypeProvider.nameCTTwoPrim);
|
||||
@ -521,6 +516,15 @@ public class PropertyProvider {
|
||||
.setName("PropertyMixedPrimCollComp")
|
||||
.setType(ComplexTypeProvider.nameCTMixPrimCollComp);
|
||||
|
||||
public static final Property propertyComp_CTMixEnumTypeDefColl = new Property()
|
||||
.setName("PropertyCTMixEnumTypeDefColl")
|
||||
.setType(ComplexTypeProvider.nameCTMixEnumTypeDefColl);
|
||||
|
||||
public static final Property propertyCompColl_CTMixEnumTypeDefColl = new Property()
|
||||
.setName("PropertyCTMixEnumTypeDefColl")
|
||||
.setType(ComplexTypeProvider.nameCTMixEnumTypeDefColl)
|
||||
.setCollection(true);
|
||||
|
||||
// Navigation Properties -------------------------------------------------------------------------------------------
|
||||
public static final NavigationProperty collectionNavPropertyETKeyNavMany_ETKeyNav = new NavigationProperty()
|
||||
.setName("NavPropertyETKeyNavMany")
|
||||
@ -588,6 +592,18 @@ public class PropertyProvider {
|
||||
.setName("PropertyEnumString")
|
||||
.setType(EnumTypeProvider.nameENString);
|
||||
|
||||
// TypeDefinition Properties ---------------------------------------------------------------------------------------
|
||||
public static final Property collPropertyEnumString_ENString = new Property()
|
||||
.setName("PropertyEnumString")
|
||||
.setType(EnumTypeProvider.nameENString)
|
||||
.setCollection(true);
|
||||
|
||||
// TypeDefinition Properties ---------------------------------------------------------------------------------------
|
||||
public static final Property propertyTypeDefinition_TDString = new Property()
|
||||
.setName("PropertyTypeDefinitionString")
|
||||
.setType(TypeDefinitionProvider.nameTDString);
|
||||
|
||||
public static final Property collPropertyTypeDefinition_TDString = new Property()
|
||||
.setName("CollPropertyTypeDefinitionString")
|
||||
.setType(TypeDefinitionProvider.nameTDString)
|
||||
.setCollection(true);
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ import org.apache.olingo.server.api.edm.provider.EntityType;
|
||||
import org.apache.olingo.server.api.edm.provider.EnumType;
|
||||
import org.apache.olingo.server.api.edm.provider.Function;
|
||||
import org.apache.olingo.server.api.edm.provider.Schema;
|
||||
import org.apache.olingo.server.api.edm.provider.TypeDefinition;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -77,6 +78,7 @@ public class SchemaProvider {
|
||||
entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETKeyPrimNav));
|
||||
entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETAbstract));
|
||||
entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETAbstractBase));
|
||||
entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETMixEnumTypeDefCollComp));
|
||||
|
||||
// ComplexTypes
|
||||
List<ComplexType> complexType = new ArrayList<ComplexType>();
|
||||
@ -92,13 +94,16 @@ public class SchemaProvider {
|
||||
complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTCompCollComp));
|
||||
complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTPrimComp));
|
||||
complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTNavFiveProp));
|
||||
complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTPrimEnum));
|
||||
complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTBasePrimCompNav));
|
||||
complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTTwoBasePrimCompNav));
|
||||
complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTCompNav));
|
||||
complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTMixEnumTypeDefColl));
|
||||
|
||||
// TypeDefinitions
|
||||
|
||||
List<TypeDefinition> typeDefinitions = new ArrayList<TypeDefinition>();
|
||||
schema.setTypeDefinitions(typeDefinitions);
|
||||
typeDefinitions.add(prov.getTypeDefinition(TypeDefinitionProvider.nameTDString));
|
||||
|
||||
// Actions
|
||||
List<Action> actions = new ArrayList<Action>();
|
||||
schema.setActions(actions);
|
||||
|
@ -18,12 +18,19 @@
|
||||
*/
|
||||
package org.apache.olingo.server.tecsvc.provider;
|
||||
|
||||
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
|
||||
import org.apache.olingo.commons.api.edm.FullQualifiedName;
|
||||
import org.apache.olingo.server.api.edm.provider.TypeDefinition;
|
||||
|
||||
public class TypeDefinitionProvider {
|
||||
|
||||
public static final FullQualifiedName nameTDString = new FullQualifiedName(SchemaProvider.NAMESPACE, "TDString");
|
||||
|
||||
public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) {
|
||||
if (nameTDString.equals(typeDefinitionName)) {
|
||||
return new TypeDefinition().setName(nameTDString.getName()).setUnderlyingType(
|
||||
EdmPrimitiveTypeKind.String.getFullQualifiedName());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -39,6 +39,7 @@ import org.apache.olingo.commons.api.format.ODataFormat;
|
||||
import org.apache.olingo.server.api.OData;
|
||||
import org.apache.olingo.server.api.deserializer.DeserializerException;
|
||||
import org.apache.olingo.server.api.deserializer.ODataDeserializer;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTest {
|
||||
@ -240,6 +241,44 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Test
|
||||
public void eTMixPrimCollCompMIssingPropertyInComplexType() throws Exception {
|
||||
final String entityString = "{"
|
||||
+ "\"PropertyComp\":{\"PropertyInt16\":111},"
|
||||
+ "\"CollPropertyComp\":["
|
||||
+ "{\"PropertyInt16\":123},"
|
||||
+ "{\"PropertyInt16\":456},"
|
||||
+ "{\"PropertyInt16\":789}]}";
|
||||
|
||||
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")));
|
||||
assertNotNull(entity);
|
||||
List<Property> properties = entity.getProperties();
|
||||
assertNotNull(properties);
|
||||
assertEquals(2, properties.size());
|
||||
|
||||
Property complexProperty = entity.getProperty("PropertyComp");
|
||||
assertEquals(ValueType.COMPLEX, complexProperty.getValueType());
|
||||
List<Property> complexPropertyValues = (List<Property>) complexProperty.getValue();
|
||||
assertEquals(1, complexPropertyValues.size());
|
||||
|
||||
Property property = entity.getProperty("CollPropertyComp");
|
||||
assertEquals(ValueType.COLLECTION_COMPLEX, property.getValueType());
|
||||
|
||||
assertTrue(property.getValue() instanceof List);
|
||||
List<? extends Object> asCollection = property.asCollection();
|
||||
assertEquals(3, asCollection.size());
|
||||
|
||||
for (Object arrayElement : asCollection) {
|
||||
assertTrue(arrayElement instanceof List);
|
||||
List<Object> castedArrayElement = (List<Object>) arrayElement;
|
||||
assertEquals(1, castedArrayElement.size());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void simpleEntityWithContextURL() throws Exception {
|
||||
String entityString =
|
||||
@ -377,6 +416,30 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
||||
assertTrue(bindingToMany.getBindingLinks().isEmpty());
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@SuppressWarnings("unchecked")
|
||||
@Test
|
||||
public void eTTwoKeyNavEnumTest() throws Exception {
|
||||
String entityString = "{"
|
||||
+ "\"PropertyEnumString\" : 2,"
|
||||
+ "\"PropertyCompEnum\" : {"
|
||||
+ "\"PropertyEnumString\" : 2"
|
||||
+ "}}";
|
||||
|
||||
InputStream stream = new ByteArrayInputStream(entityString.getBytes());
|
||||
ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
|
||||
Entity entity =
|
||||
deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETTwoKeyNav")));
|
||||
|
||||
Property enumProperty = entity.getProperty("PropertyEnumString");
|
||||
assertNotNull(enumProperty);
|
||||
assertEquals((short) 2, enumProperty.getValue());
|
||||
|
||||
Property complexProperty = entity.getProperty("PropertyCompEnum");
|
||||
List<Property> value = (List<Property>) complexProperty.getValue();
|
||||
assertEquals((short) 2, value.get(0).getValue());
|
||||
}
|
||||
|
||||
// ---------------------------------- Negative Tests -----------------------------------------------------------
|
||||
|
||||
@Test(expected = DeserializerException.class)
|
||||
@ -894,7 +957,6 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void invalidJsonValueForPrimTypeArray() throws Exception {
|
||||
@ -905,11 +967,11 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
||||
try {
|
||||
deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETAllPrim")));
|
||||
} catch (DeserializerException e) {
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void invalidJsonValueForPrimTypeObject() throws Exception {
|
||||
String entityString =
|
||||
@ -919,11 +981,237 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
||||
try {
|
||||
deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETAllPrim")));
|
||||
} catch (DeserializerException e) {
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void invalidJsonValueForPrimCollectionTypeObject() throws Exception {
|
||||
final String entityString = "{"
|
||||
+ "\"CollPropertyString\":"
|
||||
+ "{\"Employee1@company.example\":1234}"
|
||||
+ "}";
|
||||
InputStream stream = new ByteArrayInputStream(entityString.getBytes());
|
||||
ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
|
||||
try {
|
||||
deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETMixPrimCollComp")));
|
||||
} catch (DeserializerException e) {
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void invalidJsonValueForComplexTypeTypeString() throws Exception {
|
||||
final String entityString = "{"
|
||||
+ "\"PropertyComp\":\"InvalidString\""
|
||||
+ "}";
|
||||
InputStream stream = new ByteArrayInputStream(entityString.getBytes());
|
||||
ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
|
||||
try {
|
||||
deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETMixPrimCollComp")));
|
||||
} catch (DeserializerException e) {
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void invalidJsonValueForComplexTypeNull() 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", "ETMixPrimCollComp")));
|
||||
} catch (DeserializerException e) {
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void invalidJsonValueForComplexCollectionNullValue() throws Exception {
|
||||
final String entityString = "{"
|
||||
+ "\"CollPropertyComp\":["
|
||||
+ "null,"
|
||||
+ "{\"PropertyInt16\":789,\"PropertyString\":\"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", "ETMixPrimCollComp")));
|
||||
} catch (DeserializerException e) {
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void invalidJsonValueForPrimPropertyInComplexTypeNull() throws Exception {
|
||||
final String entityString = "{"
|
||||
+ "\"PropertyComp\":{\"PropertyInt16\":null,\"PropertyString\":\"TEST A\"}"
|
||||
+ "}";
|
||||
InputStream stream = new ByteArrayInputStream(entityString.getBytes());
|
||||
ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
|
||||
try {
|
||||
deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETMixPrimCollComp")));
|
||||
} catch (DeserializerException e) {
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void provokedPrimitiveTypeException() throws Exception {
|
||||
final String entityString = "{"
|
||||
+ "\"PropertyInt16\":32767000000000000000000000000000000000000"
|
||||
+ "}";
|
||||
InputStream stream = new ByteArrayInputStream(entityString.getBytes());
|
||||
ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON);
|
||||
try {
|
||||
deserializer.entity(stream, edm.getEntityType(new FullQualifiedName("Namespace1_Alias", "ETMixPrimCollComp")));
|
||||
} catch (DeserializerException e) {
|
||||
assertEquals(DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void eTTwoKeyNavInvalidEnumValueNull() throws Exception {
|
||||
String entityString = "{"
|
||||
+ "\"PropertyEnumString\" : null,"
|
||||
+ "\"PropertyCompEnum\" : {"
|
||||
+ "\"PropertyEnumString\" : 2"
|
||||
+ "}}";
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void eTTwoKeyNavInvalidComplexEnumValueNull() throws Exception {
|
||||
String entityString = "{"
|
||||
+ "\"PropertyEnumString\" : 2,"
|
||||
+ "\"PropertyCompEnum\" : {"
|
||||
+ "\"PropertyEnumString\" : 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;
|
||||
}
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void eTTwoKeyNavInvalidEnumValueArray() throws Exception {
|
||||
String entityString = "{"
|
||||
+ "\"PropertyEnumString\" : [],"
|
||||
+ "\"PropertyCompEnum\" : {"
|
||||
+ "\"PropertyEnumString\" : 2"
|
||||
+ "}}";
|
||||
|
||||
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_JSON_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void eTTwoKeyNavInvalidEnumValueObject() throws Exception {
|
||||
String entityString = "{"
|
||||
+ "\"PropertyEnumString\" : {},"
|
||||
+ "\"PropertyCompEnum\" : {"
|
||||
+ "\"PropertyEnumString\" : 2"
|
||||
+ "}}";
|
||||
|
||||
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_JSON_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void eTTwoKeyNavInvalidEnumValue() throws Exception {
|
||||
String entityString = "{"
|
||||
+ "\"PropertyEnumString\" : \"invalid\","
|
||||
+ "\"PropertyCompEnum\" : {"
|
||||
+ "\"PropertyEnumString\" : 2"
|
||||
+ "}}";
|
||||
|
||||
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_VALUE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test(expected = DeserializerException.class)
|
||||
public void eTTwoKeyNavInvalidEnumValueByPrimitiveTypeException() throws Exception {
|
||||
String entityString = "{"
|
||||
+ "\"PropertyEnumString\" : 18,"
|
||||
+ "\"PropertyCompEnum\" : {"
|
||||
+ "\"PropertyEnumString\" : 2"
|
||||
+ "}}";
|
||||
|
||||
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_VALUE_FOR_PROPERTY, e.getMessageKey());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
// @Test(expected = DeserializerException.class)
|
||||
// public void invalidJsonValueForPrimCollectionTypeObject() throws Exception {
|
||||
// final String entityString = "{"
|
||||
// + "\"PropertyInt16\":32767,"
|
||||
// + "\"CollPropertyString\":"
|
||||
// + "[\"Employee1@company.example\",\"Employee2@company.example\",\"Employee3@company.example\"],"
|
||||
// + "\"PropertyComp\":{\"PropertyInt16\":111,\"PropertyString\":\"TEST A\"},"
|
||||
// + "\"CollPropertyComp\":["
|
||||
// + "{\"PropertyInt16\":123,\"PropertyString\":\"TEST 1\"},"
|
||||
// + "{\"PropertyInt16\":456,\"PropertyString\":\"TEST 2\"},"
|
||||
// + "{\"PropertyInt16\":789,\"PropertyString\":\"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", "ETMixPrimCollComp")));
|
||||
// } catch (DeserializerException e) {
|
||||
// assertEquals(DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, e.getMessageKey());
|
||||
// throw e;
|
||||
// }
|
||||
// }
|
||||
|
||||
private void checkPropertyJsonType(String entityString) throws DeserializerException {
|
||||
InputStream stream = new ByteArrayInputStream(entityString.getBytes());
|
||||
|
@ -1127,10 +1127,10 @@ public class TestFullResourcePath {
|
||||
@Test
|
||||
public void runEsNameKeyCast() throws Exception {
|
||||
// testUri.runEx("ESTwoPrim(1)/olingo.odata.test1.ETBase(1)")
|
||||
// .isExSemantic(UriParserSemanticException.MessageKeys.xxx);
|
||||
// .isExSemantic(UriParserSemanticException.MessageKeys.xxx);
|
||||
|
||||
// testUri.runEx("ESTwoPrim/olingo.odata.test1.ETBase(1)/olingo.odata.test1.ETTwoBase(1)")
|
||||
// .isExSemantic(UriParserSemanticException.MessageKeys.xxx);
|
||||
// .isExSemantic(UriParserSemanticException.MessageKeys.xxx);
|
||||
|
||||
testUri.runEx("ESBase/olingo.odata.test1.ETTwoPrim(1)")
|
||||
.isExSemantic(UriParserSemanticException.MessageKeys.INCOMPATIBLE_TYPE_FILTER);
|
||||
@ -2393,7 +2393,7 @@ public class TestFullResourcePath {
|
||||
|
||||
testUri.run("ESTwoKeyNav(PropertyInt16=1,PropertyString='2')",
|
||||
"$expand=olingo.odata.test1.ETBaseTwoKeyNav"
|
||||
+ "/NavPropertyETTwoKeyNavMany/olingo.odata.test1.ETTwoBaseTwoKeyNav")
|
||||
+ "/NavPropertyETTwoKeyNavMany/olingo.odata.test1.ETTwoBaseTwoKeyNav")
|
||||
.isKind(UriInfoKind.resource).goPath().first()
|
||||
.isKeyPredicate(0, "PropertyInt16", "1")
|
||||
.isKeyPredicate(1, "PropertyString", "'2'")
|
||||
@ -4452,36 +4452,39 @@ public class TestFullResourcePath {
|
||||
@Test
|
||||
public void testHas() throws ExpressionVisitException, ODataApplicationException, UriParserException {
|
||||
|
||||
testFilter.runOnETTwoKeyNav("PropertyEnumString has olingo.odata.test1.ENString'String1'")
|
||||
testFilter.runOnETMixEnumTypeDefCollComp("PropertyEnumString has olingo.odata.test1.ENString'String1'")
|
||||
.is("<<PropertyEnumString> has <olingo.odata.test1.ENString<String1>>>")
|
||||
.isBinary(BinaryOperatorKind.HAS)
|
||||
.root().left().goPath().isComplex("PropertyEnumString").isType(EnumTypeProvider.nameENString)
|
||||
.goUpFilterValidator()
|
||||
.root().right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String1"));
|
||||
|
||||
testFilter.runOnETTwoKeyNav("PropertyCompEnum/PropertyEnumString has olingo.odata.test1.ENString'String2'")
|
||||
.is("<<PropertyCompEnum/PropertyEnumString> has <olingo.odata.test1.ENString<String2>>>")
|
||||
testFilter.runOnETMixEnumTypeDefCollComp(
|
||||
"PropertyCTMixEnumTypeDefColl/PropertyEnumString has olingo.odata.test1.ENString'String2'")
|
||||
.is("<<PropertyCTMixEnumTypeDefColl/PropertyEnumString> has <olingo.odata.test1.ENString<String2>>>")
|
||||
.isBinary(BinaryOperatorKind.HAS)
|
||||
.root().left().goPath()
|
||||
.first().isComplex("PropertyCompEnum")
|
||||
.first().isComplex("PropertyCTMixEnumTypeDefColl")
|
||||
.n().isComplex("PropertyEnumString").isType(EnumTypeProvider.nameENString)
|
||||
.isType(EnumTypeProvider.nameENString)
|
||||
.goUpFilterValidator()
|
||||
.root().right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String2"));
|
||||
|
||||
testFilter.runOnETTwoKeyNav(
|
||||
"PropertyCompEnum/PropertyEnumString has olingo.odata.test1.ENString'String2' eq true")
|
||||
.is("<<<PropertyCompEnum/PropertyEnumString> has <olingo.odata.test1.ENString<String2>>> eq <true>>")
|
||||
testFilter
|
||||
.runOnETMixEnumTypeDefCollComp(
|
||||
"PropertyCTMixEnumTypeDefColl/PropertyEnumString has olingo.odata.test1.ENString'String2' eq true")
|
||||
.is("<<<PropertyCTMixEnumTypeDefColl/PropertyEnumString> has " +
|
||||
"<olingo.odata.test1.ENString<String2>>> eq <true>>")
|
||||
.isBinary(BinaryOperatorKind.EQ)
|
||||
.root().left()
|
||||
.isBinary(BinaryOperatorKind.HAS)
|
||||
.root().left().left().goPath()
|
||||
.first().isComplex("PropertyCompEnum")
|
||||
.first().isComplex("PropertyCTMixEnumTypeDefColl")
|
||||
.n().isComplex("PropertyEnumString").isType(EnumTypeProvider.nameENString)
|
||||
.goUpFilterValidator()
|
||||
.root().left().right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String2"));
|
||||
|
||||
testFilter.runOnETTwoKeyNav("PropertyEnumString has olingo.odata.test1.ENString'String3'")
|
||||
testFilter.runOnETMixEnumTypeDefCollComp("PropertyEnumString has olingo.odata.test1.ENString'String3'")
|
||||
.is("<<PropertyEnumString> has <olingo.odata.test1.ENString<String3>>>")
|
||||
.isBinary(BinaryOperatorKind.HAS)
|
||||
.root().left().goPath()
|
||||
@ -4490,7 +4493,7 @@ public class TestFullResourcePath {
|
||||
.goUpFilterValidator()
|
||||
.root().right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String3"));
|
||||
|
||||
testFilter.runOnETTwoKeyNav("PropertyEnumString has olingo.odata.test1.ENString'String,String3'")
|
||||
testFilter.runOnETMixEnumTypeDefCollComp("PropertyEnumString has olingo.odata.test1.ENString'String,String3'")
|
||||
.is("<<PropertyEnumString> has <olingo.odata.test1.ENString<String,String3>>>")
|
||||
.isBinary(BinaryOperatorKind.HAS)
|
||||
.root().left().goPath()
|
||||
@ -4499,7 +4502,7 @@ public class TestFullResourcePath {
|
||||
.goUpFilterValidator()
|
||||
.root().right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String", "String3"));
|
||||
|
||||
testFilter.runOnETTwoKeyNav("PropertyEnumString has null")
|
||||
testFilter.runOnETMixEnumTypeDefCollComp("PropertyEnumString has null")
|
||||
.is("<<PropertyEnumString> has <null>>")
|
||||
.root()
|
||||
.isBinary(BinaryOperatorKind.HAS)
|
||||
@ -4716,36 +4719,38 @@ public class TestFullResourcePath {
|
||||
.goUpFilterValidator()
|
||||
.root().right().isLiteral("12:34:55.12345678901");
|
||||
|
||||
testFilter.runOnETTwoKeyNav("PropertyEnumString eq olingo.odata.test1.ENString'String1'")
|
||||
testFilter.runOnETMixEnumTypeDefCollComp("PropertyEnumString eq olingo.odata.test1.ENString'String1'")
|
||||
.is("<<PropertyEnumString> eq <olingo.odata.test1.ENString<String1>>>")
|
||||
.isBinary(BinaryOperatorKind.EQ)
|
||||
.root().left().goPath().isComplex("PropertyEnumString").isType(EnumTypeProvider.nameENString)
|
||||
.goUpFilterValidator()
|
||||
.root().right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String1"));
|
||||
|
||||
testFilter.runOnETTwoKeyNav("PropertyEnumString eq olingo.odata.test1.ENString'String2'")
|
||||
testFilter.runOnETMixEnumTypeDefCollComp("PropertyEnumString eq olingo.odata.test1.ENString'String2'")
|
||||
.is("<<PropertyEnumString> eq <olingo.odata.test1.ENString<String2>>>")
|
||||
.isBinary(BinaryOperatorKind.EQ)
|
||||
.root().left().goPath().isComplex("PropertyEnumString").isType(EnumTypeProvider.nameENString)
|
||||
.goUpFilterValidator()
|
||||
.root().right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String2"));
|
||||
|
||||
testFilter.runOnETTwoKeyNav("PropertyCompEnum/PropertyEnumString eq olingo.odata.test1.ENString'String3'")
|
||||
.is("<<PropertyCompEnum/PropertyEnumString> eq <olingo.odata.test1.ENString<String3>>>")
|
||||
testFilter.runOnETMixEnumTypeDefCollComp(
|
||||
"PropertyCTMixEnumTypeDefColl/PropertyEnumString eq olingo.odata.test1.ENString'String3'")
|
||||
.is("<<PropertyCTMixEnumTypeDefColl/PropertyEnumString> eq <olingo.odata.test1.ENString<String3>>>")
|
||||
.isBinary(BinaryOperatorKind.EQ)
|
||||
.root().left().goPath()
|
||||
.first().isComplex("PropertyCompEnum")
|
||||
.first().isComplex("PropertyCTMixEnumTypeDefColl")
|
||||
.n().isComplex("PropertyEnumString").isType(EnumTypeProvider.nameENString).goUpFilterValidator()
|
||||
.root().right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String3"));
|
||||
|
||||
testFilter.runOnETTwoKeyNav("PropertyCompEnum/PropertyEnumString eq PropertyCompEnum/PropertyEnumString")
|
||||
.is("<<PropertyCompEnum/PropertyEnumString> eq <PropertyCompEnum/PropertyEnumString>>")
|
||||
testFilter.runOnETMixEnumTypeDefCollComp(
|
||||
"PropertyCTMixEnumTypeDefColl/PropertyEnumString eq PropertyCTMixEnumTypeDefColl/PropertyEnumString")
|
||||
.is("<<PropertyCTMixEnumTypeDefColl/PropertyEnumString> eq <PropertyCTMixEnumTypeDefColl/PropertyEnumString>>")
|
||||
.isBinary(BinaryOperatorKind.EQ)
|
||||
.root().left().goPath()
|
||||
.first().isComplex("PropertyCompEnum")
|
||||
.first().isComplex("PropertyCTMixEnumTypeDefColl")
|
||||
.n().isComplex("PropertyEnumString").isType(EnumTypeProvider.nameENString).goUpFilterValidator()
|
||||
.root().right().goPath()
|
||||
.first().isComplex("PropertyCompEnum")
|
||||
.first().isComplex("PropertyCTMixEnumTypeDefColl")
|
||||
.n().isComplex("PropertyEnumString").isType(EnumTypeProvider.nameENString).goUpFilterValidator();
|
||||
|
||||
}
|
||||
@ -5065,12 +5070,12 @@ public class TestFullResourcePath {
|
||||
.goUpFilterValidator()
|
||||
.goOrder(0).right().isLiteral("12:34:55.123456789012");
|
||||
|
||||
testFilter.runOrderByOnETTwoKeyNav("PropertyEnumString eq olingo.odata.test1.ENString'String1'")
|
||||
testFilter.runOrderByOnETMixEnumTypeDefCollComp("PropertyEnumString eq olingo.odata.test1.ENString'String1'")
|
||||
.isSortOrder(0, false)
|
||||
.goOrder(0).left().goPath().isComplex("PropertyEnumString").goUpFilterValidator()
|
||||
.goOrder(0).right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String1"));
|
||||
|
||||
testFilter.runOrderByOnETTwoKeyNav("PropertyEnumString eq olingo.odata.test1.ENString'String1' desc")
|
||||
testFilter.runOrderByOnETMixEnumTypeDefCollComp("PropertyEnumString eq olingo.odata.test1.ENString'String1' desc")
|
||||
.isSortOrder(0, true)
|
||||
.goOrder(0).left().goPath().isComplex("PropertyEnumString").goUpFilterValidator()
|
||||
.goOrder(0).right().isEnum(EnumTypeProvider.nameENString, Arrays.asList("String1"));
|
||||
|
@ -112,6 +112,10 @@ public class FilterValidator implements TestValidator {
|
||||
public FilterValidator runOrderByOnETTwoKeyNav(final String orderBy) throws UriParserException {
|
||||
return runUriOrderBy("ESTwoKeyNav", "$orderby=" + orderBy.trim());
|
||||
}
|
||||
|
||||
public FilterValidator runOrderByOnETMixEnumTypeDefCollComp(final String orderBy) throws UriParserException {
|
||||
return runUriOrderBy("ESMixEnumTypeDefCollComp", "$orderby=" + orderBy.trim());
|
||||
}
|
||||
|
||||
public FilterValidator runOrderByOnETTwoKeyNavEx(final String orderBy) throws UriParserException {
|
||||
return runUriOrderByEx("ESTwoKeyNav", "$orderby=" + orderBy.trim());
|
||||
@ -120,6 +124,10 @@ public class FilterValidator implements TestValidator {
|
||||
public FilterValidator runOnETTwoKeyNav(final String filter) throws UriParserException {
|
||||
return runUri("ESTwoKeyNav", "$filter=" + filter.trim());
|
||||
}
|
||||
|
||||
public FilterValidator runOnETMixEnumTypeDefCollComp(final String filter) throws UriParserException {
|
||||
return runUri("ESMixEnumTypeDefCollComp", "$filter=" + filter.trim());
|
||||
}
|
||||
|
||||
public FilterValidator runOnETTwoKeyNavSingle(final String filter) throws UriParserException {
|
||||
return runUri("SINav", "$filter=" + filter.trim());
|
||||
|
Loading…
x
Reference in New Issue
Block a user