You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2014/07/29 14:55:58 UTC

[1/4] git commit: Fixed handling of non-string primitive types (as DateTimeOffset) with json/minimal

Repository: olingo-odata4
Updated Branches:
  refs/heads/OLINGO-377-FIT 3aab1c127 -> 45a46f86e


Fixed handling of non-string primitive types (as DateTimeOffset) with json/minimal


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/eb1de05a
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/eb1de05a
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/eb1de05a

Branch: refs/heads/OLINGO-377-FIT
Commit: eb1de05a7e23a233b599941af5e1e6d27794cbc7
Parents: d56e0ef
Author: Francesco Chicchiriccò <--global>
Authored: Tue Jul 29 13:48:21 2014 +0200
Committer: Francesco Chicchiriccò <--global>
Committed: Tue Jul 29 13:48:21 2014 +0200

----------------------------------------------------------------------
 .../olingo/fit/v4/EntityRetrieveTestITCase.java | 59 +++++++++---------
 .../core/serialization/AbstractODataBinder.java | 63 ++++++++++++++------
 .../domain/AbstractODataPrimitiveValue.java     | 20 +++----
 3 files changed, 82 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/eb1de05a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
index 54626b5..58e9330 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
@@ -18,6 +18,11 @@
  */
 package org.apache.olingo.fit.v4;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
@@ -39,16 +44,11 @@ import org.apache.olingo.commons.api.domain.v4.ODataEntitySet;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
-
 import java.net.URI;
+import java.sql.Timestamp;
 import java.util.LinkedHashMap;
 import java.util.List;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
 /**
  * This is the unit test class to check entity retrieve operations.
  */
@@ -56,10 +56,10 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void withInlineEntity(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
+            appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
 
     final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().
-        getEntityRequest(uriBuilder.build());
+            getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
     final ODataRetrieveResponse<ODataEntity> res = req.execute();
@@ -91,15 +91,15 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
           assertEquals(5, properties.size());
 
           assertTrue(properties.get(0).getName().equals("CompanyID")
-              || properties.get(1).getName().equals("CompanyID")
-              || properties.get(2).getName().equals("CompanyID")
-              || properties.get(3).getName().equals("CompanyID")
-              || properties.get(4).getName().equals("CompanyID"));
+                  || properties.get(1).getName().equals("CompanyID")
+                  || properties.get(2).getName().equals("CompanyID")
+                  || properties.get(3).getName().equals("CompanyID")
+                  || properties.get(4).getName().equals("CompanyID"));
           assertTrue(properties.get(0).getValue().toString().equals("0")
-              || properties.get(1).getValue().toString().equals("0")
-              || properties.get(2).getValue().toString().equals("0")
-              || properties.get(3).getValue().toString().equals("0")
-              || properties.get(4).getValue().toString().equals("0"));
+                  || properties.get(1).getValue().toString().equals("0")
+                  || properties.get(2).getValue().toString().equals("0")
+                  || properties.get(3).getValue().toString().equals("0")
+                  || properties.get(4).getValue().toString().equals("0"));
 
           found = true;
         }
@@ -126,10 +126,10 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void withInlineEntitySet(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
+            appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
 
     final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().
-        getEntityRequest(uriBuilder.build());
+            getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
     final ODataRetrieveResponse<ODataEntity> res = req.execute();
@@ -169,7 +169,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void rawRequest(final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5);
+            appendEntitySetSegment("People").appendKeySegment(5);
 
     final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
     req.setFormat(format.getContentType(client.getServiceVersion()).toContentTypeString());
@@ -201,7 +201,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
     multiKey.put("ProductDetailID", 1);
 
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("ProductDetails").appendKeySegment(multiKey);
+            appendEntitySetSegment("ProductDetails").appendKeySegment(multiKey);
 
     final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
@@ -210,7 +210,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
     final ODataEntity entity = res.getBody();
     assertNotNull(entity);
     assertEquals(Integer.valueOf(1),
-        entity.getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class));
+            entity.getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class));
   }
 
   @Test
