Repository: olingo-odata4 Updated Branches: refs/heads/OLINGO-811_CountForExpand e7f8ff84a -> 8bd685b6f
[OLINGO-811] Added support for XML and fixed tests Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/8bd685b6 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/8bd685b6 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/8bd685b6 Branch: refs/heads/OLINGO-811_CountForExpand Commit: 8bd685b6ffc72a3c62a8cbdfa5e5568d7cb4094e Parents: e7f8ff8 Author: mibo <[email protected]> Authored: Sun Nov 15 08:20:15 2015 +0100 Committer: mibo <[email protected]> Committed: Sun Nov 15 08:51:28 2015 +0100 ---------------------------------------------------------------------- .../org/apache/olingo/client/core/Customers.xml | 4 +- .../apache/olingo/client/core/Products_5.xml | 9 ++- .../apache/olingo/client/core/VipCustomer.xml | 2 +- .../org/apache/olingo/client/core/annotated.xml | 2 +- .../core/collectionOfEntityReferences.xml | 1 + .../core/entity.withcomplexnavigation.xml | 2 +- .../serializer/json/ODataJsonSerializer.java | 40 ++++++----- .../core/serializer/xml/ODataXmlSerializer.java | 38 ++++++++++- .../serializer/xml/ODataXmlSerializerTest.java | 71 ++++++++++++++++++++ 9 files changed, 145 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8bd685b6/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.xml ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.xml index a0adedd..2db3ec2 100644 --- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.xml +++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.xml @@ -37,7 +37,7 @@ <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent"/> <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" title="Orders"> - <m:inline><feed><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders"/></feed></m:inline></link> + <m:inline><feed><m:count>1</m:count><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders"/></feed></m:inline></link> <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Company"/> <title/> <updated>2014-03-31T09:35:14Z</updated> @@ -80,7 +80,7 @@ <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Parent"/> <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" title="Orders"> - <m:inline><feed><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Orders"/></feed></m:inline> + <m:inline><feed><m:count>1</m:count><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Orders"/></feed></m:inline> </link> <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Company"/> <title/> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8bd685b6/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.xml ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.xml index 409799e..884fe8d 100644 --- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.xml +++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.xml @@ -23,7 +23,14 @@ <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)</id> <category term="#Microsoft.Test.OData.Services.ODataWCFService.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" /> <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)" /> - <link rel="http://docs.oasis-open.org/odata/ns/related/Details" type="application/atom+xml;type=feed" title="Details"><m:inline><feed><ref xmlns="http://docs.oasis-open.org/odata/ns/metadata" id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Details"/></feed></m:inline></link> + <link rel="http://docs.oasis-open.org/odata/ns/related/Details" type="application/atom+xml;type=feed" title="Details"> + <m:inline> + <feed> + <m:count>1</m:count> + <ref xmlns="http://docs.oasis-open.org/odata/ns/metadata" id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Details"/> + </feed> + </m:inline> + </link> <title /> <updated>2014-03-28T11:24:49Z</updated> <author> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8bd685b6/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.xml ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.xml index cc5c04d..8888af1 100644 --- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.xml +++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.xml @@ -30,7 +30,7 @@ <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme" /> <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer" /> <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Parent" /> - <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" title="Orders"><m:inline><feed><ref xmlns="http://docs.oasis-open.org/odata/ns/metadata" id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Orders"/></feed></m:inline></link> + <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" title="Orders"><m:inline><feed><m:count>1</m:count><ref xmlns="http://docs.oasis-open.org/odata/ns/metadata" id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Orders"/></feed></m:inline></link> <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Company" /> <title /> <updated>2014-03-28T13:03:32Z</updated> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8bd685b6/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.xml ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.xml index a3b06a9..43225bd 100644 --- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.xml +++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.xml @@ -26,7 +26,7 @@ <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent"/> <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" title="Orders"> - <m:inline><feed><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders"/></feed></m:inline> + <m:inline><feed><m:count>1</m:count><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders"/></feed></m:inline> <m:annotation term="com.contoso.display.style" m:type="#com.contoso.display.styleType"> <d:order m:type="Int32">2</d:order> </m:annotation> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8bd685b6/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.xml ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.xml index 9534270..82f7a45 100644 --- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.xml +++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.xml @@ -20,6 +20,7 @@ under the License. <feed xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Collection($ref)" xmlns="http://www.w3.org/2005/Atom"> + <m:count>1</m:count> <m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=5)"/> <m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=6)"/> </feed> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8bd685b6/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.xml ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.xml index 94cb766..ce3c2d3 100644 --- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.xml +++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.xml @@ -34,7 +34,7 @@ under the License. <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" title="Orders"> - <m:inline><feed><m:ref id="Customers('ALFKI')/Orders"/></feed></m:inline> </link> + <m:inline><feed><m:count>1</m:count><m:ref id="Customers('ALFKI')/Orders"/></feed></m:inline> </link> <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Customers('ALFKI')/Supplier"/> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8bd685b6/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java index 0253049..ea00ccd 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java @@ -357,22 +357,12 @@ public class ODataJsonSerializer extends AbstractODataSerializer { SerializerException.MessageKeys.NOT_IMPLEMENTED); } - boolean isNavigationPropertyCountOnly = false; - if (innerOptions != null) { - final UriInfoResource uriInfoResource = innerOptions.getResourcePath(); - final List<UriResource> uriResourceParts = uriInfoResource.getUriResourceParts(); - if (uriResourceParts.size() == 2 && uriResourceParts.get(0) instanceof UriResourceNavigation - && uriResourceParts.get(1) instanceof UriResourceCount) { - isNavigationPropertyCountOnly = true; - } - } - - if (isNavigationPropertyCountOnly) { - writeNavigationPropertyCount(property, navigationLink.getInlineEntitySet().getCount(), json); + if (property.isCollection() && isNavigationPropertyCountOnly(innerOptions)) { + writeNavigationPropertyCount(property, getCount(navigationLink), json); } else { - if (innerOptions != null && innerOptions.getCountOption() != null - && innerOptions.getCountOption().getValue()) { - writeNavigationPropertyCount(property, navigationLink.getInlineEntitySet().getCount(), json); + if (property.isCollection() && innerOptions != null + && innerOptions.getCountOption() != null && innerOptions.getCountOption().getValue()) { + writeNavigationPropertyCount(property, getCount(navigationLink), json); } writeExpandedNavigationProperty(metadata, property, navigationLink, @@ -384,6 +374,26 @@ public class ODataJsonSerializer extends AbstractODataSerializer { } } + private Integer getCount(Link navigationLink) { + if(navigationLink.getInlineEntitySet() == null) { + return 0; + } + return navigationLink.getInlineEntitySet().getCount(); + } + + private boolean isNavigationPropertyCountOnly(ExpandItem innerOptions) { + if (innerOptions != null) { + final UriInfoResource uriInfoResource = innerOptions.getResourcePath(); + final List<UriResource> uriResourceParts = uriInfoResource.getUriResourceParts(); + if (uriResourceParts.size() == 2 + && uriResourceParts.get(0) instanceof UriResourceNavigation + && uriResourceParts.get(1) instanceof UriResourceCount) { + return true; + } + } + return false; + } + private void writeNavigationPropertyCount(final EdmNavigationProperty property, final int count, final JsonGenerator json) throws IOException { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8bd685b6/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java index 2af8ede..1c4611a 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java @@ -62,6 +62,11 @@ import org.apache.olingo.server.api.serializer.ReferenceCollectionSerializerOpti import org.apache.olingo.server.api.serializer.ReferenceSerializerOptions; import org.apache.olingo.server.api.serializer.SerializerException; import org.apache.olingo.server.api.serializer.SerializerResult; +import org.apache.olingo.server.api.uri.UriInfoResource; +import org.apache.olingo.server.api.uri.UriResource; +import org.apache.olingo.server.api.uri.UriResourceCount; +import org.apache.olingo.server.api.uri.UriResourceNavigation; +import org.apache.olingo.server.api.uri.queryoption.CountOption; import org.apache.olingo.server.api.uri.queryoption.ExpandItem; import org.apache.olingo.server.api.uri.queryoption.ExpandOption; import org.apache.olingo.server.api.uri.queryoption.SelectOption; @@ -528,6 +533,8 @@ public class ODataXmlSerializer extends AbstractODataSerializer { writeExpandedNavigationProperty(metadata, property, navigationLink, innerOptions == null ? null : innerOptions.getExpandOption(), innerOptions == null ? null : innerOptions.getSelectOption(), + innerOptions == null ? null : innerOptions.getCountOption(), + isNavigationPropertyCountOnly(innerOptions), writer); writer.writeEndElement(); writer.writeEndElement(); @@ -546,6 +553,19 @@ public class ODataXmlSerializer extends AbstractODataSerializer { } } + private boolean isNavigationPropertyCountOnly(ExpandItem innerOptions) { + if (innerOptions != null) { + final UriInfoResource uriInfoResource = innerOptions.getResourcePath(); + final List<UriResource> uriResourceParts = uriInfoResource.getUriResourceParts(); + if (uriResourceParts.size() == 2 + && uriResourceParts.get(0) instanceof UriResourceNavigation + && uriResourceParts.get(1) instanceof UriResourceCount) { + return true; + } + } + return false; + } + protected Link getOrCreateLink(final Linked linked, final String navigationPropertyName) throws XMLStreamException { Link link = linked.getNavigationLink(navigationPropertyName); @@ -587,13 +607,25 @@ public class ODataXmlSerializer extends AbstractODataSerializer { protected void writeExpandedNavigationProperty(final ServiceMetadata metadata, final EdmNavigationProperty property, final Link navigationLink, - final ExpandOption innerExpand, final SelectOption innerSelect, final XMLStreamWriter writer) + final ExpandOption innerExpand, final SelectOption innerSelect, + final CountOption innerCount, boolean isNavigationPropertyCountOnly, + final XMLStreamWriter writer) throws XMLStreamException, SerializerException { if (property.isCollection()) { if (navigationLink != null && navigationLink.getInlineEntitySet() != null) { writer.writeStartElement(ATOM, Constants.ATOM_ELEM_FEED, NS_ATOM); - writeEntitySet(metadata, property.getType(), navigationLink.getInlineEntitySet(), innerExpand, - innerSelect, writer); + + if (isNavigationPropertyCountOnly) { + writeCount(navigationLink.getInlineEntitySet(), writer); + } else { + if (innerCount != null && innerCount.getValue() + && navigationLink.getInlineEntitySet().getCount() != null) { + writeCount(navigationLink.getInlineEntitySet(), writer); + } + writeEntitySet(metadata, property.getType(), navigationLink.getInlineEntitySet(), innerExpand, + innerSelect, writer); + } + writer.writeEndElement(); } } else { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8bd685b6/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java index 2e8ea14..23ed266 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java @@ -56,6 +56,7 @@ import org.apache.olingo.server.api.serializer.ReferenceSerializerOptions; import org.apache.olingo.server.api.serializer.SerializerException; import org.apache.olingo.server.api.serializer.SerializerResult; import org.apache.olingo.server.api.uri.UriHelper; +import org.apache.olingo.server.api.uri.UriInfoResource; import org.apache.olingo.server.api.uri.queryoption.CountOption; import org.apache.olingo.server.api.uri.queryoption.ExpandItem; import org.apache.olingo.server.api.uri.queryoption.ExpandOption; @@ -1706,6 +1707,76 @@ public class ODataXmlSerializerTest { } @Test + public void expandWithCountUri() throws Exception { + final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESAllPrim"); + final Entity entity = data.readAll(edmEntitySet).getEntities().get(2); + + String navName = "NavPropertyETTwoPrimMany"; + final UriInfoResource resource = ExpandSelectMock.mockResourceWithCountOnNavigation(edmEntitySet, navName); + ExpandItem expandItem = Mockito.mock(ExpandItem.class); + Mockito.when(expandItem.getResourcePath()).thenReturn(resource); + + final ExpandOption expand = ExpandSelectMock.mockExpandOption(Collections.singletonList(expandItem)); + + InputStream result = serializer.entity(metadata, edmEntitySet.getEntityType(), entity, + EntitySerializerOptions.with() + .contextURL(ContextURL.with().entitySet(edmEntitySet).suffix(Suffix.ENTITY).build()) + .expand(expand) + .build()).getContent(); + + final String resultString = IOUtils.toString(result); + final String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + + "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\" xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\" " + + "xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" m:context=\"$metadata#ESAllPrim/$entity\" " + + "m:metadata-etag=\"metadataETag\">\n" + + " <a:id>ESAllPrim(0)</a:id>\n" + + " <a:title/><a:summary/>\n" + + " <a:updated>" + UPDATED_FORMAT.format(new Date()) + "</a:updated>" + + " <a:author><a:name/></a:author>\n" + + " <a:link rel=\"edit\" href=\"ESAllPrim(0)\"/>\n" + + " <a:link rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimOne\" " + + " type=\"application/atom+xml;type=feed\" " + + " title=\"NavPropertyETTwoPrimOne\" " + + " href=\"ESAllPrim(0)/NavPropertyETTwoPrimOne\"/>\n" + + " <a:link rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimMany\" " + + " type=\"application/atom+xml;type=feed\" " + + " title=\"NavPropertyETTwoPrimMany\" " + + " href=\"ESAllPrim(0)/NavPropertyETTwoPrimMany\">\n" + + " <m:inline>\n" + + " <a:feed>\n" + + " <m:count>3</m:count>\n" + + " </a:feed>\n" + + " </m:inline>\n" + + " </a:link>\n" + + " <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\" " + + " term=\"#olingo.odata.test1.ETAllPrim\"/>\n" + + " <a:content type=\"application/xml\">\n" + + " <m:properties>\n" + + " <d:PropertyInt16 m:type=\"Int16\">0</d:PropertyInt16>\n" + + " <d:PropertyString>\n" + + " </d:PropertyString>\n" + + " <d:PropertyBoolean m:type=\"Boolean\">false</d:PropertyBoolean>\n" + + " <d:PropertyByte m:type=\"Byte\">0</d:PropertyByte>\n" + + " <d:PropertySByte m:type=\"SByte\">0</d:PropertySByte>\n" + + " <d:PropertyInt32 m:type=\"Int32\">0</d:PropertyInt32>\n" + + " <d:PropertyInt64 m:type=\"Int64\">0</d:PropertyInt64>\n" + + " <d:PropertySingle m:type=\"Single\">0.0</d:PropertySingle>\n" + + " <d:PropertyDouble m:type=\"Double\">0.0</d:PropertyDouble>\n" + + " <d:PropertyDecimal m:type=\"Decimal\">0</d:PropertyDecimal>\n" + + " <d:PropertyBinary m:type=\"Binary\">\n" + + " </d:PropertyBinary>\n" + + " <d:PropertyDate m:type=\"Date\">1970-01-01</d:PropertyDate>\n" + + " <d:PropertyDateTimeOffset m:type=\"DateTimeOffset\">2005-12-03T00:00:00Z</d:PropertyDateTimeOffset>\n" + + " <d:PropertyDuration m:type=\"Duration\">PT0S</d:PropertyDuration>\n" + + " <d:PropertyGuid m:type=\"Guid\">76543201-23ab-cdef-0123-456789cccddd</d:PropertyGuid>\n" + + " <d:PropertyTimeOfDay m:type=\"TimeOfDay\">00:01:01</d:PropertyTimeOfDay>\n" + + " </m:properties>\n" + + " </a:content>\n" + + "</a:entry>\n"; + checkXMLEqual(expected, resultString); + } + + @Test public void primitiveProperty() throws Exception { final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESAllPrim"); final EdmProperty edmProperty = (EdmProperty) edmEntitySet.getEntityType().getProperty("PropertyString");
