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 2016/11/04 20:00:58 UTC
olingo-odata2 git commit: [OLINGO-1032] Fix for function import
return entity having multiplicity true was giving error.
Repository: olingo-odata2
Updated Branches:
refs/heads/master ed07b2dea -> 066b5fbef
[OLINGO-1032] Fix for function import return entity having multiplicity true was giving error.
Signed-off-by: mibo <mi...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/066b5fbe
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/066b5fbe
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/066b5fbe
Branch: refs/heads/master
Commit: 066b5fbefecae518bdb112500c55eed54862e767
Parents: ed07b2d
Author: moumita_sarkar01 <mo...@infosys.com>
Authored: Thu Sep 15 13:56:55 2016 +0530
Committer: mibo <mi...@apache.org>
Committed: Fri Nov 4 21:00:44 2016 +0100
----------------------------------------------------------------------
.../odata2/core/ep/JsonEntityProvider.java | 4 +-
.../odata2/core/ep/ProviderFacadeImplTest.java | 66 +++++++++++++++++++-
2 files changed, 67 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/066b5fbe/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/JsonEntityProvider.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/JsonEntityProvider.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/JsonEntityProvider.java
index c83b128..20a9f9b 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/JsonEntityProvider.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/JsonEntityProvider.java
@@ -326,7 +326,9 @@ public class JsonEntityProvider implements ContentTypeBasedEntityProvider {
final EntityProviderReadProperties properties) throws EntityProviderException {
try {
if (functionImport.getReturnType().getType().getKind() == EdmTypeKind.ENTITY) {
- return new JsonEntityConsumer().readEntry(functionImport.getEntitySet(), content, properties);
+ return functionImport.getReturnType().getMultiplicity() == EdmMultiplicity.MANY
+ ? new JsonEntityConsumer().readFeed(functionImport.getEntitySet(), content, properties)
+ : new JsonEntityConsumer().readEntry(functionImport.getEntitySet(), content, properties);
} else {
final EntityPropertyInfo info = EntityInfoAggregator.create(functionImport);
return functionImport.getReturnType().getMultiplicity() == EdmMultiplicity.MANY ?
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/066b5fbe/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImplTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImplTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImplTest.java
index 40e5e0b..c51c6de 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImplTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImplTest.java
@@ -35,8 +35,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
-import junit.framework.Assert;
-
import org.apache.olingo.odata2.api.commons.HttpContentType;
import org.apache.olingo.odata2.api.commons.HttpStatusCodes;
import org.apache.olingo.odata2.api.edm.Edm;
@@ -60,6 +58,8 @@ import org.apache.olingo.odata2.testutil.helper.StringHelper;
import org.apache.olingo.odata2.testutil.mock.MockFacade;
import org.junit.Test;
+import junit.framework.Assert;
+
/**
*
*/
@@ -227,6 +227,68 @@ public class ProviderFacadeImplTest extends AbstractConsumerTest {
}
@Test
+ public void readMultipleEntityFunctionImport() throws Exception {
+ final EdmFunctionImport functionImport = MockFacade.getMockEdm().getDefaultEntityContainer()
+ .getFunctionImport("EmployeeSearch");
+ InputStream content = new ByteArrayInputStream(
+ ("{\"d\": {"
+ + "\"results\": [{"
+ + "\"__metadata\": {"
+ + "\"type\": \"RefScenario.Employee\","
+ + "\"content_type\": \"image/jpeg\","
+ + "\"media_src\":\"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/$value\","
+ + "\"edit_media\":\"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/$value\""
+ + "},"
+ + "\"EmployeeId\": \"3\","
+ + "\"EmployeeName\": \"Jonathan Smith\","
+ + "\"ManagerId\": \"1\","
+ + "\"RoomId\": \"2\","
+ + "\"TeamId\": \"1\","
+ + "\"Location\": {"
+ + "\"__metadata\": {"
+ + "\"type\": \"RefScenario.c_Location\""
+ + "},"
+ + "\"City\": {"
+ + "\"__metadata\": {"
+ + "\"type\": \"RefScenario.c_City\""
+ + "},"
+ + "\"PostalCode\": \"69190\","
+ + "\"CityName\": \"Walldorf\""
+ + "},"
+ + "\"Country\": \"Germany\""
+ + "},"
+ + "\"Age\": 56,"
+ + "\"EntryDate\": null,"
+ + "\"ImageUrl\": \"Employees('3')/$value\","
+ + "\"ne_Manager\": {"
+ + "\"__deferred\": {"
+ + "\"uri\": \"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/ne_Manager\""
+ + "}"
+ + "},"
+ + "\"ne_Team\": {"
+ + "\"__deferred\": {"
+ + "\"uri\": \"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/ne_Team\""
+ + "}"
+ + "},"
+ + "\"ne_Room\": {"
+ + "\"__deferred\": {"
+ + "\"uri\": \"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/ne_Room\""
+ + "}"
+ + "}"
+ + "}]"
+ + "}"
+ + "}").getBytes("UTF-8"));
+ final Object result = new ProviderFacadeImpl().readFunctionImport(HttpContentType.APPLICATION_JSON,
+ functionImport, content, EntityProviderReadProperties.init().build());
+ ODataDeltaFeed feed = (ODataDeltaFeed) result;
+ List<ODataEntry> entries = feed.getEntries();
+ int size = entries.size();
+ assertEquals(1, size);
+ String id = (String) entries.get(0).getProperties().get("EmployeeId");
+ assertEquals("3", id);
+ }
+
+ @Test
public void readLink() throws Exception {
final EdmEntitySet entitySet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
InputStream content = new ByteArrayInputStream("{\"d\":{\"uri\":\"http://somelink\"}}".getBytes("UTF-8"));