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 2015/11/22 18:46:24 UTC
[1/3] olingo-odata2 git commit: [OLINGO-822] Support skip facets in
expand for XML producer
Repository: olingo-odata2
Updated Branches:
refs/heads/master 352a82c3c -> 843fba144
[OLINGO-822] Support skip facets in expand for XML producer
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/bdaec2fa
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/bdaec2fa
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/bdaec2fa
Branch: refs/heads/master
Commit: bdaec2fa9b8fb59c5b98fb8c2b099e9f0ef91e0a
Parents: f8bbd74
Author: mibo <mi...@mirb.de>
Authored: Sun Nov 15 20:49:53 2015 +0100
Committer: mibo <mi...@mirb.de>
Committed: Sun Nov 15 20:49:53 2015 +0100
----------------------------------------------------------------------
.../api/ep/callback/WriteCallbackContext.java | 21 +++++++
.../ep/producer/AtomEntryEntityProducer.java | 12 ++--
.../odata2/core/ep/producer/MyCallback.java | 13 +++--
.../core/ep/producer/XmlExpandProducerTest.java | 59 +++++++++++++++++++-
4 files changed, 92 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/bdaec2fa/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/callback/WriteCallbackContext.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/callback/WriteCallbackContext.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/callback/WriteCallbackContext.java
index 7659765..f4143bb 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/callback/WriteCallbackContext.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/callback/WriteCallbackContext.java
@@ -25,6 +25,7 @@ import org.apache.olingo.odata2.api.edm.EdmEntitySet;
import org.apache.olingo.odata2.api.edm.EdmException;
import org.apache.olingo.odata2.api.edm.EdmNavigationProperty;
import org.apache.olingo.odata2.api.ep.EntityProviderException;
+import org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties;
import org.apache.olingo.odata2.api.uri.ExpandSelectTreeNode;
/**
@@ -37,6 +38,7 @@ public abstract class WriteCallbackContext {
private EdmNavigationProperty navigationProperty;
private Map<String, Object> entryData;
private ExpandSelectTreeNode currentNode;
+ private EntityProviderWriteProperties currentWriteProperties;
/**
* Current means the node pointing to the target entity set
@@ -118,4 +120,23 @@ public abstract class WriteCallbackContext {
}
return key;
}
+
+ /**
+ * EntityProviderWriteProperties of outer producer.
+ *
+ * @param currentWriteProperties of outer producer.
+ */
+ public void setCurrentWriteProperties(EntityProviderWriteProperties currentWriteProperties) {
+ this.currentWriteProperties = currentWriteProperties;
+ }
+
+ /**
+ * EntityProviderWriteProperties which were set by outer producer or <code>null</code>
+ * if not supported.
+ *
+ * @return set by outer producer or <code>null</code> if not supported.
+ */
+ public EntityProviderWriteProperties getCurrentWriteProperties() {
+ return currentWriteProperties;
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/bdaec2fa/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
index c8da1d8..5e92500 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
@@ -262,6 +262,7 @@ public class AtomEntryEntityProducer {
context.setSourceEntitySet(eia.getEntitySet());
context.setNavigationProperty(navProp);
context.setEntryData(data);
+ context.setCurrentWriteProperties(properties);
ExpandSelectTreeNode subNode = properties.getExpandSelectTree().getLinks().get(navigationPropertyName);
context.setCurrentExpandSelectTreeNode(subNode);
context.setSelfLink(new URI(self));
@@ -270,7 +271,7 @@ public class AtomEntryEntityProducer {
if (callback == null) {
throw new EntityProviderException(EntityProviderException.EXPANDNOTSUPPORTED);
}
- WriteFeedCallbackResult result = null;
+ WriteFeedCallbackResult result;
try {
result = ((OnWriteFeedContent) callback).retrieveFeedResult(context);
} catch (ODataApplicationException e) {
@@ -304,6 +305,7 @@ public class AtomEntryEntityProducer {
EdmNavigationProperty navProp = (EdmNavigationProperty) eia.getEntityType().getProperty(navigationPropertyName);
WriteEntryCallbackContext context = new WriteEntryCallbackContext();
context.setSourceEntitySet(eia.getEntitySet());
+ context.setCurrentWriteProperties(properties);
context.setNavigationProperty(navProp);
context.setEntryData(data);
ExpandSelectTreeNode subNode = properties.getExpandSelectTree().getLinks().get(navigationPropertyName);
@@ -313,7 +315,7 @@ public class AtomEntryEntityProducer {
if (callback == null) {
throw new EntityProviderException(EntityProviderException.EXPANDNOTSUPPORTED);
}
- WriteEntryCallbackResult result = null;
+ WriteEntryCallbackResult result;
try {
result = ((OnWriteEntryContent) callback).retrieveEntryResult(context);
} catch (ODataApplicationException e) {
@@ -461,9 +463,7 @@ public class AtomEntryEntityProducer {
if (updateDate == null) {
updateDate = new Date();
}
- String valueToString =
- EdmDateTimeOffset.getInstance().valueToString(updateDate, EdmLiteralKind.DEFAULT, updateFacets);
- return valueToString;
+ return EdmDateTimeOffset.getInstance().valueToString(updateDate, EdmLiteralKind.DEFAULT, updateFacets);
}
private String getTargetPathValue(final EntityInfoAggregator eia, final String targetPath,
@@ -608,7 +608,7 @@ public class AtomEntryEntityProducer {
private boolean isNotMappedViaCustomMapping(final EntityPropertyInfo propertyInfo) {
EdmCustomizableFeedMappings customMapping = propertyInfo.getCustomMapping();
if (customMapping != null && customMapping.isFcKeepInContent() != null) {
- return customMapping.isFcKeepInContent().booleanValue();
+ return customMapping.isFcKeepInContent();
}
return true;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/bdaec2fa/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/MyCallback.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/MyCallback.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/MyCallback.java
index bdea75a..25770bf 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/MyCallback.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/MyCallback.java
@@ -61,16 +61,21 @@ public class MyCallback implements OnWriteEntryContent, OnWriteFeedContent {
callbacks.put(navPropName, this);
}
EntityProviderWriteProperties inlineProperties =
- EntityProviderWriteProperties.serviceRoot(baseUri).callbacks(callbacks).expandSelectTree(
- context.getCurrentExpandSelectTreeNode()).selfLink(context.getSelfLink()).build();
+ EntityProviderWriteProperties.serviceRoot(baseUri).callbacks(callbacks)
+ .expandSelectTree(context.getCurrentExpandSelectTreeNode())
+ .selfLink(context.getSelfLink())
+ .validatingFacets(context.getCurrentWriteProperties().isValidatingFacets())
+ .build();
result.setFeedData(dataProvider.getEmployeesData());
result.setInlineProperties(inlineProperties);
}
} else if ("Buildings".equals(context.getSourceEntitySet().getName())) {
EntityProviderWriteProperties inlineProperties =
- EntityProviderWriteProperties.serviceRoot(baseUri).expandSelectTree(
- context.getCurrentExpandSelectTreeNode()).selfLink(context.getSelfLink()).build();
+ EntityProviderWriteProperties.serviceRoot(baseUri)
+ .expandSelectTree(context.getCurrentExpandSelectTreeNode())
+ .validatingFacets(context.getCurrentWriteProperties().isValidatingFacets())
+ .selfLink(context.getSelfLink()).build();
List<Map<String, Object>> emptyData = new ArrayList<Map<String, Object>>();
result.setFeedData(emptyData);
result.setInlineProperties(inlineProperties);
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/bdaec2fa/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlExpandProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlExpandProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlExpandProducerTest.java
index c4ba63c..faab701 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlExpandProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlExpandProducerTest.java
@@ -22,6 +22,8 @@ import static org.custommonkey.xmlunit.XMLAssert.assertXpathExists;
import static org.custommonkey.xmlunit.XMLAssert.assertXpathNotExists;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import java.io.IOException;
import java.io.InputStream;
@@ -33,9 +35,7 @@ import java.util.List;
import java.util.Map;
import org.apache.olingo.odata2.api.ODataCallback;
-import org.apache.olingo.odata2.api.edm.Edm;
-import org.apache.olingo.odata2.api.edm.EdmEntitySet;
-import org.apache.olingo.odata2.api.edm.EdmException;
+import org.apache.olingo.odata2.api.edm.*;
import org.apache.olingo.odata2.api.ep.EntityProviderException;
import org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties;
import org.apache.olingo.odata2.api.ep.callback.OnWriteEntryContent;
@@ -104,6 +104,59 @@ public class XmlExpandProducerTest extends AbstractProviderTest {
verifyEmployees(employeeXPathString, xmlString);
}
+ @Test(expected = EntityProviderException.class)
+ public void expandSelectedEmployeesWithFacets() throws Exception {
+ Edm edm = MockFacade.getMockEdm();
+ EdmTyped imageUrlProperty = edm.getEntityType("RefScenario", "Employee").getProperty("ImageUrl");
+ EdmFacets facets = mock(EdmFacets.class);
+ when(facets.getMaxLength()).thenReturn(1);
+ when(((EdmProperty) imageUrlProperty).getFacets()).thenReturn(facets);
+
+ ExpandSelectTreeNode selectTree = getSelectExpandTree("Rooms('1')", "nr_Employees", "nr_Employees");
+
+ HashMap<String, ODataCallback> callbacksRoom = createCallbacks("Rooms");
+ EntityProviderWriteProperties properties =
+ EntityProviderWriteProperties.serviceRoot(BASE_URI).expandSelectTree(selectTree)
+ .callbacks(callbacksRoom)
+ .build();
+ AtomEntityProvider provider = createAtomEntityProvider();
+ ODataResponse response =
+ provider.writeEntry(edm.getDefaultEntityContainer().getEntitySet("Rooms"), roomData,
+ properties);
+
+ String xmlString = verifyResponse(response);
+ assertXpathNotExists("/a:entry/m:properties", xmlString);
+ assertXpathExists("/a:entry/a:link", xmlString);
+ verifyEmployees(employeeXPathString, xmlString);
+ }
+
+ @Test
+ public void expandSelectedEmployeesIgnoreFacets() throws Exception {
+ Edm edm = MockFacade.getMockEdm();
+ EdmTyped imageUrlProperty = edm.getEntityType("RefScenario", "Employee").getProperty("ImageUrl");
+ EdmFacets facets = mock(EdmFacets.class);
+ when(facets.getMaxLength()).thenReturn(1);
+ when(((EdmProperty) imageUrlProperty).getFacets()).thenReturn(facets);
+
+ ExpandSelectTreeNode selectTree = getSelectExpandTree("Rooms('1')", "nr_Employees", "nr_Employees");
+
+ HashMap<String, ODataCallback> callbacksRoom = createCallbacks("Rooms");
+ EntityProviderWriteProperties properties =
+ EntityProviderWriteProperties.serviceRoot(BASE_URI).expandSelectTree(selectTree).callbacks(callbacksRoom)
+ .callbacks(callbacksRoom).validatingFacets(false)
+ .build();
+ AtomEntityProvider provider = createAtomEntityProvider();
+ ODataResponse response =
+ provider.writeEntry(edm.getDefaultEntityContainer().getEntitySet("Rooms"), roomData,
+ properties);
+
+ String xmlString = verifyResponse(response);
+ assertXpathNotExists("/a:entry/m:properties", xmlString);
+ assertXpathExists("/a:entry/a:link", xmlString);
+ verifyEmployees(employeeXPathString, xmlString);
+ }
+
+
@Test
public void expandSelectedEmployeesWithBuilder() throws Exception {
EdmEntitySet entitySet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
[2/3] olingo-odata2 git commit: [OLINGO-822] Support skip facets in
expand for JSON producer
Posted by mi...@apache.org.
[OLINGO-822] Support skip facets in expand for JSON producer
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/21dfed3b
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/21dfed3b
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/21dfed3b
Branch: refs/heads/master
Commit: 21dfed3b6b399e4629729e35cc300104b74cb153
Parents: bdaec2f
Author: mibo <mi...@mirb.de>
Authored: Sun Nov 22 14:27:03 2015 +0100
Committer: mibo <mi...@mirb.de>
Committed: Sun Nov 22 14:27:03 2015 +0100
----------------------------------------------------------------------
.../ep/producer/JsonEntryEntityProducer.java | 1 +
.../producer/JsonEntryEntityProducerTest.java | 122 +++++++++++++++++--
2 files changed, 116 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/21dfed3b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
index 19736cf..df563b0 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
@@ -139,6 +139,7 @@ public class JsonEntryEntityProducer {
context.setSourceEntitySet(entitySet);
context.setNavigationProperty(navigationProperty);
context.setEntryData(data);
+ context.setCurrentWriteProperties(properties);
context.setCurrentExpandSelectTreeNode(properties.getExpandSelectTree().getLinks().get(
navigationPropertyName));
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/21dfed3b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
index 67b65d2..2b86d06 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
@@ -30,13 +30,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
+import java.util.*;
import org.apache.olingo.odata2.api.ODataCallback;
import org.apache.olingo.odata2.api.edm.*;
@@ -585,6 +579,120 @@ public class JsonEntryEntityProducerTest extends BaseTest {
json);
}
+ @Test(expected=EntityProviderException.class)
+ public void entryWithExpandedEntryWithFacets() throws Exception {
+ Edm edm = MockFacade.getMockEdm();
+ EdmTyped imageUrlProperty = edm.getEntityType("RefScenario", "Employee").getProperty("ImageUrl");
+ EdmFacets facets = mock(EdmFacets.class);
+ when(facets.getMaxLength()).thenReturn(1);
+ when(((EdmProperty) imageUrlProperty).getFacets()).thenReturn(facets);
+
+ Map<String, Object> roomData = new HashMap<String, Object>();
+ roomData.put("Id", "1");
+ roomData.put("Name", "Neu Schwanstein");
+ roomData.put("Seats", new Integer(20));
+ roomData.put("Version", new Integer(3));
+
+ ExpandSelectTreeNode node2 = Mockito.mock(ExpandSelectTreeNode.class);
+ Map<String, ExpandSelectTreeNode> links = new HashMap<String, ExpandSelectTreeNode>();
+ links.put("nr_Employees", node2);
+ ExpandSelectTreeNode node1 = Mockito.mock(ExpandSelectTreeNode.class);
+ Mockito.when(node1.getLinks()).thenReturn(links);
+
+ class EntryCallback implements OnWriteFeedContent {
+ @Override
+ public WriteFeedCallbackResult retrieveFeedResult(final WriteFeedCallbackContext context)
+ throws ODataApplicationException {
+ Map<String, Object> data = new HashMap<String, Object>();
+ data.put("EmployeeId", "1");
+ data.put("ImageUrl", "hhtp://url");
+ WriteFeedCallbackResult result = new WriteFeedCallbackResult();
+ result.setFeedData(Collections.singletonList(data));
+ result.setInlineProperties(DEFAULT_PROPERTIES);
+ return result;
+ }
+ }
+
+ EntryCallback callback = new EntryCallback();
+ Map<String, ODataCallback> callbacks = new HashMap<String, ODataCallback>();
+ callbacks.put("nr_Employees", callback);
+
+ EdmEntitySet entitySet = edm.getDefaultEntityContainer().getEntitySet("Rooms");
+ final ODataResponse response =
+ new JsonEntityProvider().writeEntry(entitySet, roomData,
+ EntityProviderWriteProperties.serviceRoot(URI.create(BASE_URI)).expandSelectTree(node1)
+ .callbacks(callbacks).build());
+ assertNotNull(response);
+ }
+
+ @Test
+ public void entryWithExpandedEntryIgnoreFacets() throws Exception {
+ Edm edm = MockFacade.getMockEdm();
+ EdmTyped imageUrlProperty = edm.getEntityType("RefScenario", "Employee").getProperty("ImageUrl");
+ EdmFacets facets = mock(EdmFacets.class);
+ when(facets.getMaxLength()).thenReturn(1);
+ when(((EdmProperty) imageUrlProperty).getFacets()).thenReturn(facets);
+
+ Map<String, Object> roomData = new HashMap<String, Object>();
+ roomData.put("Id", "1");
+ roomData.put("Name", "Neu Schwanstein");
+ roomData.put("Seats", new Integer(20));
+ roomData.put("Version", new Integer(3));
+
+ ExpandSelectTreeNode node2 = Mockito.mock(ExpandSelectTreeNode.class);
+ Map<String, ExpandSelectTreeNode> links = new HashMap<String, ExpandSelectTreeNode>();
+ links.put("nr_Employees", node2);
+ ExpandSelectTreeNode node1 = Mockito.mock(ExpandSelectTreeNode.class);
+ Mockito.when(node1.getLinks()).thenReturn(links);
+
+ class EntryCallback implements OnWriteFeedContent {
+ @Override
+ public WriteFeedCallbackResult retrieveFeedResult(final WriteFeedCallbackContext context)
+ throws ODataApplicationException {
+ Map<String, Object> data = new HashMap<String, Object>();
+ data.put("EmployeeId", "1");
+ data.put("ImageUrl", "hhtp://url");
+ WriteFeedCallbackResult result = new WriteFeedCallbackResult();
+ result.setFeedData(Collections.singletonList(data));
+ result.setInlineProperties(DEFAULT_PROPERTIES);
+ EntityProviderWriteProperties properties =
+ EntityProviderWriteProperties.serviceRoot(URI.create(BASE_URI))
+ .validatingFacets(context.getCurrentWriteProperties().isValidatingFacets()).build();
+ result.setInlineProperties(properties);
+ return result;
+ }
+ }
+
+ EntryCallback callback = new EntryCallback();
+ Map<String, ODataCallback> callbacks = new HashMap<String, ODataCallback>();
+ callbacks.put("nr_Employees", callback);
+
+
+ EdmEntitySet entitySet = edm.getDefaultEntityContainer().getEntitySet("Rooms");
+ final ODataResponse response =
+ new JsonEntityProvider().writeEntry(entitySet, roomData,
+ EntityProviderWriteProperties.serviceRoot(URI.create(BASE_URI)).expandSelectTree(node1)
+ .validatingFacets(false)
+ .callbacks(callbacks).build());
+ final String json = verifyResponse(response);
+ assertEquals("{\"d\":{\"__metadata\":{\"id\":\"http://host:80/service/Rooms('1')\"," +
+ "\"uri\":\"http://host:80/service/Rooms('1')\",\"type\":\"RefScenario.Room\",\"etag\":\"W/\\\"3\\\"\"}," +
+ "\"nr_Employees\":{\"results\":[{\"__metadata\":{\"id\":\"http://host:80/service/Employees('1')\"," +
+ "\"uri\":\"http://host:80/service/Employees('1')\",\"type\":\"RefScenario.Employee\"," +
+ "\"content_type\":\"application/octet-stream\"," +
+ "\"media_src\":\"http://host:80/service/Employees('1')/$value\"," +
+ "\"edit_media\":\"http://host:80/service/Employees('1')/$value\"},\"EmployeeId\":\"1\",\"EmployeeName\":null," +
+ "\"ManagerId\":null,\"RoomId\":null,\"TeamId\":null," +
+ "\"Location\":{\"__metadata\":{\"type\":\"RefScenario.c_Location\"}," +
+ "\"City\":{\"__metadata\":{\"type\":\"RefScenario.c_City\"}," +
+ "\"PostalCode\":null,\"CityName\":null},\"Country\":null}," +
+ "\"Age\":null,\"EntryDate\":null,\"ImageUrl\":\"hhtp://url\"," +
+ "\"ne_Manager\":{\"__deferred\":{\"uri\":\"http://host:80/service/Employees('1')/ne_Manager\"}}," +
+ "\"ne_Team\":{\"__deferred\":{\"uri\":\"http://host:80/service/Employees('1')/ne_Team\"}}," +
+ "\"ne_Room\":{\"__deferred\":{\"uri\":\"http://host:80/service/Employees('1')/ne_Room\"}}}]}}}",
+ json);
+ }
+
@Test
public void entryWithExpandedEntryButNoRegisteredCallback() throws Exception {
final EdmEntitySet entitySet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
[3/3] olingo-odata2 git commit: [OLINGO-822] Merge branch
'OLINGO-822_WritePropertiesForExpandContext'
Posted by mi...@apache.org.
[OLINGO-822] Merge branch 'OLINGO-822_WritePropertiesForExpandContext'
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/843fba14
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/843fba14
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/843fba14
Branch: refs/heads/master
Commit: 843fba1449b367d5eef6fa69f4606bbd7232a9d9
Parents: 352a82c 21dfed3
Author: mibo <mi...@mirb.de>
Authored: Sun Nov 22 18:40:04 2015 +0100
Committer: mibo <mi...@mirb.de>
Committed: Sun Nov 22 18:40:04 2015 +0100
----------------------------------------------------------------------
.../api/ep/callback/WriteCallbackContext.java | 21 ++++
.../ep/producer/AtomEntryEntityProducer.java | 12 +-
.../ep/producer/JsonEntryEntityProducer.java | 1 +
.../producer/JsonEntryEntityProducerTest.java | 122 +++++++++++++++++--
.../odata2/core/ep/producer/MyCallback.java | 13 +-
.../core/ep/producer/XmlExpandProducerTest.java | 59 ++++++++-
6 files changed, 208 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/843fba14/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
----------------------------------------------------------------------
diff --cc odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
index c06f9b5,2b86d06..519ba0d
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
@@@ -30,23 -30,10 +30,17 @@@ import java.io.IOException
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Calendar;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.TimeZone;
+ import java.util.*;
import org.apache.olingo.odata2.api.ODataCallback;
-import org.apache.olingo.odata2.api.edm.*;
+import org.apache.olingo.odata2.api.edm.Edm;
+import org.apache.olingo.odata2.api.edm.EdmEntitySet;
+import org.apache.olingo.odata2.api.edm.EdmEntityType;
+import org.apache.olingo.odata2.api.edm.EdmFacets;
+import org.apache.olingo.odata2.api.edm.EdmMapping;
+import org.apache.olingo.odata2.api.edm.EdmProperty;
+import org.apache.olingo.odata2.api.edm.EdmSimpleTypeException;
+import org.apache.olingo.odata2.api.edm.EdmTyped;
import org.apache.olingo.odata2.api.ep.EntityProviderException;
import org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties;
import org.apache.olingo.odata2.api.ep.callback.OnWriteEntryContent;