From 37a1e110c6196c592a86c356fab8237dd12f122f Mon Sep 17 00:00:00 2001 From: Morten Riedel Date: Tue, 16 Aug 2016 16:55:57 +0200 Subject: [PATCH] [OLINGO-1004] edm clean up Signed-off-by: Christian Amend --- .../tecsvc/client/BoundOpearionITCase.java | 11 +- .../tecsvc/provider/ActionProvider.java | 12 +- .../tecsvc/provider/ComplexTypeProvider.java | 4 +- .../tecsvc/provider/ContainerProvider.java | 59 ++------ .../tecsvc/provider/EntityTypeProvider.java | 37 ----- .../tecsvc/provider/FunctionProvider.java | 55 ++------ .../tecsvc/provider/SchemaProvider.java | 9 +- .../core/PreconditionsValidatorTest.java | 8 +- .../json/ODataJsonSerializerTest.java | 4 - .../serializer/xml/MetadataDocumentTest.java | 7 +- .../xml/ODataXmlSerializerTest.java | 3 - .../core/uri/parser/TestFullResourcePath.java | 126 +++++++++--------- .../core/uri/parser/TestUriParserImpl.java | 4 +- 13 files changed, 109 insertions(+), 230 deletions(-) diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BoundOpearionITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BoundOpearionITCase.java index a37ab4901..e55a3f7d3 100644 --- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BoundOpearionITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BoundOpearionITCase.java @@ -24,9 +24,7 @@ import static org.junit.Assert.assertNull; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest; import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest; @@ -78,7 +76,7 @@ public class BoundOpearionITCase extends AbstractParamTecSvcITCase { List ecOperations = entitySet.getOperations(); assertNotNull(ecOperations); - assertEquals(4, ecOperations.size()); + assertEquals(3, ecOperations.size()); assertEquals("#olingo.odata.test1.BAESAllPrimRTETAllPrim", ecOperations.get(0).getMetadataAnchor()); assertEquals("olingo.odata.test1.BAESAllPrimRTETAllPrim", ecOperations.get(0).getTitle()); @@ -95,12 +93,7 @@ public class BoundOpearionITCase extends AbstractParamTecSvcITCase { assertEquals("olingo.odata.test1.BFNESAllPrimRTCTAllPrim", ecOperations.get(2).getTitle()); assertEquals("/ESAllPrim/olingo.odata.test1.BFNESAllPrimRTCTAllPrim", ecOperations.get(2).getTarget().toASCIIString()); - - assertEquals("#olingo.odata.test1.BFNESAllPrimRTCTAllPrim(Param2)", ecOperations.get(3).getMetadataAnchor()); - assertEquals("olingo.odata.test1.BFNESAllPrimRTCTAllPrim", ecOperations.get(3).getTitle()); - assertEquals("/ESAllPrim/olingo.odata.test1.BFNESAllPrimRTCTAllPrim(Param2=@Param2)", - ecOperations.get(3).getTarget().toASCIIString()); - + final List entities = entitySet.getEntities(); assertNotNull(entities); assertEquals(3, entities.size()); 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 39244b315..e7ec6435e 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 @@ -47,8 +47,8 @@ public class ActionProvider { public static final FullQualifiedName nameBAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav = new FullQualifiedName(SchemaProvider.NAMESPACE, "BAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav"); - public static final FullQualifiedName nameBAETTwoKeyNavRTETTwoKeyNav = - new FullQualifiedName(SchemaProvider.NAMESPACE, "BAETTwoKeyNavRTETTwoKeyNav"); + public static final FullQualifiedName nameBA_RTETTwoKeyNav = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BA_RTETTwoKeyNav"); public static final FullQualifiedName nameBAESAllPrimRT = new FullQualifiedName(SchemaProvider.NAMESPACE, "BAESAllPrimRT"); @@ -84,7 +84,7 @@ public class ActionProvider { public static List getBoundActionsForEntityType(FullQualifiedName entityType) throws ODataException { FullQualifiedName[] actionNames = {nameBAESAllPrimRTETAllPrim, nameBAESTwoKeyNavRTESTwoKeyNav, nameBAESTwoKeyNavRTESKeyNav, nameBAETBaseTwoKeyNavRTETBaseTwoKeyNav, - nameBAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav,nameBAETTwoKeyNavRTETTwoKeyNav, + nameBAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav,nameBA_RTETTwoKeyNav, nameBAESAllPrimRT,nameBAETAllPrimRT}; List actions = new ArrayList(); @@ -203,16 +203,16 @@ public class ActionProvider { .setCollection(true))) .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameByte))); - } else if (actionName.equals(nameBAETTwoKeyNavRTETTwoKeyNav)) { + } else if (actionName.equals(nameBA_RTETTwoKeyNav)) { return Arrays.asList( - new CsdlAction().setName(nameBAETTwoKeyNavRTETTwoKeyNav.getName()) + new CsdlAction().setName("BA_RTETTwoKeyNav") .setParameters(Collections.singletonList( new CsdlParameter().setName("ParameterETTwoKeyNav").setType(EntityTypeProvider.nameETTwoKeyNav) .setNullable(false))) .setBound(true) .setReturnType(new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav)), - new CsdlAction().setName(nameBAETTwoKeyNavRTETTwoKeyNav.getName()) + new CsdlAction().setName("BA_RTETTwoKeyNav") .setParameters(Collections.singletonList( new CsdlParameter().setName("ParameterETKeyNav").setType(EntityTypeProvider.nameETKeyNav) .setNullable(false))) diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java index b04b3d1f5..e93d9b94b 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java @@ -141,7 +141,7 @@ public class ComplexTypeProvider { .setProperties(Arrays.asList(PropertyProvider.propertyInt16)) .setNavigationProperties((Arrays.asList( PropertyProvider.collectionNavPropertyETTwoKeyNavOne_ETTwoKeyNav, - PropertyProvider.collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav_WithPartnerERKeyNavOne, + PropertyProvider.collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav, new CsdlNavigationProperty() .setName("NavPropertyETMediaOne") .setType(EntityTypeProvider.nameETMedia), @@ -166,8 +166,8 @@ public class ComplexTypeProvider { .setName("CTBasePrimCompNav") .setBaseType(nameCTPrimComp) .setNavigationProperties(Arrays.asList( - PropertyProvider.collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav_WithPartnerERKeyNavOne, PropertyProvider.collectionNavPropertyETTwoKeyNavOne_ETTwoKeyNav, + PropertyProvider.collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav, PropertyProvider.navPropertyETKeyNavOne_ETKeyNav, PropertyProvider.collectionNavPropertyETKeyNavMany_ETKeyNav)); 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 8dd07a83d..459e842f7 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 @@ -81,15 +81,12 @@ public class ContainerProvider { entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBase")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBase")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoKeyTwoPrim")); - entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBaseTwoKeyTwoPrim")); - entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBaseTwoKeyTwoPrim")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllKey")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompAllPrim")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompCollAllPrim")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompComp")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompCollComp")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMedia")); - entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyTwoKeyComp")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESInvisible")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESServerSidePaging")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllNullable")); @@ -140,7 +137,6 @@ public class ContainerProvider { functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTStringTwoParam")); functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollStringTwoParam")); functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTAllPrimTwoParam")); - functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTESMixPrimCollCompTwoParam")); functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollETMixPrimCollCompTwoParam")); functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTCollETMixPrimCollCompTwoParam")); functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollCTTwoPrim")); @@ -255,29 +251,7 @@ public class ContainerProvider { .setExpression(new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String) .setValue("Contains entities with two primitive types with two keys")), new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( - new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "false")))); - - } else if (name.equals("ESBaseTwoKeyTwoPrim")) { - return new CsdlEntitySet() - .setName("ESBaseTwoKeyTwoPrim") - .setType(EntityTypeProvider.nameETBaseTwoKeyTwoPrim) - .setAnnotations(Arrays.asList( - new CsdlAnnotation().setTerm("Core.Description") - .setExpression(new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String) - .setValue("Contains entities with two primitive types with two keys")), - new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( - new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "false")))); - - } else if (name.equals("ESTwoBaseTwoKeyTwoPrim")) { - return new CsdlEntitySet() - .setName("ESTwoBaseTwoKeyTwoPrim") - .setType(EntityTypeProvider.nameETTwoBaseTwoKeyTwoPrim) - .setAnnotations(Arrays.asList( - new CsdlAnnotation().setTerm("Core.Description") - .setExpression(new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String) - .setValue("Contains entities with two primitive types with two keys")), - new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( - new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "false")))); + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "true")))); } else if (name.equals("ESAllKey")) { return new CsdlEntitySet() @@ -346,17 +320,6 @@ public class ContainerProvider { new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "true")))); - } else if (name.equals("ESKeyTwoKeyComp")) { - return new CsdlEntitySet() - .setName("ESKeyTwoKeyComp") - .setType(EntityTypeProvider.nameETKeyTwoKeyComp) - .setAnnotations(Arrays.asList( - new CsdlAnnotation().setTerm("Core.Description") - .setExpression(new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String) - .setValue("Contains Keys with alias")), - new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( - new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "false")))); - } else if (name.equals("ESInvisible")) { return new CsdlEntitySet() .setName("ESInvisible") @@ -498,12 +461,6 @@ public class ContainerProvider { new CsdlNavigationPropertyBinding() .setPath("CollPropertyCompNav/NavPropertyETMediaMany") .setTarget("ESMedia"), - new CsdlNavigationPropertyBinding() - .setPath("NavPropertyETTwoBaseTwoKeyNavOne") - .setTarget("ESBaseTwoKeyNav"), - new CsdlNavigationPropertyBinding() - .setPath("ETBaseTwoKeyNav/CollPropertyCompNav/NavPropertyETTwoKeyNavMany") - .setTarget("ESTwoKeyNav"), new CsdlNavigationPropertyBinding() .setPath("ETBaseTwoKeyNav/NavPropertyETTwoBaseTwoKeyNavOne") .setTarget("ESBaseTwoKeyNav"), @@ -651,7 +608,13 @@ public class ContainerProvider { } else if (name.equals("ESWithStream")) { return new CsdlEntitySet() .setName("ESWithStream") - .setType(EntityTypeProvider.nameETStream); + .setType(EntityTypeProvider.nameETStream) + .setAnnotations(Arrays.asList( + new CsdlAnnotation().setTerm("Core.Description") + .setExpression(new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String) + .setValue("Entity set with a stream type")), + new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "true")))); } } @@ -790,12 +753,6 @@ public class ContainerProvider { .setFunction(FunctionProvider.nameUFCRTCTAllPrimTwoParam) .setIncludeInServiceDocument(true); - } else if (name.equals("FICRTESMixPrimCollCompTwoParam")) { - return new CsdlFunctionImport() - .setName(name) - .setFunction(FunctionProvider.nameUFCRTESMixPrimCollCompTwoParam) - .setIncludeInServiceDocument(true); - } else if (name.equals("FINRTCollETMixPrimCollCompTwoParam")) { return new CsdlFunctionImport() .setName(name) 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 10f397176..c327e8fb8 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 @@ -61,8 +61,6 @@ public class EntityTypeProvider { "ETKeyNavCont"); public static final FullQualifiedName nameETTwoKeyNavCont = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETTwoKeyNavCont"); - public static final FullQualifiedName nameETKeyTwoKeyComp = new FullQualifiedName(SchemaProvider.NAMESPACE, - "ETKeyTwoKeyComp"); public static final FullQualifiedName nameETMedia = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETMedia"); public static final FullQualifiedName nameETMixPrimCollComp = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETMixPrimCollComp"); @@ -78,9 +76,6 @@ public class EntityTypeProvider { public static final FullQualifiedName nameETTwoKeyTwoPrim = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETTwoKeyTwoPrim"); public static final FullQualifiedName nameETTwoPrim = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETTwoPrim"); - public static final FullQualifiedName nameETAbstract = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETAbstract"); - public static final FullQualifiedName nameETAbstractBase = new FullQualifiedName(SchemaProvider.NAMESPACE, - "ETAbstractBase"); public static final FullQualifiedName nameETMixEnumDefCollComp = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETMixEnumDefCollComp"); @@ -246,26 +241,6 @@ public class EntityTypeProvider { .setProperties(Arrays.asList(PropertyProvider.propertyInt16_NotNullable)) .setHasStream(true); - } else if (entityTypeName.equals(nameETKeyTwoKeyComp)) { - return new CsdlEntityType() - .setName("ETKeyTwoKeyComp") - .setKey(Arrays.asList( - new CsdlPropertyRef() - .setName("PropertyInt16"), - new CsdlPropertyRef() - .setName("PropertyComp/PropertyInt16") - .setAlias("KeyAlias1"), - new CsdlPropertyRef() - .setName("PropertyComp/PropertyString") - .setAlias("KeyAlias2"), - new CsdlPropertyRef() - .setName("PropertyCompComp/PropertyComp/PropertyString") - .setAlias("KeyAlias3"))) - .setProperties( - Arrays.asList( - PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyComp_CTTwoPrim, - PropertyProvider.propertyCompComp_CTCompComp)); - } else if (entityTypeName.equals(nameETServerSidePaging)) { return new CsdlEntityType() .setName(nameETServerSidePaging.getName()) @@ -447,19 +422,7 @@ public class EntityTypeProvider { .setProperties( Arrays.asList(PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyMixedPrimCollComp_CTMixPrimCollComp)); - } else if (entityTypeName.equals(nameETAbstract)) { - return new CsdlEntityType() - .setName("ETAbstract") - .setAbstract(true) - .setProperties(Arrays.asList(PropertyProvider.propertyString)); - } else if (entityTypeName.equals(nameETAbstractBase)) { - return new CsdlEntityType() - .setName("ETAbstractBase") - .setBaseType(nameETAbstract) - .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16"))) - .setProperties(Arrays.asList( - PropertyProvider.propertyInt16_NotNullable)); } else if (entityTypeName.equals(nameETMixEnumDefCollComp)) { return new CsdlEntityType() .setName(nameETMixEnumDefCollComp.getName()) 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 69d179d46..f40bd7f7e 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 @@ -76,8 +76,8 @@ public class FunctionProvider { public static final FullQualifiedName nameBFCESTwoKeyNavRTCTTwoPrim = new FullQualifiedName(SchemaProvider.NAMESPACE, "BFCESTwoKeyNavRTCTTwoPrim"); - public static final FullQualifiedName nameBFCESTwoKeyNavRTESTwoKeyNav = - new FullQualifiedName(SchemaProvider.NAMESPACE, "BFCESTwoKeyNavRTESTwoKeyNav"); + public static final FullQualifiedName nameBFC_RTESTwoKeyNav_ = + new FullQualifiedName(SchemaProvider.NAMESPACE, "BFC_RTESTwoKeyNav_"); public static final FullQualifiedName nameBFCESTwoKeyNavRTString = new FullQualifiedName(SchemaProvider.NAMESPACE, "BFCESTwoKeyNavRTString"); @@ -142,8 +142,6 @@ public class FunctionProvider { "UFCRTCTTwoPrim"); public static final FullQualifiedName nameUFCRTCTTwoPrimTwoParam = new FullQualifiedName(SchemaProvider.NAMESPACE, "UFCRTCTTwoPrimTwoParam"); - public static final FullQualifiedName nameUFCRTESMixPrimCollCompTwoParam = - new FullQualifiedName(SchemaProvider.NAMESPACE, "UFCRTESMixPrimCollCompTwoParam"); public static final FullQualifiedName nameUFCRTCollETTwoKeyNavParam = new FullQualifiedName(SchemaProvider.NAMESPACE, "UFCRTCollETTwoKeyNavParam"); public static final FullQualifiedName nameUFCRTETAllPrimTwoParam = @@ -204,7 +202,7 @@ public class FunctionProvider { nameBFCESTwoKeyNavRTCollCTTwoPrim, nameBFCESTwoKeyNavRTCollString, nameBFCESTwoKeyNavRTCTTwoPrim, - nameBFCESTwoKeyNavRTESTwoKeyNav, + nameBFC_RTESTwoKeyNav_, nameBFCESTwoKeyNavRTString, nameBFCESTwoKeyNavRTStringParam, nameBFCESTwoKeyNavRTTwoKeyNav, @@ -329,7 +327,6 @@ public class FunctionProvider { return Collections.singletonList( new CsdlFunction() .setName("UFCRTCollETKeyNavContParam") - .setBound(true) .setComposable(true) .setParameters(Collections.singletonList( new CsdlParameter().setName("ParameterInt16") @@ -398,9 +395,9 @@ public class FunctionProvider { .setComposable(false) .setBound(false) .setReturnType( - new CsdlReturnType().setType(ComplexTypeProvider.nameCTMixPrimCollComp) - .setNullable(false) - .setCollection(true))); + new CsdlReturnType().setType(EntityTypeProvider.nameETMixPrimCollComp) + .setNullable(false) + .setCollection(true))); } else if (functionName.equals(nameUFNRTByteNineParam)) { return Collections.singletonList( @@ -503,7 +500,8 @@ public class FunctionProvider { .setNullable(false), new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16) .setNullable(false))) - .setComposable(false) + .setComposable(true) + .setBound(false) .setReturnType( new CsdlReturnType().setType(EntityTypeProvider.nameETMixPrimCollComp).setCollection(true) .setNullable(false))); @@ -522,21 +520,6 @@ public class FunctionProvider { .setReturnType( new CsdlReturnType().setType(EntityTypeProvider.nameETAllPrim).setNullable(false))); - } else if (functionName.equals(nameUFCRTESMixPrimCollCompTwoParam)) { - return Collections.singletonList( - new CsdlFunction() - .setName(functionName.getName()) - .setParameters( - Arrays.asList( - new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString) - .setNullable(false), - new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16) - .setNullable(false))) - .setComposable(true) - .setReturnType( - new CsdlReturnType().setType(EntityTypeProvider.nameETMixPrimCollComp).setCollection(true) - .setNullable(false))); - } else if (functionName.equals(nameUFNRTCollCTNavFiveProp)) { return Collections.singletonList( new CsdlFunction() @@ -544,10 +527,10 @@ public class FunctionProvider { .setReturnType( new CsdlReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setCollection(true))); - } else if (functionName.equals(nameBFCESTwoKeyNavRTESTwoKeyNav)) { + } else if (functionName.equals(nameBFC_RTESTwoKeyNav_)) { return Arrays.asList( new CsdlFunction() - .setName("BFCESTwoKeyNavRTESTwoKeyNav") + .setName(nameBFC_RTESTwoKeyNav_.getName()) .setEntitySetPath("BindingParam/NavPropertyETTwoKeyNavMany") .setBound(true) .setParameters(Collections.singletonList( @@ -559,7 +542,7 @@ public class FunctionProvider { .setNullable(false)), new CsdlFunction() - .setName("BFCESTwoKeyNavRTESTwoKeyNav") + .setName(nameBFC_RTESTwoKeyNav_.getName()) .setBound(true) .setParameters(Arrays.asList( new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav) @@ -572,7 +555,7 @@ public class FunctionProvider { .setNullable(false)), new CsdlFunction() - .setName("BFCESTwoKeyNavRTESTwoKeyNav") + .setName(nameBFC_RTESTwoKeyNav_.getName()) .setBound(true) .setParameters(Collections.singletonList( new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav) @@ -628,19 +611,7 @@ public class FunctionProvider { .setCollection(true).setNullable(false))) .setComposable(false) .setReturnType( - new CsdlReturnType().setType(ComplexTypeProvider.nameCTAllPrim).setNullable(false)), - new CsdlFunction() - .setName("BFNESAllPrimRTCTAllPrim") - .setBound(true) - .setParameters(Arrays.asList( - new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETAllPrim) - .setCollection(true).setNullable(false), - new CsdlParameter().setName("Param2").setType(PropertyProvider.nameInt16) - .setCollection(true).setNullable(false))) - .setComposable(false) - .setReturnType( - new CsdlReturnType().setType(ComplexTypeProvider.nameCTAllPrim).setNullable(false)) - ); + new CsdlReturnType().setType(ComplexTypeProvider.nameCTAllPrim).setNullable(false))); } else if (functionName.equals(nameBFCESTwoKeyNavRTCTTwoPrim)) { return Collections.singletonList( 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 062b125f3..eb998b360 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 @@ -83,9 +83,8 @@ public class SchemaProvider { entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETTwoKeyNavCont)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETCompMixPrimCollComp)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETKeyPrimNav)); - entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETAbstract)); - entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETAbstractBase)); - + entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETStream)); + // ComplexTypes List complexTypes = new ArrayList(); schema.setComplexTypes(complexTypes); @@ -109,7 +108,7 @@ public class SchemaProvider { // Actions List actions = new ArrayList(); schema.setActions(actions); - actions.addAll(prov.getActions(ActionProvider.nameBAETTwoKeyNavRTETTwoKeyNav)); + actions.addAll(prov.getActions(ActionProvider.nameBA_RTETTwoKeyNav)); actions.addAll(prov.getActions(ActionProvider.nameBAESAllPrimRTETAllPrim)); actions.addAll(prov.getActions(ActionProvider.nameBAESTwoKeyNavRTESTwoKeyNav)); actions.addAll(prov.getActions(ActionProvider.nameBAESTwoKeyNavRTESKeyNav)); @@ -158,7 +157,7 @@ public class SchemaProvider { functions.addAll(prov.getFunctions(FunctionProvider.nameUFCRTCollETKeyNavContParam)); functions.addAll(prov.getFunctions(FunctionProvider.nameUFNRTByteNineParam)); - functions.addAll(prov.getFunctions(FunctionProvider.nameBFCESTwoKeyNavRTESTwoKeyNav)); + functions.addAll(prov.getFunctions(FunctionProvider.nameBFC_RTESTwoKeyNav_)); functions.addAll(prov.getFunctions(FunctionProvider.nameBFCStringRTESTwoKeyNav)); functions.addAll(prov.getFunctions(FunctionProvider.nameBFCETBaseTwoKeyNavRTETTwoKeyNav)); functions.addAll(prov.getFunctions(FunctionProvider.nameBFCESBaseTwoKeyNavRTESBaseTwoKey)); diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java index 1765ac3d2..4d73a4dee 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java @@ -105,13 +105,13 @@ public class PreconditionsValidatorTest { @Test public void boundActionOnEsKeyNav() throws Exception { - assertTrue(mustValidate("ESKeyNav(1)/Namespace1_Alias.BAETTwoKeyNavRTETTwoKeyNav", "ESKeyNav")); + assertTrue(mustValidate("ESKeyNav(1)/Namespace1_Alias.BA_RTETTwoKeyNav", "ESKeyNav")); } @Test public void boundActionOnEsKeyNavWithNavigation() throws Exception { assertTrue( - mustValidate("ESKeyNav(1)/NavPropertyETKeyNavOne/Namespace1_Alias.BAETTwoKeyNavRTETTwoKeyNav", "ESKeyNav")); + mustValidate("ESKeyNav(1)/NavPropertyETKeyNavOne/Namespace1_Alias.BA_RTETTwoKeyNav", "ESKeyNav")); } @Test @@ -131,12 +131,12 @@ public class PreconditionsValidatorTest { @Test public void singletonWithAction() throws Exception { - assertTrue(mustValidate("SINav/Namespace1_Alias.BAETTwoKeyNavRTETTwoKeyNav", "SINav")); + assertTrue(mustValidate("SINav/Namespace1_Alias.BA_RTETTwoKeyNav", "SINav")); } @Test public void singletonWithActionAndNavigation() throws Exception { - assertTrue(mustValidate("SINav/NavPropertyETKeyNavOne/Namespace1_Alias.BAETTwoKeyNavRTETTwoKeyNav", "ESKeyNav")); + assertTrue(mustValidate("SINav/NavPropertyETKeyNavOne/Namespace1_Alias.BA_RTETTwoKeyNav", "ESKeyNav")); } @Test 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 22b88078a..dae060ab2 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 @@ -197,10 +197,6 @@ public class ODataJsonSerializerTest { "\"title\":\"olingo.odata.test1.BFNESAllPrimRTCTAllPrim\"," + "\"target\":\"ESAllPrim/olingo.odata.test1.BFNESAllPrimRTCTAllPrim\"" + "}," + - "\"#olingo.odata.test1.BFNESAllPrimRTCTAllPrim(Param2)\":{" + - "\"title\":\"olingo.odata.test1.BFNESAllPrimRTCTAllPrim\"," + - "\"target\":\"ESAllPrim/olingo.odata.test1.BFNESAllPrimRTCTAllPrim(Param2=@Param2)\"" + - "}," + "\"value\":[" + "{" + "\"@odata.type\":\"#olingo.odata.test1.ETAllPrim\"," + diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java index 2b7a5fd05..a8ea4b56f 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java @@ -92,7 +92,7 @@ public class MetadataDocumentTest { assertThat(metadata, containsString("" + "" + "")); - + assertThat(metadata, containsString("" + "")); assertThat(metadata, - containsString("" + "" @@ -137,9 +137,6 @@ public class MetadataDocumentTest { // BaseTypeCheck assertThat(metadata, containsString("")); - assertThat(metadata, containsString("")); - assertThat(metadata, - containsString("")); // TypeDefCheck assertThat(metadata, 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 e9928ddf5..381f8628d 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 @@ -193,9 +193,6 @@ public class ODataXmlSerializerTest { " \n" + - " \n" + " \n" + " ESAllPrim(32767)\n" + " \n" + diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/TestFullResourcePath.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/TestFullResourcePath.java index 82335a3d7..53e9c8875 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/TestFullResourcePath.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/TestFullResourcePath.java @@ -137,7 +137,7 @@ public class TestFullResourcePath { @Test public void functionBound_varOverloading() throws Exception { // on ESTwoKeyNav - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()").goPath() + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()").goPath() .at(0) .isUriPathInfoKind(UriResourceKind.entitySet) .isType(EntityTypeProvider.nameETTwoKeyNav, true) @@ -146,7 +146,7 @@ public class TestFullResourcePath { .isType(EntityTypeProvider.nameETTwoKeyNav); // with string parameter - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav(ParameterString='ABC')").goPath() + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_(ParameterString='ABC')").goPath() .at(0) .isUriPathInfoKind(UriResourceKind.entitySet) .isType(EntityTypeProvider.nameETTwoKeyNav, true) @@ -155,7 +155,7 @@ public class TestFullResourcePath { .isType(EntityTypeProvider.nameETTwoKeyNav); // with string parameter - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()").goPath() + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()").goPath() .at(0) .isUriPathInfoKind(UriResourceKind.entitySet) .isType(EntityTypeProvider.nameETTwoKeyNav, true) @@ -335,14 +335,14 @@ public class TestFullResourcePath { .isTypeFilterOnCollection(EntityTypeProvider.nameETTwoBaseTwoKeyNav); testUri.run("ESTwoKeyNav" - + "/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()" + + "/olingo.odata.test1.BFC_RTESTwoKeyNav_()" + "/olingo.odata.test1.ETBaseTwoKeyNav(PropertyInt16=1,PropertyString='2')" + "/olingo.odata.test1.ETTwoBaseTwoKeyNav") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESTwoKeyNav") .n() - .isFunction("BFCESTwoKeyNavRTESTwoKeyNav") + .isFunction("BFC_RTESTwoKeyNav_") .isType(EntityTypeProvider.nameETTwoKeyNav) .isTypeFilterOnCollection(EntityTypeProvider.nameETBaseTwoKeyNav) .isKeyPredicate(0, "PropertyInt16", "1") @@ -515,13 +515,13 @@ public class TestFullResourcePath { .isTypeFilterOnEntry(EntityTypeProvider.nameETBaseTwoKeyNav); testUri - .run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()(PropertyInt16=1,PropertyString='2')" + .run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()(PropertyInt16=1,PropertyString='2')" + "/NavPropertyETTwoKeyNavOne/olingo.odata.test1.ETTwoBaseTwoKeyNav") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESTwoKeyNav") .n() - .isFunction("BFCESTwoKeyNavRTESTwoKeyNav") + .isFunction("BFC_RTESTwoKeyNav_") .isType(EntityTypeProvider.nameETTwoKeyNav, false) .isKeyPredicate(0, "PropertyInt16", "1") .isKeyPredicate(1, "PropertyString", "'2'") @@ -635,56 +635,56 @@ public class TestFullResourcePath { @Test public void runBfuncBnEsRtEs() throws Exception { - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()") + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESTwoKeyNav") .n() - .isFunction("BFCESTwoKeyNavRTESTwoKeyNav") + .isFunction("BFC_RTESTwoKeyNav_") .isType(EntityTypeProvider.nameETTwoKeyNav); - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav(ParameterString='2')") + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_(ParameterString='2')") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESTwoKeyNav") .n() - .isFunction("BFCESTwoKeyNavRTESTwoKeyNav") + .isFunction("BFC_RTESTwoKeyNav_") .isParameter(0, "ParameterString", "'2'") .isType(EntityTypeProvider.nameETTwoKeyNav); - testUri.run("ESKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()") + testUri.run("ESKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESKeyNav") .n() - .isFunction("BFCESTwoKeyNavRTESTwoKeyNav") + .isFunction("BFC_RTESTwoKeyNav_") .isType(EntityTypeProvider.nameETTwoKeyNav); - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav(ParameterString='3')") + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_(ParameterString='3')") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESTwoKeyNav") .n() - .isFunction("BFCESTwoKeyNavRTESTwoKeyNav") + .isFunction("BFC_RTESTwoKeyNav_") .isParameter(0, "ParameterString", "'3'") .isType(EntityTypeProvider.nameETTwoKeyNav); - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()/$count") + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()/$count") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESTwoKeyNav") .n() - .isFunction("BFCESTwoKeyNavRTESTwoKeyNav") + .isFunction("BFC_RTESTwoKeyNav_") .isType(EntityTypeProvider.nameETTwoKeyNav) .n() .isCount(); - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()(PropertyInt16=1,PropertyString='2')") + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()(PropertyInt16=1,PropertyString='2')") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESTwoKeyNav") .n() - .isFunction("BFCESTwoKeyNavRTESTwoKeyNav") + .isFunction("BFC_RTESTwoKeyNav_") .isKeyPredicate(0, "PropertyInt16", "1") .isKeyPredicate(1, "PropertyString", "'2'"); @@ -845,22 +845,22 @@ public class TestFullResourcePath { @Test public void runActionBound_on_EntityEntry() throws Exception { - testUri.run("ESTwoKeyNav(PropertyInt16=1,PropertyString='2')/olingo.odata.test1.BAETTwoKeyNavRTETTwoKeyNav") + testUri.run("ESTwoKeyNav(PropertyInt16=1,PropertyString='2')/olingo.odata.test1.BA_RTETTwoKeyNav") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESTwoKeyNav") .isKeyPredicate(0, "PropertyInt16", "1") .isKeyPredicate(1, "PropertyString", "'2'") .n() - .isAction("BAETTwoKeyNavRTETTwoKeyNav"); + .isAction("BA_RTETTwoKeyNav"); - testUri.run("ESKeyNav(PropertyInt16=1)/olingo.odata.test1.BAETTwoKeyNavRTETTwoKeyNav") + testUri.run("ESKeyNav(PropertyInt16=1)/olingo.odata.test1.BA_RTETTwoKeyNav") .isKind(UriInfoKind.resource).goPath() .first() .isEntitySet("ESKeyNav") .isKeyPredicate(0, "PropertyInt16", "1") .n() - .isAction("BAETTwoKeyNavRTETTwoKeyNav"); + .isAction("BA_RTETTwoKeyNav"); } @Test @@ -931,7 +931,7 @@ public class TestFullResourcePath { .isType(EntityTypeProvider.nameETTwoKeyNav); // on collection of entity - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()") + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()") .goPath() .at(0) .isUriPathInfoKind(UriResourceKind.entitySet) @@ -1215,24 +1215,7 @@ public class TestFullResourcePath { @Test public void runNonComposableFunctions() throws Exception { - testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='1')") - .isKind(UriInfoKind.resource) - .goPath().first() - .isFunctionImport("FICRTCollETMixPrimCollCompTwoParam") - .isFunction("UFCRTCollETMixPrimCollCompTwoParam") - .isParameter(0, "ParameterInt16", "1") - .isParameter(1, "ParameterString", "'1'"); - testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='1')(0)") - .isKind(UriInfoKind.resource) - .goPath().first() - .isFunctionImport("FICRTCollETMixPrimCollCompTwoParam") - .isFunction("UFCRTCollETMixPrimCollCompTwoParam") - .isParameter(0, "ParameterInt16", "1") - .isParameter(1, "ParameterString", "'1'"); - - testUri.runEx("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='1')(0)/PropertyInt16") - .isExValidation(UriValidationException.MessageKeys.UNALLOWED_RESOURCE_PATH); testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='1')", "$skip=1"); testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='1')", "$top=1"); @@ -1253,6 +1236,13 @@ public class TestFullResourcePath { testUri.runEx("ESAllPrim/olingo.odata.test1.BFNESAllPrimRTCTAllPrim()" + "/PropertyString") .isExValidation(UriValidationException.MessageKeys.UNALLOWED_RESOURCE_PATH); + + testUri.runEx("FINRTByteNineParam(ParameterEnum=Namespace1_Alias.ENString'String1'," + + "CollParameterETTwoPrim=@collComp,ParameterComp=@comp,ParameterDef='key1'," + + "ParameterETTwoPrim=@comp,CollParameterDef=@collDef,CollParameterByte=@collByte," + + "CollParameterComp=@collComp,CollParameterEnum=@collEnum)/$value?@comp={\"PropertyInt16\":1}" + + "&@collByte=[1]&@collEnum=[\"String1,String1\"]&@collDef=[\"Test\"]&@collComp=[{\"PropertyInt16\":11}]") + .isExValidation(UriValidationException.MessageKeys.UNALLOWED_RESOURCE_PATH); } @Test @@ -2081,34 +2071,50 @@ public class TestFullResourcePath { @Test public void runFunctionImpEs() throws Exception { - testUri.run("FICRTESMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')") + testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')") .isKind(UriInfoKind.resource).goPath() .first() - .isFunctionImport("FICRTESMixPrimCollCompTwoParam") - .isFunction("UFCRTESMixPrimCollCompTwoParam") + .isFunctionImport("FICRTCollETMixPrimCollCompTwoParam") + .isFunction("UFCRTCollETMixPrimCollCompTwoParam") .isParameter(0, "ParameterInt16", "1") .isParameter(1, "ParameterString", "'2'") .isType(EntityTypeProvider.nameETMixPrimCollComp); - testUri.run("FICRTESMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')") + testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')") .isKind(UriInfoKind.resource).goPath() .first() - .isFunctionImport("FICRTESMixPrimCollCompTwoParam") - .isFunction("UFCRTESMixPrimCollCompTwoParam") + .isFunctionImport("FICRTCollETMixPrimCollCompTwoParam") + .isFunction("UFCRTCollETMixPrimCollCompTwoParam") .isParameter(0, "ParameterInt16", "1") .isParameter(1, "ParameterString", "'2'") .isType(EntityTypeProvider.nameETMixPrimCollComp); - testUri.run("FICRTESMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')/$count") + testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')/$count") .isKind(UriInfoKind.resource).goPath() .first() - .isFunctionImport("FICRTESMixPrimCollCompTwoParam") - .isFunction("UFCRTESMixPrimCollCompTwoParam") + .isFunctionImport("FICRTCollETMixPrimCollCompTwoParam") + .isFunction("UFCRTCollETMixPrimCollCompTwoParam") .isParameter(0, "ParameterInt16", "1") .isParameter(1, "ParameterString", "'2'") .isType(EntityTypeProvider.nameETMixPrimCollComp) .n() .isCount(); + + testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='1')") + .isKind(UriInfoKind.resource) + .goPath().first() + .isFunctionImport("FICRTCollETMixPrimCollCompTwoParam") + .isFunction("UFCRTCollETMixPrimCollCompTwoParam") + .isParameter(0, "ParameterInt16", "1") + .isParameter(1, "ParameterString", "'1'"); + + testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='1')(0)") + .isKind(UriInfoKind.resource) + .goPath().first() + .isFunctionImport("FICRTCollETMixPrimCollCompTwoParam") + .isFunction("UFCRTCollETMixPrimCollCompTwoParam") + .isParameter(0, "ParameterInt16", "1") + .isParameter(1, "ParameterString", "'1'"); } @Test @@ -3110,10 +3116,10 @@ public class TestFullResourcePath { .goPath().first() .isSingleton("SINav"); - testUri.run("FICRTESMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')") + testUri.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')") .isKind(UriInfoKind.resource) .goPath() - .isFunctionImport("FICRTESMixPrimCollCompTwoParam") + .isFunctionImport("FICRTCollETMixPrimCollCompTwoParam") .isType(EntityTypeProvider.nameETMixPrimCollComp) .isParameter(0, "ParameterInt16", "1") .isParameter(1, "ParameterString", "'2'"); @@ -3189,11 +3195,11 @@ public class TestFullResourcePath { .isEntitySet("ESKeyNav") .n().isRef(); - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()") + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()") .isKind(UriInfoKind.resource) .goPath().first() .isEntitySet("ESTwoKeyNav") - .n().isFunction("BFCESTwoKeyNavRTESTwoKeyNav"); + .n().isFunction("BFC_RTESTwoKeyNav_"); testUri.run("ESAllPrim/olingo.odata.test1.BAESAllPrimRTETAllPrim") .isKind(UriInfoKind.resource) @@ -3201,11 +3207,11 @@ public class TestFullResourcePath { .isEntitySet("ESAllPrim") .n().isAction("BAESAllPrimRTETAllPrim"); - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()") + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()") .isKind(UriInfoKind.resource) .goPath().first() .isEntitySet("ESTwoKeyNav") - .n().isFunction("BFCESTwoKeyNavRTESTwoKeyNav"); + .n().isFunction("BFC_RTESTwoKeyNav_"); testUri.run("ESTwoKeyNav/olingo.odata.test1.ETBaseTwoKeyNav") .isKind(UriInfoKind.resource) @@ -3254,11 +3260,11 @@ public class TestFullResourcePath { .isEntitySet("ESAllPrim") .n().isAction("BAESAllPrimRTETAllPrim"); - testUri.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav()") + testUri.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_()") .isKind(UriInfoKind.resource) .goPath().first() .isEntitySet("ESTwoKeyNav") - .n().isFunction("BFCESTwoKeyNavRTESTwoKeyNav"); + .n().isFunction("BFC_RTESTwoKeyNav_"); testUri.run("ESTwoKeyNav(PropertyInt16=1,PropertyString='2')/olingo.odata.test1.ETBaseTwoKeyNav") .isKind(UriInfoKind.resource) @@ -5600,7 +5606,7 @@ public class TestFullResourcePath { + "/olingo.odata.test1.CTBase/olingo.odata.test1.CTBase") .isExSemantic(MessageKeys.TYPE_FILTER_NOT_CHAINABLE); - testUri.runEx("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav") + testUri.runEx("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_") .isExSemantic(MessageKeys.UNKNOWN_TYPE); // $ref @@ -5615,7 +5621,7 @@ public class TestFullResourcePath { testUri.runEx(ContainerProvider.AIRTCT_TWO_PRIM_PARAM + "/PropertyInt16") .isExValidation(UriValidationException.MessageKeys.UNALLOWED_RESOURCE_PATH); testUri.runEx("ESTwoKeyNav(PropertyInt16=1,PropertyString='2')/" - + "olingo.odata.test1.BAETTwoKeyNavRTETTwoKeyNav/olingo.odata.test1.ETTwoKeyNav") + + "olingo.odata.test1.BA_RTETTwoKeyNav/olingo.odata.test1.ETTwoKeyNav") .isExValidation(UriValidationException.MessageKeys.UNALLOWED_RESOURCE_PATH); testUri.runEx("ESTwoKeyNav/olingo.odata.test1.BAESTwoKeyNavRTESTwoKeyNav/$count") .isExValidation(UriValidationException.MessageKeys.UNALLOWED_RESOURCE_PATH); diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/TestUriParserImpl.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/TestUriParserImpl.java index c38fba5da..6c7feec58 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/TestUriParserImpl.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/TestUriParserImpl.java @@ -74,13 +74,13 @@ public class TestUriParserImpl { .at(1).isUriPathInfoKind(UriResourceKind.function); // one input - testRes.run("ESTwoKeyNav/olingo.odata.test1.BFCESTwoKeyNavRTESTwoKeyNav(ParameterString='ABC')") + testRes.run("ESTwoKeyNav/olingo.odata.test1.BFC_RTESTwoKeyNav_(ParameterString='ABC')") .at(0).isUriPathInfoKind(UriResourceKind.entitySet) .at(1).isUriPathInfoKind(UriResourceKind.function) .isParameter(0, "ParameterString", "'ABC'"); // two input - testRes.run("FICRTESMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')") + testRes.run("FICRTCollETMixPrimCollCompTwoParam(ParameterInt16=1,ParameterString='2')") .at(0) .isUriPathInfoKind(UriResourceKind.function) .isParameter(0, "ParameterInt16", "1")