[OLINGO-704] Test added
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/9d4cf6ad Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/9d4cf6ad Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/9d4cf6ad Branch: refs/heads/olingo712 Commit: 9d4cf6ad4c95b0ef7e3b97f590f39ee7d1776dd0 Parents: 91d0427 Author: Christian Holzer <[email protected]> Authored: Fri Jun 19 16:26:25 2015 +0200 Committer: Christian Holzer <[email protected]> Committed: Fri Jun 19 16:28:26 2015 +0200 ---------------------------------------------------------------------- .../olingo/fit/tecsvc/client/BasicITCase.java | 37 ++++++++++++++++++++ 1 file changed, 37 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9d4cf6ad/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java index ae25894..2073df4 100644 --- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java @@ -1105,6 +1105,43 @@ public class BasicITCase extends AbstractBaseTestITCase { } @Test + public void updateComplexPropertyWithIEEE754CompatibleParamter() { + final ODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI); + client.getConfiguration().setDefaultPubFormat(ContentType.JSON); + final ClientObjectFactory of = client.getObjectFactory(); + final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV) + .appendKeySegment(1) + .appendPropertySegment(PROPERTY_COMP_ALL_PRIM).build(); + + final ODataPropertyUpdateRequest requestUpdate = client.getCUDRequestFactory() + .getPropertyComplexValueUpdateRequest(uri, UpdateType.PATCH, + of.newComplexProperty(PROPERTY_COMP_ALL_PRIM, + of.newComplexValue("CTAllPrim") + .add(of.newPrimitiveProperty(PROPERTY_INT64, + of.newPrimitiveValueBuilder().buildInt64(Long.MIN_VALUE))) + .add(of.newPrimitiveProperty(PROPERTY_DECIMAL, + of.newPrimitiveValueBuilder().buildDecimal(BigDecimal.valueOf(12345678912L)))) + .add(of.newPrimitiveProperty(PROPERTY_INT16, + of.newPrimitiveValueBuilder().buildInt16((short) 2))))); + + requestUpdate.setContentType(CONTENT_TYPE_JSON_IEEE754_COMPATIBLE); + requestUpdate.setAccept(CONTENT_TYPE_JSON_IEEE754_COMPATIBLE); + final ODataPropertyUpdateResponse responseUpdate = requestUpdate.execute(); + String cookie = responseUpdate.getHeader(HttpHeader.SET_COOKIE).iterator().next(); + + final ODataPropertyRequest<ClientProperty> requestGet = client.getRetrieveRequestFactory().getPropertyRequest(uri); + requestGet.addCustomHeader(HttpHeader.COOKIE, cookie); + requestGet.setAccept(CONTENT_TYPE_JSON_IEEE754_COMPATIBLE); + final ODataRetrieveResponse<ClientProperty> responseGet = requestGet.execute(); + + final ClientComplexValue complexValue = responseGet.getBody().getComplexValue(); + + assertEquals(Long.MIN_VALUE, complexValue.get(PROPERTY_INT64).getPrimitiveValue().toValue()); + assertEquals(BigDecimal.valueOf(12345678912L), complexValue.get(PROPERTY_DECIMAL).getPrimitiveValue().toValue()); + assertEquals(2, complexValue.get(PROPERTY_INT16).getPrimitiveValue().toValue()); + } + + @Test public void updateProperyEdmDecimaltWithIEE754CompatibleParameter() { final ODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI); client.getConfiguration().setDefaultPubFormat(ContentType.JSON);