@@ -225,7 +225,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void checkForETag(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder =
-        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
+            client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
 
     final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
@@ -274,8 +274,8 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void reference(final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
-        appendRefSegment();
+            appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
+            appendRefSegment();
 
     ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
@@ -288,7 +288,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
     assertTrue(entity.getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/Customers(PersonID=1)"));
 
     final URI referenceURI = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntityIdSegment(entity.getId().toASCIIString()).build();
+            appendEntityIdSegment(entity.getId().toASCIIString()).build();
 
     req = client.getRetrieveRequestFactory().getEntityRequest(referenceURI);
     req.setFormat(format);
@@ -310,8 +310,8 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void contained(final ODataClient client, final ODataFormat format) throws EdmPrimitiveTypeException {
     final URI uri = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(101).
-        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101902).build();
+            appendEntitySetSegment("Accounts").appendKeySegment(101).
+            appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101902).build();
     final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
     req.setFormat(format);
 
@@ -319,8 +319,9 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
     assertNotNull(contained);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", contained.getTypeName().toString());
     assertEquals(101902,
-        contained.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
+            contained.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
     assertEquals("Edm.DateTimeOffset", contained.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
+    assertNotNull(contained.getProperty("CreatedDate").getPrimitiveValue().toCastValue(Timestamp.class));
   }
 
   @Test
@@ -340,7 +341,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void entitySetNavigationLink(final ODataClient client, final ODataFormat format) {
     final URI uri = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(101).build();
+            appendEntitySetSegment("Accounts").appendKeySegment(101).build();
     final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
     req.setFormat(format);
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/eb1de05a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataBinder.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataBinder.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataBinder.java
index e53996b..d3e0277 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataBinder.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataBinder.java
@@ -18,6 +18,12 @@
  */
 package org.apache.olingo.client.core.serialization;
 
+import java.io.StringWriter;
+import java.net.URI;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.CommonODataClient;
 import org.apache.olingo.client.api.data.ServiceDocument;
@@ -54,6 +60,7 @@ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmSchema;
@@ -67,15 +74,11 @@ import org.apache.olingo.commons.core.data.EntitySetImpl;
 import org.apache.olingo.commons.core.data.LinkImpl;
 import org.apache.olingo.commons.core.data.PropertyImpl;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.commons.core.serialization.ContextURLParser;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.StringWriter;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
 public abstract class AbstractODataBinder implements CommonODataBinder {
 
   /**
@@ -257,9 +260,9 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
       LOG.debug("EntitySet -> ODataEntitySet:\n{}", writer.toString());
     }
 
-    final URI base = resource.getContextURL() == null ?
-        resource.getPayload().getBaseURI() :
-        ContextURLParser.parse(resource.getContextURL()).getServiceRoot();
+    final URI base = resource.getContextURL() == null
+            ? resource.getPayload().getBaseURI()
+            : ContextURLParser.parse(resource.getContextURL()).getServiceRoot();
 
     final URI next = resource.getPayload().getNext();
 
@@ -414,9 +417,9 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
     }
 
     final ContextURL contextURL = ContextURLParser.parse(resource.getContextURL());
-    final URI base = resource.getContextURL() == null ?
-        resource.getPayload().getBaseURI() :
-        contextURL.getServiceRoot();
+    final URI base = resource.getContextURL() == null
+            ? resource.getPayload().getBaseURI()
+            : contextURL.getServiceRoot();
     final EdmType edmType = findType(contextURL, resource.getMetadataETag());
     FullQualifiedName typeName = null;
     if (resource.getPayload().getType() == null) {
@@ -519,18 +522,40 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
 
     ODataValue value = null;
     if (valuable.isGeospatial()) {
-      value = client.getObjectFactory().newPrimitiveValueBuilder()
-              .setValue(valuable.asGeospatial())
-              .setType(type == null
+      value = client.getObjectFactory().newPrimitiveValueBuilder().
+              setValue(valuable.asGeospatial()).
+              setType(type == null
                       || EdmPrimitiveTypeKind.Geography.getFullQualifiedName().equals(type)
                       || EdmPrimitiveTypeKind.Geometry.getFullQualifiedName().equals(type)
                       ? valuable.asGeospatial().getEdmPrimitiveTypeKind()
-                      : EdmPrimitiveTypeKind.valueOfFQN(client.getServiceVersion(), type.toString())).build();
+                      : EdmPrimitiveTypeKind.valueOfFQN(client.getServiceVersion(), type.toString())).
+              build();
     } else if (valuable.isPrimitive() || valuable.getValueType() == null) {
-      value = client.getObjectFactory().newPrimitiveValueBuilder()
-              .setValue(valuable.asPrimitive())
-              .setType(type == null || !EdmPrimitiveType.EDM_NAMESPACE.equals(type.getNamespace()) ? null
-                      : EdmPrimitiveTypeKind.valueOfFQN(client.getServiceVersion(), type.toString())).build();
+      // fixes non-string values treated as string when no type information is available at de-serialization level
+      if (type != null && !EdmPrimitiveTypeKind.String.getFullQualifiedName().equals(type)
+              && EdmPrimitiveType.EDM_NAMESPACE.equals(type.getNamespace())
+              && valuable.asPrimitive() instanceof String) {
+
+        final EdmPrimitiveType primitiveType =
+                EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.valueOf(type.getName()));
+        final Class<?> returnType = primitiveType.getDefaultType().isAssignableFrom(Calendar.class)
+                ? Timestamp.class : primitiveType.getDefaultType();
+        try {
+          valuable.setValue(valuable.getValueType(),
+                  primitiveType.valueOfString(valuable.asPrimitive().toString(),
+                          null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null,
+                          returnType));
+        } catch (EdmPrimitiveTypeException e) {
+          throw new IllegalArgumentException(e);
+        }
+      }
+
+      value = client.getObjectFactory().newPrimitiveValueBuilder().
+              setValue(valuable.asPrimitive()).
+              setType(type == null || !EdmPrimitiveType.EDM_NAMESPACE.equals(type.getNamespace())
+                      ? null
+                      : EdmPrimitiveTypeKind.valueOfFQN(client.getServiceVersion(), type.toString())).
+              build();
     } else if (valuable.isComplex() || valuable.isLinkedComplex()) {
       value = client.getObjectFactory().newComplexValue(type == null ? null : type.toString());
       if (!valuable.isNull()) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/eb1de05a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataPrimitiveValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataPrimitiveValue.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataPrimitiveValue.java
index df63808..2c97507 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataPrimitiveValue.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataPrimitiveValue.java
@@ -59,15 +59,15 @@ public abstract class AbstractODataPrimitiveValue extends AbstractODataValue imp
     public AbstractBuilder setType(final EdmPrimitiveTypeKind type) {
       if (type != null && !type.getSupportedVersions().contains(version)) {
         throw new IllegalArgumentException(String.format(
-            "Type %s not supported by OData version %s", type.toString(), version));
+                "Type %s not supported by OData version %s", type.toString(), version));
       }
       if (type == EdmPrimitiveTypeKind.Stream) {
         throw new IllegalArgumentException(String.format(
-            "Cannot build a primitive value for %s", EdmPrimitiveTypeKind.Stream.toString()));
+                "Cannot build a primitive value for %s", EdmPrimitiveTypeKind.Stream.toString()));
       }
       if (type == EdmPrimitiveTypeKind.Geography || type == EdmPrimitiveTypeKind.Geometry) {
         throw new IllegalArgumentException(
-            type + "is not an instantiable type. "
+                type + "is not an instantiable type. "
                 + "An entity can declare a property to be of type Geometry. "
                 + "An instance of an entity MUST NOT have a value of type Geometry. "
                 + "Each value MUST be of some subtype.");
@@ -186,14 +186,10 @@ public abstract class AbstractODataPrimitiveValue extends AbstractODataValue imp
     } else if (typeKind.isGeospatial()) {
       return reference.cast(value);
     } else {
-      try {
-        // TODO: when Edm is available, set facets when calling this method
-        return type.valueOfString(type.valueToString(value,
-            null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null),
-            null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, reference);
-      } catch (EdmPrimitiveTypeException e) {
-        throw new IllegalArgumentException(e);
-      }
+      // TODO: set facets
+      return type.valueOfString(type.valueToString(value,
+              null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null),
+              null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, reference);
     }
   }
 
@@ -205,7 +201,7 @@ public abstract class AbstractODataPrimitiveValue extends AbstractODataValue imp
       return value.toString();
     } else {
       try {
-        // TODO: when Edm is available, set facets when calling this method
+      // TODO: set facets
         return type.valueToString(value, null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);
       } catch (EdmPrimitiveTypeException e) {
         throw new IllegalArgumentException(e);


[4/4] git commit: [OLINGO-377] Merge branch 'master' into OLINGO-377-FIT

Posted by mi...@apache.org.
[OLINGO-377] Merge branch 'master' into OLINGO-377-FIT

Conflicts:
	fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/45a46f86
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/45a46f86
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/45a46f86

Branch: refs/heads/OLINGO-377-FIT
Commit: 45a46f86e9de9c18000e4c5800ffc4e1adb5d141
Parents: c35725c 7442b27
Author: Michael Bolz <mi...@sap.com>
Authored: Tue Jul 29 14:43:06 2014 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Tue Jul 29 14:43:57 2014 +0200

----------------------------------------------------------------------
 .../olingo/fit/tecsvc/client/BasicITCase.java   | 61 ++++++++++++++++----
 .../olingo/fit/v3/EntityCreateTestITCase.java   |  2 +-
 .../olingo/fit/v3/EntitySetTestITCase.java      |  2 +-
 .../apache/olingo/fit/v3/InvokeTestITCase.java  |  2 +-
 .../olingo/fit/v3/QueryOptionsTestITCase.java   |  2 +-
 .../fit/v4/BoundOperationInvokeTestITCase.java  |  4 +-
 .../olingo/fit/v4/EntitySetTestITCase.java      |  2 +-
 .../fit/v4/OperationImportInvokeTestITCase.java |  4 +-
 .../olingo/fit/v4/QueryOptionsTestITCase.java   |  2 +-
 .../api/domain/CommonODataEntitySet.java        |  2 +-
 .../core/domain/AbstractODataEntitySet.java     |  6 +-
 .../core/domain/v3/ODataEntitySetImpl.java      |  5 --
 .../core/domain/v4/ODataEntitySetImpl.java      |  5 --
 .../tecsvc/processor/TechnicalProcessor.java    |  3 +-
 .../json/ODataJsonSerializerTest.java           | 11 ++--
 15 files changed, 70 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/45a46f86/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
----------------------------------------------------------------------
diff --cc fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
index 8514ca4,ba6c110..6df42eb
--- 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
@@@ -1,4 -1,4 +1,4 @@@
--/* 
++/*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
@@@ -18,21 -18,33 +18,35 @@@
   */
  package org.apache.olingo.fit.tecsvc.client;
  
+ import static org.hamcrest.CoreMatchers.containsString;
+ import static org.hamcrest.CoreMatchers.hasItem;
  import static org.junit.Assert.assertEquals;
  import static org.junit.Assert.assertNotNull;
- import static org.junit.Assert.assertTrue;
+ import static org.junit.Assert.assertNull;
+ import static org.junit.Assert.assertThat;
+ 
+ import java.net.URI;
+ import java.util.Collections;
+ import java.util.List;
  
 +import org.apache.olingo.client.api.CommonODataClient;
  import org.apache.olingo.client.api.communication.request.retrieve.EdmMetadataRequest;
+ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
  import org.apache.olingo.client.api.communication.request.retrieve.ODataServiceDocumentRequest;
  import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
  import org.apache.olingo.client.api.v4.ODataClient;
  import org.apache.olingo.client.core.ODataClientFactory;
  import org.apache.olingo.commons.api.domain.ODataServiceDocument;
+ import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
+ import org.apache.olingo.commons.api.domain.v4.ODataEntity;
+ import org.apache.olingo.commons.api.domain.v4.ODataEntitySet;
+ import org.apache.olingo.commons.api.domain.v4.ODataProperty;
  import org.apache.olingo.commons.api.edm.Edm;
  import org.apache.olingo.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.commons.api.format.ContentType;
  import org.apache.olingo.commons.api.format.ODataFormat;
 +import org.apache.olingo.fit.AbstractBaseTestITCase;
+ import org.apache.olingo.commons.api.http.HttpStatusCode;
  import org.apache.olingo.fit.tecsvc.TecSvcConst;
  import org.junit.Before;
  import org.junit.Test;
@@@ -49,11 -61,9 +63,10 @@@ public class BasicITCase extends Abstra
      odata.getConfiguration().setDefaultPubFormat(ODataFormat.JSON);
    }
  
 +
    @Test
    public void readServiceDocument() {
-     ODataServiceDocumentRequest request =
-             odata.getRetrieveRequestFactory().getServiceDocumentRequest(SERVICE_URI);
+     ODataServiceDocumentRequest request = odata.getRetrieveRequestFactory().getServiceDocumentRequest(SERVICE_URI);
      assertNotNull(request);
  
      ODataRetrieveResponse<ODataServiceDocument> response = request.execute();
@@@ -85,7 -94,32 +97,36 @@@
      assertEquals(2, edm.getSchemas().size());
    }
  
+   @Test
+   public void readEntitySet() {
+     final ODataEntitySetRequest<ODataEntitySet> request = odata.getRetrieveRequestFactory()
+         .getEntitySetRequest(URI.create(SERVICE_URI + "/ESMixPrimCollComp"));
+     assertNotNull(request);
+ 
+     final ODataRetrieveResponse<ODataEntitySet> response = request.execute();
+     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
+     assertThat(response.getContentType(), containsString(ContentType.APPLICATION_JSON.toContentTypeString()));
+ 
+     final ODataEntitySet entitySet = response.getBody();
+     assertNotNull(entitySet);
+ 
+     assertNull(entitySet.getCount());
+     assertNull(entitySet.getNext());
+     assertEquals(Collections.<ODataAnnotation> emptyList(), entitySet.getAnnotations());
+     assertNull(entitySet.getDeltaLink());
+ 
+     final List<ODataEntity> entities = entitySet.getEntities();
+     assertNotNull(entities);
+     assertEquals(3, entities.size());
+     final ODataEntity entity = entities.get(2);
+     assertNotNull(entity);
+     final ODataProperty property = entity.getProperty("PropertyInt16");
+     assertNotNull(property);
+     assertNotNull(property.getPrimitiveValue());
+     assertEquals(0, property.getPrimitiveValue().toValue());
+   }
++
 +  @Override protected CommonODataClient getClient() {
 +    return null;
 +  }
  }


[3/4] git commit: [OLINGO-317] Additional integration test and simplified getCount()

Posted by mi...@apache.org.
[OLINGO-317] Additional integration test and simplified getCount()


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/7442b27c
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/7442b27c
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/7442b27c

Branch: refs/heads/OLINGO-377-FIT
Commit: 7442b27cd74ce8512ffa369cd899196434f4701c
Parents: eb1de05
Author: Michael Bolz <mi...@sap.com>
Authored: Tue Jul 29 14:37:49 2014 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Tue Jul 29 14:37:49 2014 +0200

----------------------------------------------------------------------
 .../olingo/fit/tecsvc/client/BasicITCase.java   | 59 +++++++++++++++++---
 .../olingo/fit/v3/EntityCreateTestITCase.java   |  2 +-
 .../olingo/fit/v3/EntitySetTestITCase.java      |  2 +-
 .../apache/olingo/fit/v3/InvokeTestITCase.java  |  2 +-
 .../olingo/fit/v3/QueryOptionsTestITCase.java   |  2 +-
 .../fit/v4/BoundOperationInvokeTestITCase.java  |  4 +-
 .../olingo/fit/v4/EntitySetTestITCase.java      |  2 +-
 .../fit/v4/OperationImportInvokeTestITCase.java |  4 +-
 .../olingo/fit/v4/QueryOptionsTestITCase.java   |  2 +-
 .../api/domain/CommonODataEntitySet.java        |  2 +-
 .../core/domain/AbstractODataEntitySet.java     |  6 +-
 .../core/domain/v3/ODataEntitySetImpl.java      |  5 --
 .../core/domain/v4/ODataEntitySetImpl.java      |  5 --
 .../tecsvc/processor/TechnicalProcessor.java    |  3 +-
 .../json/ODataJsonSerializerTest.java           | 11 ++--
 15 files changed, 69 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/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 a419ca0..ba6c110 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
@@ -18,19 +18,33 @@
  */
 package org.apache.olingo.fit.tecsvc.client;
 
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.hasItem;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
+
+import java.net.URI;
+import java.util.Collections;
+import java.util.List;
 
 import org.apache.olingo.client.api.communication.request.retrieve.EdmMetadataRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataServiceDocumentRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.v4.ODataClient;
 import org.apache.olingo.client.core.ODataClientFactory;
 import org.apache.olingo.commons.api.domain.ODataServiceDocument;
+import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
+import org.apache.olingo.commons.api.domain.v4.ODataEntity;
+import org.apache.olingo.commons.api.domain.v4.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.v4.ODataProperty;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.format.ODataFormat;
+import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.tecsvc.TecSvcConst;
 import org.junit.Before;
 import org.junit.Test;
@@ -49,20 +63,18 @@ public class BasicITCase {
 
   @Test
   public void readServiceDocument() {
-    ODataServiceDocumentRequest request =
-            odata.getRetrieveRequestFactory().getServiceDocumentRequest(SERVICE_URI);
+    ODataServiceDocumentRequest request = odata.getRetrieveRequestFactory().getServiceDocumentRequest(SERVICE_URI);
     assertNotNull(request);
 
     ODataRetrieveResponse<ODataServiceDocument> response = request.execute();
-
-    assertEquals(200, response.getStatusCode());
+    assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
     ODataServiceDocument serviceDocument = response.getBody();
     assertNotNull(serviceDocument);
 
-    assertTrue(serviceDocument.getEntitySetNames().contains("ESAllPrim"));
-    assertTrue(serviceDocument.getFunctionImportNames().contains("FICRTCollCTTwoPrim"));
-    assertTrue(serviceDocument.getSingletonNames().contains("SIMedia"));
+    assertThat(serviceDocument.getEntitySetNames(), hasItem("ESAllPrim"));
+    assertThat(serviceDocument.getFunctionImportNames(), hasItem("FICRTCollCTTwoPrim"));
+    assertThat(serviceDocument.getSingletonNames(), hasItem("SIMedia"));
   }
 
   @Test
@@ -71,7 +83,7 @@ public class BasicITCase {
     assertNotNull(request);
 
     ODataRetrieveResponse<Edm> response = request.execute();
-    assertEquals(200, response.getStatusCode());
+    assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
     Edm edm = response.getBody();
 
@@ -81,4 +93,33 @@ public class BasicITCase {
     assertNotNull(edm.getTerm(new FullQualifiedName("Core.Description")));
     assertEquals(2, edm.getSchemas().size());
   }
+
+  @Test
+  public void readEntitySet() {
+    final ODataEntitySetRequest<ODataEntitySet> request = odata.getRetrieveRequestFactory()
+        .getEntitySetRequest(URI.create(SERVICE_URI + "/ESMixPrimCollComp"));
+    assertNotNull(request);
+
+    final ODataRetrieveResponse<ODataEntitySet> response = request.execute();
+    assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
+    assertThat(response.getContentType(), containsString(ContentType.APPLICATION_JSON.toContentTypeString()));
+
+    final ODataEntitySet entitySet = response.getBody();
+    assertNotNull(entitySet);
+
+    assertNull(entitySet.getCount());
+    assertNull(entitySet.getNext());
+    assertEquals(Collections.<ODataAnnotation> emptyList(), entitySet.getAnnotations());
+    assertNull(entitySet.getDeltaLink());
+
+    final List<ODataEntity> entities = entitySet.getEntities();
+    assertNotNull(entities);
+    assertEquals(3, entities.size());
+    final ODataEntity entity = entities.get(2);
+    assertNotNull(entity);
+    final ODataProperty property = entity.getProperty("PropertyInt16");
+    assertNotNull(property);
+    assertNotNull(property.getPrimitiveValue());
+    assertEquals(0, property.getPrimitiveValue().toValue());
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java
index 1a89f64..ba4bed6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java
@@ -318,7 +318,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
 
     final ODataEntitySet entitySet = res.getBody();
     assertNotNull(entitySet);
-    assertEquals(2, entitySet.getCount());
+    assertEquals(2, entitySet.getEntities().size());
 
     for (ODataEntity entity : entitySet.getEntities()) {
       final Integer key = entity.getProperty("OrderId").getPrimitiveValue().toCastValue(Integer.class);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/fit/src/test/java/org/apache/olingo/fit/v3/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v3/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v3/EntitySetTestITCase.java
index 90028ee..4891d5d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v3/EntitySetTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v3/EntitySetTestITCase.java
@@ -156,7 +156,7 @@ public class EntitySetTestITCase extends AbstractTestITCase {
     assertNotNull(res);
 
     final ResWrap<ODataEntitySet> entitySet = res.getBodyAs(ODataEntitySet.class);
-    assertEquals(10, entitySet.getPayload().getCount());
+    assertEquals(Integer.valueOf(10), entitySet.getPayload().getCount());
   }
 
   private void rawRequest(final ODataFormat format) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/fit/src/test/java/org/apache/olingo/fit/v3/InvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v3/InvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v3/InvokeTestITCase.java
index ebf7071..41a5b84 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v3/InvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v3/InvokeTestITCase.java
@@ -222,7 +222,7 @@ public class InvokeTestITCase extends AbstractTestITCase {
     ODataEntitySet employees = getClient().getRetrieveRequestFactory().
         getEntitySetRequest(employeesURI).execute().getBody();
     assertFalse(employees.getEntities().isEmpty());
-    final Map<Integer, Integer> preSalaries = new HashMap<Integer, Integer>(employees.getCount());
+    final Map<Integer, Integer> preSalaries = new HashMap<Integer, Integer>(employees.getEntities().size());
     for (ODataEntity employee : employees.getEntities()) {
       preSalaries.put(employee.getProperty("PersonId").getPrimitiveValue().toCastValue(Integer.class),
           employee.getProperty("Salary").getPrimitiveValue().toCastValue(Integer.class));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/fit/src/test/java/org/apache/olingo/fit/v3/QueryOptionsTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v3/QueryOptionsTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v3/QueryOptionsTestITCase.java
index 59401c2..9e39f53 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v3/QueryOptionsTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v3/QueryOptionsTestITCase.java
@@ -155,7 +155,7 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     req.setFormat(ODataFormat.ATOM);
     final ODataEntitySet feed = req.execute().getBody();
     assertNotNull(feed);
-    assertEquals(feed.getEntities().size(), feed.getCount());
+    assertEquals(Integer.valueOf(feed.getEntities().size()), feed.getCount());
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
index ddb520a..5be15f7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
@@ -88,7 +88,7 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     getProductDetailsReq.setFormat(format);
     final ODataEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
     assertNotNull(getProductDetailsRes);
-    assertEquals(1, getProductDetailsRes.getCount());
+    assertEquals(1, getProductDetailsRes.getEntities().size());
 
     // GetRelatedProduct
     final Map<String, Object> keyMap = new LinkedHashMap<String, Object>();
@@ -202,7 +202,7 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
             Collections.<String, ODataValue> singletonMap("count", count));
     final ODataEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
     assertNotNull(getProductDetailsRes);
-    assertEquals(1, getProductDetailsRes.getCount());
+    assertEquals(1, getProductDetailsRes.getEntities().size());
 
     // GetRelatedProduct
     final Map<String, Object> keyMap = new LinkedHashMap<String, Object>();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
index f37eeb0..4deb265 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
@@ -80,7 +80,7 @@ public class EntitySetTestITCase extends AbstractTestITCase {
     assertNotNull(res);
 
     final ResWrap<ODataEntitySet> entitySet = res.getBodyAs(ODataEntitySet.class);
-    assertEquals(5, entitySet.getPayload().getCount());
+    assertEquals(5, entitySet.getPayload().getEntities().size());
 
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Address",
         entitySet.getPayload().getEntities().get(2).getProperty("HomeAddress").getComplexValue().getTypeName());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
index 636ea0d..f89d1e7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
@@ -93,7 +93,7 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
     productsReq.setFormat(format);
     final ODataEntitySet products = productsReq.execute().getBody();
     assertNotNull(products);
-    assertEquals(5, products.getCount());
+    assertEquals(5, products.getEntities().size());
 
     // GetProductsByAccessLevel
     final ODataEnumValue accessLevel = getClient().getObjectFactory().
@@ -165,7 +165,7 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
         getFunctionImportInvokeRequest("GetAllProducts");
     final ODataEntitySet products = productsReq.execute().getBody();
     assertNotNull(products);
-    assertEquals(5, products.getCount());
+    assertEquals(5, products.getEntities().size());
 
     // GetProductsByAccessLevel
     final ODataEnumValue accessLevel = getClient().getObjectFactory().

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
index 2cd4edf..f86f1c2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
@@ -194,7 +194,7 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
 
     final ODataEntitySet feed = req.execute().getBody();
     assertNotNull(feed);
-    assertEquals(feed.getEntities().size(), feed.getCount());
+    assertEquals(Integer.valueOf(feed.getEntities().size()), feed.getCount());
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntitySet.java
index da106b1..b2d76fb 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntitySet.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntitySet.java
@@ -45,7 +45,7 @@ public interface CommonODataEntitySet extends ODataInvokeResult {
    * 
    * @return in-line count value.
    */
-  int getCount();
+  Integer getCount();
 
   /**
    * Sets in-line count.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntitySet.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntitySet.java
index 911a06c..2e8218c 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntitySet.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntitySet.java
@@ -59,11 +59,9 @@ public abstract class AbstractODataEntitySet extends AbstractODataPayload implem
     return next;
   }
 
-  protected abstract int getEntitiesSize();
-
   @Override
-  public int getCount() {
-    return count == null ? getEntitiesSize() : count;
+  public Integer getCount() {
+    return count;
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataEntitySetImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataEntitySetImpl.java
index 5fd14d5..ee2eeda 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataEntitySetImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataEntitySetImpl.java
@@ -37,11 +37,6 @@ public class ODataEntitySetImpl extends AbstractODataEntitySet implements ODataE
   }
 
   @Override
-  protected int getEntitiesSize() {
-    return entities.size();
-  }
-
-  @Override
   public List<ODataEntity> getEntities() {
     return entities;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v4/ODataEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v4/ODataEntitySetImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v4/ODataEntitySetImpl.java
index e979869..eda164e 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v4/ODataEntitySetImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v4/ODataEntitySetImpl.java
@@ -44,11 +44,6 @@ public class ODataEntitySetImpl extends AbstractODataEntitySet implements ODataE
   }
 
   @Override
-  protected int getEntitiesSize() {
-    return entities.size();
-  }
-
-  @Override
   public List<ODataEntity> getEntities() {
     return entities;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java
index 1fc503a..d079dd0 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java
@@ -40,7 +40,6 @@ import org.apache.olingo.server.api.uri.UriResource;
 import org.apache.olingo.server.api.uri.UriResourceEntitySet;
 import org.apache.olingo.server.tecsvc.data.DataProvider;
 
-import java.net.URI;
 import java.util.List;
 
 public class TechnicalProcessor implements CollectionProcessor, EntityProcessor {
@@ -112,7 +111,7 @@ public class TechnicalProcessor implements CollectionProcessor, EntityProcessor
   private EntitySet readEntitySetInternal(final EdmEntitySet edmEntitySet, final String serviceRoot)
       throws DataProvider.DataProviderException {
     EntitySet entitySet = dataProvider.readAll(edmEntitySet);
-    entitySet.setNext(URI.create(serviceRoot + "/" + edmEntitySet.getEntityType().getName()));
+    // TODO: set count and next link
     return entitySet;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/7442b27c/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 08c37de..7e85dc6 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
@@ -134,12 +134,11 @@ public class ODataJsonSerializerTest {
         ContextURL.Builder.create().entitySet(edmEntitySet).build());
     final String resultString = IOUtils.toString(result);
 
-    Assert.assertTrue(resultString.matches("\\{"
-        + "\"@odata\\.context\":\"\\$metadata#ESAllPrim\","
-        + "\"@odata\\.count\":3,"
-        + "\"value\":\\[.*\\],"
-        + "\"@odata\\.nextLink\":\"/next\""
-        + "\\}"));
+    Assert.assertThat(resultString, CoreMatchers.startsWith("{"
+        + "\"@odata.context\":\"$metadata#ESAllPrim\","
+        + "\"@odata.count\":3,\"value\":["));
+    Assert.assertThat(resultString, CoreMatchers.endsWith("],"
+        + "\"@odata.nextLink\":\"/next\"}"));
 
     int count = 0;
     int index = -1;


[2/4] git commit: [OLINGO-377] Merge branch 'master' into OLINGO-377-FIT

Posted by mi...@apache.org.
[OLINGO-377] Merge branch 'master' into OLINGO-377-FIT


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/c35725ce
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/c35725ce
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/c35725ce

Branch: refs/heads/OLINGO-377-FIT
Commit: c35725ce81a5a3035c1c84d8b973879b67f74bff
Parents: 3aab1c1 eb1de05
Author: Michael Bolz <mi...@sap.com>
Authored: Tue Jul 29 14:33:37 2014 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Tue Jul 29 14:33:37 2014 +0200

----------------------------------------------------------------------
 .../olingo/fit/v4/EntityRetrieveTestITCase.java | 59 +++++++++---------
 .../core/serialization/AbstractODataBinder.java | 63 ++++++++++++++------
 .../domain/AbstractODataPrimitiveValue.java     | 20 +++----
 3 files changed, 82 insertions(+), 60 deletions(-)
----------------------------------------------------------------------