Repository: olingo-odata4 Updated Branches: refs/heads/master 37a1e110c -> fd2592d4e
[OLINGO-1004] edited edm for consistency added new entity types, entity sets, actions and functions to test overloading and default values, tests are not implemented yet. Signed-off-by: Christian Amend <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/fd2592d4 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/fd2592d4 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/fd2592d4 Branch: refs/heads/master Commit: fd2592d4e28e6b85e97be60d36acd9e8f8163d45 Parents: 37a1e11 Author: Morten Riedel <[email protected]> Authored: Wed Aug 17 09:40:26 2016 +0200 Committer: Christian Amend <[email protected]> Committed: Wed Aug 17 14:01:39 2016 +0200 ---------------------------------------------------------------------- .../olingo/server/tecsvc/data/ActionData.java | 7 + .../server/tecsvc/provider/ActionProvider.java | 130 ++++++++++++- .../tecsvc/provider/ContainerProvider.java | 51 ++++- .../tecsvc/provider/EntityTypeProvider.java | 30 ++- .../tecsvc/provider/FunctionProvider.java | 184 ++++++++++++++++++- .../tecsvc/provider/PropertyProvider.java | 112 ++++++++++- .../server/tecsvc/provider/SchemaProvider.java | 19 +- .../json/ODataJsonSerializerTest.java | 58 +++++- .../serializer/xml/ODataXmlSerializerTest.java | 101 +++++++++- 9 files changed, 666 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd2592d4/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java index 51f51c8..1b3e1f4 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java @@ -55,6 +55,13 @@ public class ActionData { return DataCreator.createPrimitive(null, "UARTString string value"); } else if ("UARTByteNineParam".equals(name)) { return FunctionData.primitiveComplexFunction("UFNRTByteNineParam", parameters, null); + }else if("_A_RTTimeOfDay_".equals(name)){ + Parameter paramTimeOfDay = parameters.get("ParameterTimeOfDay"); + Calendar timeOfDay = Calendar.getInstance(); + if (paramTimeOfDay != null && !paramTimeOfDay.isNull()) { + timeOfDay = (Calendar) paramTimeOfDay.asPrimitive(); + } + return DataCreator.createPrimitive("ParameterTimeOfDay", timeOfDay); } throw new DataProviderException("Action " + name + " is not yet implemented.", HttpStatusCode.NOT_IMPLEMENTED); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd2592d4/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java index e7ec643..4f1559c 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java @@ -55,7 +55,29 @@ public class ActionProvider { public static final FullQualifiedName nameBAETAllPrimRT = new FullQualifiedName(SchemaProvider.NAMESPACE, "BAETAllPrimRT"); - + + public static final FullQualifiedName nameBAETTwoPrimRTString = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BAETTwoPrimRTString"); + + public static final FullQualifiedName nameBAETTwoPrimRTCollString = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BAETTwoPrimRTCollString"); + + public static final FullQualifiedName nameBAETTwoPrimRTCTAllPrim = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BAETTwoPrimRTCTAllPrim"); + + public static final FullQualifiedName nameBAETTwoPrimRTCollCTAllPrim = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BAETTwoPrimRTCollCTAllPrim"); + + public static final FullQualifiedName nameBAETCompAllPrimRTETCompAllPrim = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BAETCompAllPrimRTETCompAllPrim"); + + public static final FullQualifiedName nameBAETTwoKeyNavRTETTwoKeyNavParam = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BAETTwoKeyNavRTETTwoKeyNavParam"); + + // Unknown Actions + public static final FullQualifiedName name_A_RTTimeOfDay_ = + new FullQualifiedName(SchemaProvider.NAMESPACE, "_A_RTTimeOfDay_"); + // Unbound Actions public static final FullQualifiedName nameUARTString = new FullQualifiedName(SchemaProvider.NAMESPACE, "UARTString"); @@ -84,8 +106,10 @@ public class ActionProvider { public static List<CsdlAction> getBoundActionsForEntityType(FullQualifiedName entityType) throws ODataException { FullQualifiedName[] actionNames = {nameBAESAllPrimRTETAllPrim, nameBAESTwoKeyNavRTESTwoKeyNav, nameBAESTwoKeyNavRTESKeyNav, nameBAETBaseTwoKeyNavRTETBaseTwoKeyNav, - nameBAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav,nameBA_RTETTwoKeyNav, - nameBAESAllPrimRT,nameBAETAllPrimRT}; + nameBAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav, nameBA_RTETTwoKeyNav,nameBAESAllPrimRT, + nameBAETAllPrimRT, nameBAETTwoPrimRTString, nameBAETTwoPrimRTCollString, nameBAETTwoPrimRTCTAllPrim, + nameBAETTwoPrimRTCollCTAllPrim, nameBAETCompAllPrimRTETCompAllPrim, nameBAETTwoKeyNavRTETTwoKeyNavParam, + name_A_RTTimeOfDay_ }; List<CsdlAction> actions = new ArrayList<CsdlAction>(); for (FullQualifiedName fqn:actionNames) { @@ -101,7 +125,39 @@ public class ActionProvider { } public static List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException { - if (actionName.equals(nameUARTString)) { + + if(actionName.equals(name_A_RTTimeOfDay_)){ + return Arrays.asList( + new CsdlAction().setName(name_A_RTTimeOfDay_.getName()) + .setParameters(Arrays.asList( + new CsdlParameter().setName("ParameterTimeOfDay").setType(PropertyProvider.nameTimeOfDay) + .setNullable(false), + new CsdlParameter().setName("ParameterAny").setType(PropertyProvider.nameString) + .setNullable(false))) + .setBound(false) + .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay)), + + new CsdlAction().setName(name_A_RTTimeOfDay_.getName()) + .setParameters(Arrays.asList( + new CsdlParameter().setName("ParameterTimeOfDay").setType(PropertyProvider.nameTimeOfDay) + .setNullable(false), + new CsdlParameter().setName("ParameterAny").setType(PropertyProvider.nameString) + .setNullable(false))) + .setBound(true) + .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay)), + + new CsdlAction().setName(name_A_RTTimeOfDay_.getName()) + .setParameters(Arrays.asList( + new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString) + .setNullable(false), + new CsdlParameter().setName("ParameterTimeOfDay").setType(PropertyProvider.nameTimeOfDay) + .setNullable(false), + new CsdlParameter().setName("ParameterAny").setType(PropertyProvider.nameString) + .setNullable(false))) + .setBound(true) + .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay))); + + }else if (actionName.equals(nameUARTString)) { return Collections.singletonList( new CsdlAction().setName(nameUARTString.getName()) .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameString))); @@ -288,8 +344,70 @@ public class ActionProvider { .setNullable(false) .setCollection(true) .setType(EntityTypeProvider.nameETAllPrim)))); - } - + + }else if(actionName.equals(nameBAETTwoPrimRTString)){ + return Collections.singletonList( + new CsdlAction().setName(nameBAETTwoPrimRTString.getName()) + .setBound(true) + .setParameters(Collections.singletonList( + new CsdlParameter().setName("ParameterETTwoPrim").setType(EntityTypeProvider.nameETTwoPrim) + .setNullable(false))) + .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameString))); + + }else if(actionName.equals(nameBAETTwoPrimRTCollString)){ + return Collections.singletonList( + new CsdlAction().setName(nameBAETTwoPrimRTCollString.getName()) + .setBound(true) + .setParameters(Collections.singletonList( + new CsdlParameter().setName("ParameterETTwoPrim").setType(EntityTypeProvider.nameETTwoPrim) + .setNullable(false))) + .setReturnType(new CsdlReturnType() + .setType(PropertyProvider.nameString) + .setCollection(true))); + + }else if(actionName.equals(nameBAETTwoPrimRTCTAllPrim)){ + return Collections.singletonList( + new CsdlAction().setName(nameBAETTwoPrimRTCTAllPrim.getName()) + .setBound(true) + .setParameters(Collections.singletonList( + new CsdlParameter().setName("ParameterETTwoPrim").setType(EntityTypeProvider.nameETTwoPrim) + .setNullable(false))) + .setReturnType(new CsdlReturnType() + .setType(ComplexTypeProvider.nameCTAllPrim))); + + }else if(actionName.equals(nameBAETTwoPrimRTCollCTAllPrim)){ + return Collections.singletonList( + new CsdlAction().setName(nameBAETTwoPrimRTCollCTAllPrim.getName()) + .setBound(true) + .setParameters(Collections.singletonList( + new CsdlParameter().setName("ParameterETTwoPrim").setType(EntityTypeProvider.nameETTwoPrim) + .setNullable(false))) + .setReturnType(new CsdlReturnType() + .setType(ComplexTypeProvider.nameCTAllPrim) + .setCollection(true))); + + }else if(actionName.equals(nameBAETCompAllPrimRTETCompAllPrim)){ + return Collections.singletonList( + new CsdlAction().setName(nameBAETCompAllPrimRTETCompAllPrim.getName()) + .setBound(true) + .setParameters(Collections.singletonList( + new CsdlParameter().setName("ParameterETCompAllPrim").setType(EntityTypeProvider.nameETCompAllPrim) + .setNullable(false))) + .setReturnType(new CsdlReturnType() + .setType(EntityTypeProvider.nameETCompAllPrim))); + + }else if(actionName.equals(nameBAETTwoKeyNavRTETTwoKeyNavParam)){ + return Collections.singletonList( + new CsdlAction().setName(nameBAETTwoKeyNavRTETTwoKeyNavParam.getName()) + .setBound(true) + .setEntitySetPath("BindingParam/NavPropertyETTwoKeyNavOne") + .setParameters(Arrays.asList( + new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav) + .setNullable(false), + new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16) + .setNullable(false))) + .setReturnType(new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav))); + } return null; } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd2592d4/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java index 459e842..18fd7a0 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java @@ -49,6 +49,7 @@ public class ContainerProvider { public static final String AIRT_COLL_ES_ALL_PRIM_PARAM = "AIRTCollESAllPrimParam"; public static final String AIRT = "AIRT"; public static final String AIRT_PARAM = "AIRTParam"; + public static final String AI_RT_TIME_OF_DAY = "AIRTTimeOfDay"; public static final String AIRT_TWO_PARAM = "AIRTTwoParam"; public static final String AIRT_BYTE_NINE_PARAM = "AIRTByteNineParam"; public static final String ES_STREAM = "ESStream"; @@ -75,6 +76,7 @@ public class ContainerProvider { List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>(); container.setEntitySets(entitySets); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllPrim")); + entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllPrimDefaultValues")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCollAllPrim")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoPrim")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMixPrimCollComp")); @@ -124,7 +126,8 @@ public class ContainerProvider { actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_PARAM)); actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_TWO_PARAM)); actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_BYTE_NINE_PARAM)); - + actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AI_RT_TIME_OF_DAY)); + // FunctionImports List<CsdlFunctionImport> functionImports = new ArrayList<CsdlFunctionImport>(); container.setFunctionImports(functionImports); @@ -151,6 +154,7 @@ public class ContainerProvider { functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTCollCTNavFiveProp")); functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollESKeyNavContParam")); functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTByteNineParam")); + functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FIC_RTTimeOfDay_")); List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>(); annotations.add(new CsdlAnnotation().setTerm(TermProvider.TERM_DESCRIPTION.getFullQualifiedNameAsString()) @@ -164,7 +168,19 @@ public class ContainerProvider { public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String name) throws ODataException { if (entityContainer == nameContainer) { - if (name.equals("ESAllPrim")) { + if (name.equals("ESAllPrimDefaultValues")) { + return new CsdlEntitySet() + .setName("ESAllPrimDefaultValues") + .setType(EntityTypeProvider.nameETAllPrimDefaultValues) + .setTitle("All PropertyTypes EntitySet with default values") + .setAnnotations(Arrays.asList(new CsdlAnnotation().setTerm("Core.Description").setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, + "Contains entities with all primitive types with default values")), + new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "true")) + )); + + }else if (name.equals("ESAllPrim")) { return new CsdlEntitySet() .setName("ESAllPrim") .setType(EntityTypeProvider.nameETAllPrim) @@ -691,9 +707,19 @@ public class ContainerProvider { return new CsdlActionImport() .setName(AIRT_BYTE_NINE_PARAM) .setAction(ActionProvider.nameUARTByteNineParam); - } - } + } else if(name.equals(AI_RT_TIME_OF_DAY)){ + return new CsdlActionImport() + .setName(AI_RT_TIME_OF_DAY) + .setAction(ActionProvider.name_A_RTTimeOfDay_) + .setAnnotations(Arrays.asList(new CsdlAnnotation().setTerm("Core.Description").setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, + "Action Import returns the given time of day")), + new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "true")) + )); + } + } return null; } @@ -701,7 +727,22 @@ public class ContainerProvider { throws ODataException { if (entityContainer.equals(nameContainer)) { - if (name.equals("FINRTInt16")) { + + if (name.equals("FIC_RTTimeOfDay_")){ + return new CsdlFunctionImport() + .setName(name) + .setAnnotations(Arrays.asList(new CsdlAnnotation().setTerm( + TermProvider.TERM_DESCRIPTION.getFullQualifiedNameAsString()).setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, + "Overload with same unbound parameter name and different " + + "type Composable Importing:Edm.TimeOfDay (Edm.TimeOfDay) " + + "Returning:Edm.TimeOfDay")), + new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "false")))) + .setFunction(FunctionProvider.name_FC_RTTimeOfDay_) + .setIncludeInServiceDocument(true); + + }else if (name.equals("FINRTInt16")) { return new CsdlFunctionImport() .setName(name) .setTitle("Simple FunctionImport") http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd2592d4/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 c327e8f..eac9743 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 @@ -34,6 +34,8 @@ public class EntityTypeProvider { public static final FullQualifiedName nameETAllNullable = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETAllNullable"); public static final FullQualifiedName nameETAllPrim = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETAllPrim"); + public static final FullQualifiedName nameETAllPrimDefaultValues = new FullQualifiedName(SchemaProvider.NAMESPACE, + "ETAllPrimDefaultValues"); public static final FullQualifiedName nameETBase = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETBase"); public static final FullQualifiedName nameETBaseTwoKeyNav = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETBaseTwoKeyNav"); @@ -84,7 +86,33 @@ public class EntityTypeProvider { public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException { - if (entityTypeName.equals(nameETAllPrim)) { + if(entityTypeName.equals(nameETAllPrimDefaultValues)){ + return new CsdlEntityType() + .setName("ETAllPrimDefaultValues") + .setKey(Arrays.asList( + new CsdlPropertyRef().setName("PropertyInt16"))) + .setProperties(Arrays.asList( + PropertyProvider.propertyInt16_NotNullable_WithDefaultValue, + PropertyProvider.propertyString_NotNullable_WithDefaultValue, + PropertyProvider.propertyBoolean_NotNullable_WithDefaultValue, + PropertyProvider.propertyByte_NotNullable_WithDefaultValue, + PropertyProvider.propertySByte_NotNullable_WithDefaultValue, + PropertyProvider.propertyInt32_NotNullable_WithDefaultValue, + PropertyProvider.propertyInt64_NotNullable_WithDefaultValue, + PropertyProvider.propertySingle_NotNullable_WithDefaultValue, + PropertyProvider.propertyDouble_NotNullable_WithDefaultValue, + PropertyProvider.propertyDecimal_Scale_NotNullable_WithDefaultValue, + PropertyProvider.propertyBinary_NotNullable_WithDefaultValue, + PropertyProvider.propertyDate_NotNullable_WithDefaultValue, + PropertyProvider.propertyDateTimeOffset_NotNullable_WithDefaultValue, + PropertyProvider.propertyDuration_NotNullable_WithDefaultValue, + PropertyProvider.propertyGuid_NotNullable_WithDefaultValue, + PropertyProvider.propertyTimeOfDay_NotNullable_WithDefaultValue, + PropertyProvider.propertyEnumString_ENString_NonNullable_WithDefaultValue, + PropertyProvider.propertyTypeDefinition_TDString_NonNullable_WithDefaultValue + )); + + }else if (entityTypeName.equals(nameETAllPrim)) { return new CsdlEntityType() .setName("ETAllPrim") .setKey(Arrays.asList( http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd2592d4/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java index f40bd7f..2776d2d 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java @@ -69,7 +69,10 @@ public class FunctionProvider { public static final FullQualifiedName nameBFCESTwoKeyNavRTCollCTTwoPrim = new FullQualifiedName(SchemaProvider.NAMESPACE, "BFCESTwoKeyNavRTCollCTTwoPrim"); - + + public static final FullQualifiedName nameBFNESTwoKeyNavRTString = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BFNESTwoKeyNavRTString"); + public static final FullQualifiedName nameBFCESTwoKeyNavRTCollString = new FullQualifiedName(SchemaProvider.NAMESPACE, "BFCESTwoKeyNavRTCollString"); @@ -126,6 +129,13 @@ public class FunctionProvider { public static final FullQualifiedName nameBFCESKeyNavRTESTwoKeyNav = new FullQualifiedName(SchemaProvider.NAMESPACE, "BFCESKeyNavRTESTwoKeyNav"); + + public static final FullQualifiedName nameBFCESTwoKeyNavRTCollDecimal = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BFCESTwoKeyNavRTCollDecimal"); + + // Unknown + public static final FullQualifiedName name_FC_RTTimeOfDay_ = + new FullQualifiedName(SchemaProvider.NAMESPACE, "_FC_RTTimeOfDay_"); // Unbound Functions public static final FullQualifiedName nameUFCRTCollCTTwoPrim = @@ -184,7 +194,12 @@ public class FunctionProvider { public static final FullQualifiedName nameUFNRTByteNineParam = new FullQualifiedName(SchemaProvider.NAMESPACE, "UFNRTByteNineParam"); - + + public static final FullQualifiedName nameUFCRTCollDecimal = + new FullQualifiedName(SchemaProvider.NAMESPACE, "UFCRTCollDecimal"); + + public static final FullQualifiedName nameUFCRTDecimal = + new FullQualifiedName(SchemaProvider.NAMESPACE, "UFCRTDecimal"); public static List<CsdlFunction> getBoundFunctionsForType(FullQualifiedName entityType) throws ODataException { FullQualifiedName[] funcNames = { @@ -218,7 +233,10 @@ public class FunctionProvider { nameBFESTwoKeyNavRTESTwoKeyNav, nameBFCESTwoKeyNavRTCTNavFiveProp, nameBFCESTwoKeyNavRTCollCTNavFiveProp, - nameBFCESKeyNavRTESTwoKeyNav + nameBFCESKeyNavRTESTwoKeyNav, + nameBFCESTwoKeyNavRTCollDecimal, + nameBFNESTwoKeyNavRTString, + name_FC_RTTimeOfDay_ }; List<CsdlFunction> functions = new ArrayList<CsdlFunction>(); @@ -235,8 +253,132 @@ public class FunctionProvider { } public static List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException { - - if (functionName.equals(nameUFNRTInt16)) { + + if(functionName.equals(name_FC_RTTimeOfDay_)){ + List<CsdlFunction> functions = new ArrayList<CsdlFunction>(); + + functions.add(new CsdlFunction() + .setName(name_FC_RTTimeOfDay_.getName()) + .setParameters(Collections.singletonList( + new CsdlParameter() + .setName("ParameterTimeOfDay") + .setType(PropertyProvider.nameTimeOfDay) + .setNullable(false))) + .setComposable(true) + .setBound(true) + .setReturnType( + new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay))); + + functions.add( new CsdlFunction() + .setName(name_FC_RTTimeOfDay_.getName()) + .setParameters(Arrays.asList( + new CsdlParameter() + .setName("ParameterTimeOfDay") + .setType(PropertyProvider.nameTimeOfDay) + .setNullable(false), + new CsdlParameter() + .setName("ParameterAny") + .setType(PropertyProvider.nameString) + .setNullable(false))) + .setComposable(true) + .setBound(true) + .setReturnType( + new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay))); + + functions.add( new CsdlFunction() + .setName(name_FC_RTTimeOfDay_.getName()) + .setParameters(Arrays.asList( + new CsdlParameter() + .setName("ParameterTimeOfDay") + .setType(PropertyProvider.nameTimeOfDay) + .setNullable(false), + new CsdlParameter() + .setName("ParameterString") + .setType(PropertyProvider.nameString) + .setNullable(false), + new CsdlParameter() + .setName("ParameterAny") + .setType(PropertyProvider.nameInt32) + .setNullable(false))) + .setComposable(true) + .setBound(true) + .setReturnType( + new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay))); + + functions.add(new CsdlFunction() + .setName(name_FC_RTTimeOfDay_.getName()) + .setParameters(Collections.singletonList( + new CsdlParameter() + .setName("ParameterTimeOfDay") + .setType(PropertyProvider.nameTimeOfDay) + .setNullable(false))) + .setComposable(true) + .setBound(false) + .setReturnType( + new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay))); + + functions.add( new CsdlFunction() + .setName(name_FC_RTTimeOfDay_.getName()) + .setParameters(Arrays.asList( + new CsdlParameter() + .setName("ParameterTimeOfDay") + .setType(PropertyProvider.nameTimeOfDay) + .setNullable(false), + new CsdlParameter() + .setName("ParameterAny") + .setType(PropertyProvider.nameString) + .setNullable(false))) + .setComposable(true) + .setBound(false) + .setReturnType( + new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay))); + + functions.add( new CsdlFunction() + .setName(name_FC_RTTimeOfDay_.getName()) + .setParameters(Arrays.asList( + new CsdlParameter() + .setName("ParameterTimeOfDay") + .setType(PropertyProvider.nameTimeOfDay) + .setNullable(false), + new CsdlParameter() + .setName("ParameterString") + .setType(PropertyProvider.nameString) + .setNullable(false), + new CsdlParameter() + .setName("ParameterAny") + .setType(PropertyProvider.nameInt32) + .setNullable(false))) + .setComposable(true) + .setBound(false) + .setReturnType( + new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay))); + + return functions; + + }else if(functionName.equals(nameUFCRTCollDecimal)){ + return Collections.singletonList( + new CsdlFunction() + .setName(functionName.getName()) + .setParameters(Collections.<CsdlParameter> emptyList()) + .setComposable(true) + .setReturnType(new CsdlReturnType() + .setType(PropertyProvider.nameDecimal) + .setPrecision(12) + .setScale(5) + .setCollection(true))); + + }else if(functionName.equals(nameUFCRTDecimal)){ + return Collections.singletonList( + new CsdlFunction() + .setName(functionName.getName()) + .setParameters(Collections.<CsdlParameter> emptyList()) + .setComposable(true) + .setReturnType(new CsdlReturnType() + .setType(PropertyProvider.nameDecimal) + .setPrecision(12) + .setScale(5))); + + }else if (functionName.equals(nameUFNRTInt16)) { return Collections.singletonList( new CsdlFunction() .setName(functionName.getName()) @@ -649,6 +791,18 @@ public class FunctionProvider { .setComposable(true) .setReturnType( new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false))); + + } else if (functionName.equals(nameBFNESTwoKeyNavRTString)){ + return Collections.singletonList( + new CsdlFunction() + .setName("BFNESTwoKeyNavRTString") + .setBound(true) + .setParameters(Collections.singletonList( + new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav) + .setCollection(true).setNullable(false))) + .setComposable(false) + .setReturnType( + new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false))); } else if (functionName.equals(nameBFCESTwoKeyNavRTCollString)) { return Collections.singletonList( @@ -861,6 +1015,26 @@ public class FunctionProvider { .setComposable(true) .setReturnType( new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false))); + + } else if (functionName.equals(nameBFCESTwoKeyNavRTCollDecimal)){ + return Collections.singletonList( + new CsdlFunction() + .setName("BFCESTwoKeyNavRTCollDecimal") + .setBound(true) + .setParameters( + Collections.singletonList( + new CsdlParameter().setName("BindingParam") + .setType(EntityTypeProvider.nameETTwoKeyNav) + .setNullable(false) + .setCollection(true))) + .setComposable(true) + .setBound(true) + .setReturnType( + new CsdlReturnType().setType(PropertyProvider.nameDecimal) + .setPrecision(12) + .setScale(5) + .setCollection(true) + .setNullable(false))); } else if (functionName.equals(nameBFCETTwoKeyNavRTCTTwoPrim)) { return Collections.singletonList( http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd2592d4/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 42e253d..3abe050 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 @@ -332,6 +332,12 @@ public class PropertyProvider { .setType(nameBinary) .setNullable(false); + public static final CsdlProperty propertyBinary_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyBinary") + .setType(nameBinary) + .setDefaultValue("T0RhdGE") + .setNullable(false); + public static final CsdlProperty propertyBinary_ExplicitNullable = new CsdlProperty() .setName("PropertyBinary") .setType(nameBinary) @@ -346,6 +352,12 @@ public class PropertyProvider { .setType(nameBoolean) .setNullable(false); + public static final CsdlProperty propertyBoolean_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyBoolean") + .setType(nameBoolean) + .setDefaultValue("true") + .setNullable(false); + public static final CsdlProperty propertyBoolean_ExplicitNullable = new CsdlProperty() .setName("PropertyBoolean") .setType(nameBoolean) @@ -360,6 +372,12 @@ public class PropertyProvider { .setType(nameByte) .setNullable(false); + public static final CsdlProperty propertyByte_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyByte") + .setType(nameByte) + .setDefaultValue("255") + .setNullable(false); + public static final CsdlProperty propertyByte_ExplicitNullable = new CsdlProperty() .setName("PropertyByte") .setType(nameByte) @@ -374,6 +392,12 @@ public class PropertyProvider { .setType(nameDate) .setNullable(false); + public static final CsdlProperty propertyDate_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyDate") + .setType(nameDate) + .setDefaultValue("2016-06-27") + .setNullable(false); + public static final CsdlProperty propertyDate_ExplicitNullable = new CsdlProperty() .setName("PropertyDate") .setType(nameDate) @@ -393,6 +417,12 @@ public class PropertyProvider { .setType(nameDateTimeOffset) .setNullable(false); + public static final CsdlProperty propertyDateTimeOffset_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyDateTimeOffset") + .setType(nameDateTimeOffset) + .setDefaultValue("2016-06-27T14:52:23.123Z") + .setNullable(false); + public static final CsdlProperty propertyDateTimeOffset_ExplicitNullable = new CsdlProperty() .setName("PropertyDateTimeOffset") .setType(nameDateTimeOffset) @@ -414,6 +444,13 @@ public class PropertyProvider { .setType(nameDecimal) .setNullable(false); + public static final CsdlProperty propertyDecimal_Scale_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyDecimal") + .setType(nameDecimal) + .setScale(10) + .setDefaultValue("123.0123456789") + .setNullable(false); + public static final CsdlProperty propertyDecimal_ExplicitNullable = new CsdlProperty() .setName("PropertyDecimal") .setType(nameDecimal) @@ -428,6 +465,12 @@ public class PropertyProvider { .setType(nameDouble) .setNullable(false); + public static final CsdlProperty propertyDouble_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyDouble") + .setType(nameDouble) + .setDefaultValue("3.1415926535897931") + .setNullable(false); + public static final CsdlProperty propertyDouble_ExplicitNullable = new CsdlProperty() .setName("PropertyDouble") .setType(nameDouble) @@ -441,7 +484,13 @@ public class PropertyProvider { .setName("PropertyDuration") .setType(nameDuration) .setNullable(false); - + + public static final CsdlProperty propertyDuration_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyDuration") + .setType(nameDuration) + .setDefaultValue("P12DT23H59M59.999S") + .setNullable(false); + public static final CsdlProperty propertyDuration_ExplicitNullable = new CsdlProperty() .setName("PropertyDuration") .setType(nameDuration) @@ -456,6 +505,12 @@ public class PropertyProvider { .setType(nameGuid) .setNullable(false); + public static final CsdlProperty propertyGuid_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyGuid") + .setType(nameGuid) + .setDefaultValue("01234567-89ab-cdef-0123-456789abcdef") + .setNullable(false); + public static final CsdlProperty propertyGuid_ExplicitNullable = new CsdlProperty() .setName("PropertyGuid") .setType(nameGuid) @@ -470,6 +525,13 @@ public class PropertyProvider { .setType(nameInt16) .setNullable(false); + public static final CsdlProperty propertyInt16_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyInt16") + .setType(nameInt16) + .setDefaultValue("32767") + .setNullable(false); + + public static final CsdlProperty propertyInt16_ExplicitNullable = new CsdlProperty() .setName("PropertyInt16") .setType(nameInt16) @@ -484,6 +546,12 @@ public class PropertyProvider { .setType(nameInt32) .setNullable(false); + public static final CsdlProperty propertyInt32_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyInt32") + .setType(nameInt32) + .setDefaultValue("2147483647") + .setNullable(false); + public static final CsdlProperty propertyInt32_ExplicitNullable = new CsdlProperty() .setName("PropertyInt32") .setType(nameInt32) @@ -498,6 +566,12 @@ public class PropertyProvider { .setType(nameInt64) .setNullable(false); + public static final CsdlProperty propertyInt64_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyInt64") + .setType(nameInt64) + .setDefaultValue("9223372036854775807") + .setNullable(false); + public static final CsdlProperty propertyInt64_ExplicitNullable = new CsdlProperty() .setName("PropertyInt64") .setType(nameInt64) @@ -512,6 +586,12 @@ public class PropertyProvider { .setType(nameSByte) .setNullable(false); + public static final CsdlProperty propertySByte_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertySByte") + .setType(nameSByte) + .setDefaultValue("127") + .setNullable(false); + public static final CsdlProperty propertySByte_ExplicitNullable = new CsdlProperty() .setName("PropertySByte") .setType(nameSByte) @@ -526,6 +606,12 @@ public class PropertyProvider { .setType(nameSingle) .setNullable(false); + public static final CsdlProperty propertySingle_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertySingle") + .setType(nameSingle) + .setDefaultValue("1.23") + .setNullable(false); + public static final CsdlProperty propertySingle_ExplicitNullable = new CsdlProperty() .setName("PropertySingle") .setType(nameSingle) @@ -540,6 +626,12 @@ public class PropertyProvider { .setType(nameString) .setNullable(false); + public static final CsdlProperty propertyString_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyString") + .setType(nameString) + .setDefaultValue("abc") + .setNullable(false); + public static final CsdlProperty propertyString_ExplicitNullable = new CsdlProperty() .setName("PropertyString") .setType(nameString) @@ -559,6 +651,12 @@ public class PropertyProvider { .setType(nameTimeOfDay) .setNullable(false); + public static final CsdlProperty propertyTimeOfDay_NotNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyTimeOfDay") + .setType(nameTimeOfDay) + .setDefaultValue("07:59:59.999") + .setNullable(false); + public static final CsdlProperty propertyTimeOfDay_ExplicitNullable = new CsdlProperty() .setName("PropertyTimeOfDay") .setType(nameTimeOfDay) @@ -793,6 +891,12 @@ public class PropertyProvider { .setName("PropertyEnumString") .setType(EnumTypeProvider.nameENString) .setNullable(false); + + public static final CsdlProperty propertyEnumString_ENString_NonNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyEnumString") + .setType(EnumTypeProvider.nameENString) + .setDefaultValue("String1") + .setNullable(false); public static final CsdlProperty propertyEnumString_ENString = new CsdlProperty() .setName("PropertyEnumString") @@ -813,6 +917,12 @@ public class PropertyProvider { .setType(TypeDefinitionProvider.nameTDString) .setNullable(false); + public static final CsdlProperty propertyTypeDefinition_TDString_NonNullable_WithDefaultValue = new CsdlProperty() + .setName("PropertyDefString") + .setType(TypeDefinitionProvider.nameTDString) + .setDefaultValue("CustomString") + .setNullable(false); + public static final CsdlProperty collPropertyTypeDefinition_TDString = new CsdlProperty() .setName("CollPropertyDefString") .setType(TypeDefinitionProvider.nameTDString) http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd2592d4/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java index eb998b3..ac2f916 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java @@ -57,8 +57,9 @@ public class SchemaProvider { // EntityTypes List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>(); schema.setEntityTypes(entityTypes); - + entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETAllPrim)); + entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETAllPrimDefaultValues)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETCollAllPrim)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETTwoPrim)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETMixPrimCollComp)); @@ -116,6 +117,12 @@ public class SchemaProvider { actions.addAll(prov.getActions(ActionProvider.nameBAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav)); actions.addAll(prov.getActions(ActionProvider.nameBAETAllPrimRT)); actions.addAll(prov.getActions(ActionProvider.nameBAESAllPrimRT)); + actions.addAll(prov.getActions(ActionProvider.nameBAETTwoPrimRTString)); + actions.addAll(prov.getActions(ActionProvider.nameBAETTwoPrimRTCollString)); + actions.addAll(prov.getActions(ActionProvider.nameBAETTwoPrimRTCTAllPrim)); + actions.addAll(prov.getActions(ActionProvider.nameBAETTwoPrimRTCollCTAllPrim)); + actions.addAll(prov.getActions(ActionProvider.nameBAETCompAllPrimRTETCompAllPrim)); + actions.addAll(prov.getActions(ActionProvider.nameBAETTwoKeyNavRTETTwoKeyNavParam)); actions.addAll(prov.getActions(ActionProvider.nameUARTString)); actions.addAll(prov.getActions(ActionProvider.nameUARTCollStringTwoParam)); actions.addAll(prov.getActions(ActionProvider.nameUARTCTTwoPrimParam)); @@ -128,11 +135,13 @@ public class SchemaProvider { actions.addAll(prov.getActions(ActionProvider.nameUARTParam)); actions.addAll(prov.getActions(ActionProvider.nameUARTTwoParam)); actions.addAll(prov.getActions(ActionProvider.nameUARTByteNineParam)); - + actions.addAll(prov.getActions(ActionProvider.name_A_RTTimeOfDay_)); + // Functions List<CsdlFunction> functions = new ArrayList<CsdlFunction>(); schema.setFunctions(functions); - + + functions.addAll(prov.getFunctions(FunctionProvider.name_FC_RTTimeOfDay_)); functions.addAll(prov.getFunctions(FunctionProvider.nameUFNRTInt16)); functions.addAll(prov.getFunctions(FunctionProvider.nameUFCRTETKeyNav)); functions.addAll(prov.getFunctions(FunctionProvider.nameUFCRTETTwoKeyNav)); @@ -156,6 +165,8 @@ public class SchemaProvider { functions.addAll(prov.getFunctions(FunctionProvider.nameUFNRTCollCTNavFiveProp)); functions.addAll(prov.getFunctions(FunctionProvider.nameUFCRTCollETKeyNavContParam)); functions.addAll(prov.getFunctions(FunctionProvider.nameUFNRTByteNineParam)); + functions.addAll(prov.getFunctions(FunctionProvider.nameUFCRTCollDecimal)); + functions.addAll(prov.getFunctions(FunctionProvider.nameUFCRTDecimal)); functions.addAll(prov.getFunctions(FunctionProvider.nameBFC_RTESTwoKeyNav_)); functions.addAll(prov.getFunctions(FunctionProvider.nameBFCStringRTESTwoKeyNav)); @@ -187,6 +198,8 @@ public class SchemaProvider { functions.addAll(prov.getFunctions(FunctionProvider.nameBFCESKeyNavRTETKeyNavParam)); functions.addAll(prov.getFunctions(FunctionProvider.nameBFCCTPrimCompRTETTwoKeyNavParam)); functions.addAll(prov.getFunctions(FunctionProvider.nameBFCESKeyNavRTESTwoKeyNav)); + functions.addAll(prov.getFunctions(FunctionProvider.nameBFNESTwoKeyNavRTString)); + functions.addAll(prov.getFunctions(FunctionProvider.nameBFCESTwoKeyNavRTCollDecimal)); // functions.addAll(prov.getFunctions(FunctionProvider.nameBFCCTPrimCompRTESTwoKeyNavParam)); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd2592d4/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java index dae060a..568ae52 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java @@ -666,18 +666,68 @@ public class ODataJsonSerializerTest { + "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"value\":[{\"@odata.type\":\"#olingo.odata.test1.ETTwoPrim\",\"@odata.id\":\"ESTwoPrim(32766)\"," + "\"[email protected]\":\"#Int16\",\"PropertyInt16\":32766," - + "\"PropertyString\":\"Test String1\"}," + + "\"PropertyString\":\"Test String1\"," + +"\"#olingo.odata.test1.BAETTwoPrimRTString\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTString\"," + +"\"target\":\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTString\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCollString\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollString\"," + +"\"target\":\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTCollString\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"," + +"\"target\":\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"," + +"\"target\":\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"}" + + "}," + "{\"@odata.type\":\"#olingo.odata.test1.ETTwoPrim\",\"@odata.id\":\"ESTwoPrim(-365)\"," + "\"[email protected]\":\"#Int16\",\"PropertyInt16\":-365," + "\"PropertyString\":\"Test String2\"," - + "\"[email protected]\":\"ESTwoPrim(-365)/NavPropertyETAllPrimMany\"}," + + "\"[email protected]\":\"ESTwoPrim(-365)/NavPropertyETAllPrimMany\"," + +"\"#olingo.odata.test1.BAETTwoPrimRTString\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTString\"," + +"\"target\":\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTString\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCollString\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollString\"," + +"\"target\":\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTCollString\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"," + +"\"target\":\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"," + +"\"target\":\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"}}," + "{\"@odata.type\":\"#olingo.odata.test1.ETTwoPrim\",\"@odata.id\":\"ESTwoPrim(-32766)\"," + "\"[email protected]\":\"#Int16\",\"PropertyInt16\":-32766," - + "\"PropertyString\":null}," + + "\"PropertyString\":null," + +"\"#olingo.odata.test1.BAETTwoPrimRTString\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTString\"," + +"\"target\":\"ESTwoPrim(-32766)/olingo.odata.test1.BAETTwoPrimRTString\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCollString\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollString\"," + +"\"target\":\"ESTwoPrim(-32766)/olingo.odata.test1.BAETTwoPrimRTCollString\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"," + +"\"target\":\"ESTwoPrim(-32766)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"," + +"\"target\":\"ESTwoPrim(-32766)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"}}," + "{\"@odata.type\":\"#olingo.odata.test1.ETTwoPrim\",\"@odata.id\":\"ESTwoPrim(32767)\"," + "\"[email protected]\":\"#Int16\",\"PropertyInt16\":32767," + "\"PropertyString\":\"Test String4\"," - + "\"[email protected]\":\"ESAllPrim(32767)\"}]}"; + +"\"[email protected]\":\"ESAllPrim(32767)\"," + +"\"#olingo.odata.test1.BAETTwoPrimRTString\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTString\"," + +"\"target\":\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTString\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCollString\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollString\"," + +"\"target\":\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollString\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"," + +"\"target\":\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"}," + +"\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\":" + +"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"," + +"\"target\":\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"}" + +"}]}"; Assert.assertEquals(expectedResult, resultString); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd2592d4/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java index 381f862..7d718bd 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java @@ -615,6 +615,9 @@ public class ODataXmlSerializerTest { " </d:PropertyComp>\n" + " </m:properties>\n" + " </a:content>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETCompAllPrimRTETCompAllPrim\" " + + " title=\"olingo.odata.test1.BAETCompAllPrimRTETCompAllPrim\" " + + " target=\"ESCompAllPrim(32767)/olingo.odata.test1.BAETCompAllPrimRTETCompAllPrim\"/>" + "</a:entry>"; checkXMLEqual(expected, resultString); } @@ -1501,6 +1504,18 @@ public class ODataXmlSerializerTest { " <d:PropertyString>Test String4</d:PropertyString>\n" + " </m:properties>\n" + " </a:content>\n" + + "<m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTString\" "+ + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTString\"/>\n" + + "<m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollString\" "+ + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollString\"/>\n" + + "<m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" "+ + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"/>\n" + + "<m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" "+ + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"/>" + "</a:entry>\n" + ""; checkXMLEqual(expected, resultString); @@ -1587,6 +1602,18 @@ public class ODataXmlSerializerTest { " <d:PropertyString>Test String4</d:PropertyString>\n" + " </m:properties>\n" + " </a:content>\n" + + "<m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTString\" "+ + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTString\"/>\n" + + "<m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollString\" "+ + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollString\"/>\n" + + "<m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" "+ + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"/>\n" + + "<m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" "+ + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"/>" + "</a:entry>"; checkXMLEqual(expected, resultString); } @@ -1659,6 +1686,18 @@ public class ODataXmlSerializerTest { " <d:PropertyString>Test String4</d:PropertyString>\n" + " </m:properties>\n" + " </a:content>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTString\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTString\" " + + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollString\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTCollString\" " + + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" " + + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" " + + "target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"/>" + " </a:entry>\n" + " </m:inline>\n" + " </a:link>\n" + @@ -1694,6 +1733,18 @@ public class ODataXmlSerializerTest { " <d:PropertyString>Test String2</d:PropertyString>\n" + " </m:properties>\n" + " </a:content>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTString\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTString\" " + + "target=\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollString\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTCollString\" " + + "target=\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTCollString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" " + + "target=\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" " + + "target=\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"/>" + " </a:entry>\n" + " </a:feed>\n" + " </m:inline>\n" + @@ -1710,7 +1761,7 @@ public class ODataXmlSerializerTest { " target=\"ESAllPrim(32767)/olingo.odata.test1.BAETAllPrimRT\" />\n" + "</a:entry>\n" + ""; - checkXMLEqual(expected, resultString); + checkXMLEqual(expected, resultString); } @Test @@ -1909,6 +1960,18 @@ public class ODataXmlSerializerTest { " <d:PropertyString>Test String1</d:PropertyString>\n" + " </m:properties>\n" + " </a:content>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTString\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTString\" \n" + + " target=\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollString\" \n" + + " target=\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTCollString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" \n" + + " target=\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" " + + "title=\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" \n" + + " target=\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"/>" + " </a:entry>\n" + " <a:entry>\n" + " <a:id>ESTwoPrim(-32766)</a:id>\n" + @@ -1936,6 +1999,18 @@ public class ODataXmlSerializerTest { " <d:PropertyString m:null=\"true\" />\n" + " </m:properties>\n" + " </a:content>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTString\" \n" + + " target=\"ESTwoPrim(-32766)/olingo.odata.test1.BAETTwoPrimRTString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollString\" \n" + + " target=\"ESTwoPrim(-32766)/olingo.odata.test1.BAETTwoPrimRTCollString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" \n" + + " target=\"ESTwoPrim(-32766)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" \n" + + " target=\"ESTwoPrim(-32766)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"/>" + " </a:entry>\n" + " <a:entry>\n" + " <a:id>ESTwoPrim(32767)</a:id>\n" + @@ -1963,6 +2038,18 @@ public class ODataXmlSerializerTest { " <d:PropertyString>Test String4</d:PropertyString>\n" + " </m:properties>\n" + " </a:content>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTString\" \n" + + " target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollString\" \n" + + " target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" \n" + + " target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" \n" + + " target=\"ESTwoPrim(32767)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"/>" + " </a:entry>\n" + " </a:feed>\n" + " </m:inline>\n" + @@ -1989,6 +2076,18 @@ public class ODataXmlSerializerTest { " <d:PropertyString>Test String2</d:PropertyString>\n" + " </m:properties>\n" + " </a:content>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTString\" \n" + + " target=\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollString\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollString\" \n" + + " target=\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTCollString\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\" \n" + + " target=\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"/>\n" + + " <m:action metadata=\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" "+ + "title=\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\" \n" + + " target=\"ESTwoPrim(-365)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"/>" + "</a:entry>"; checkXMLEqual(expected, resultString); }
