[OLINGO-557] small fix in technical service Change-Id: I12b8e4ca94b7db28cae77a5fb173a4d90075fda6
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/36219d32 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/36219d32 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/36219d32 Branch: refs/heads/master Commit: 36219d3258eaa350493a0ff06a5b4bcc49d8d6b5 Parents: 200dac0 Author: Klaus Straubinger <[email protected]> Authored: Thu Mar 12 15:53:03 2015 +0100 Committer: Christian Amend <[email protected]> Committed: Tue Mar 17 14:25:18 2015 +0100 ---------------------------------------------------------------------- .../fit/tecsvc/client/FunctionImportITCase.java | 31 ++++++++++++-------- .../TechnicalPrimitiveComplexProcessor.java | 16 +++++----- 2 files changed, 27 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/36219d32/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java index 2e51fd2..ec3331e 100644 --- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java @@ -89,15 +89,14 @@ public class FunctionImportITCase extends AbstractBaseTestITCase { assertEquals("2", property.getPrimitiveValue().toValue()); } - @Test public void entityCollectionWithAppendedKey() { // .../odata.svc/FICRTCollESMedia()(1) final ODataInvokeRequest<ODataEntity> request = getClient().getInvokeRequestFactory() - .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI) - .appendOperationCallSegment("FICRTCollESMedia") - .appendKeySegment(getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(1)) - .build(), ODataEntity.class); + .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI) + .appendOperationCallSegment("FICRTCollESMedia") + .appendKeySegment(getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(1)) + .build(), ODataEntity.class); assertNotNull(request); final ODataInvokeResponse<ODataEntity> response = request.execute(); @@ -111,16 +110,15 @@ public class FunctionImportITCase extends AbstractBaseTestITCase { assertEquals(1, property.getPrimitiveValue().toValue()); } - @Test public void entityCollectionWithAppendedKeyAndProperty() { // .../odata.svc/FICRTCollESMedia()(2)/PropertyInt16 final ODataInvokeRequest<ODataProperty> request = getClient().getInvokeRequestFactory() - .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI) - .appendOperationCallSegment("FICRTCollESMedia") - .appendKeySegment(getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(2)) - .appendPropertySegment("PropertyInt16") - .build(), ODataProperty.class); + .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI) + .appendOperationCallSegment("FICRTCollESMedia") + .appendKeySegment(getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(2)) + .appendPropertySegment("PropertyInt16") + .build(), ODataProperty.class); assertNotNull(request); final ODataInvokeResponse<ODataProperty> response = request.execute(); @@ -132,7 +130,6 @@ public class FunctionImportITCase extends AbstractBaseTestITCase { assertEquals(2, property.getPrimitiveValue().toValue()); } - @Test public void countEntityCollection() throws Exception { final ODataRawRequest request = getClient().getRetrieveRequestFactory() @@ -187,6 +184,16 @@ public class FunctionImportITCase extends AbstractBaseTestITCase { assertEquals("UFCRTString string value", response.getBody().toValue()); } + @Test + public void primitiveValueWithPath() throws Exception { + final ODataValueRequest request = getClient().getRetrieveRequestFactory() + .getPropertyValueRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI) + .appendOperationCallSegment("FICRTCTTwoPrim") + .appendPropertySegment("PropertyString").appendValueSegment().build()); + final ODataRetrieveResponse<ODataPrimitiveValue> response = request.execute(); + assertEquals("UFCRTCTTwoPrim string value", response.getBody().toValue()); + } + @Override protected ODataClient getClient() { ODataClient odata = ODataClientFactory.getClient(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/36219d32/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java index f1dfa95..e36dc6b 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java @@ -208,12 +208,11 @@ public class TechnicalPrimitiveComplexProcessor extends TechnicalProcessor final List<String> path = getPropertyPath(resourceParts, 0); final Entity entity = readEntity(uriInfo); - final Property property = - entity == null ? - getPropertyData(dataProvider.readFunctionPrimitiveComplex(((UriResourceFunction) resourceParts.get(0)) - .getFunction(), - ((UriResourceFunction) resourceParts.get(0)).getParameters()), path) : - getPropertyData(entity, path); + final Property property = entity == null ? + getPropertyData(dataProvider.readFunctionPrimitiveComplex(((UriResourceFunction) resourceParts.get(0)) + .getFunction(), + ((UriResourceFunction) resourceParts.get(0)).getParameters()), path) : + getPropertyData(entity, path); if (property == null) { throw new ODataApplicationException("Nothing found.", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ROOT); @@ -368,8 +367,9 @@ public class TechnicalPrimitiveComplexProcessor extends TechnicalProcessor final Entity entity = readEntity(uriInfo); final Property property = entity == null ? - dataProvider.readFunctionPrimitiveComplex(((UriResourceFunction) resourceParts.get(0)).getFunction(), - ((UriResourceFunction) resourceParts.get(0)).getParameters()) : + getPropertyData(dataProvider.readFunctionPrimitiveComplex(((UriResourceFunction) resourceParts.get(0)) + .getFunction(), + ((UriResourceFunction) resourceParts.get(0)).getParameters()), path) : getPropertyData(entity, path); if (property == null || property.getValue() == null) {
