You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2015/08/04 16:25:57 UTC

[17/18] olingo-odata4 git commit: [OLINGO-640] Minor adjustments to tests and deleted logger

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/db0b9d39/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 abce52d..50d432c 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
@@ -18,8 +18,10 @@
  */
 package org.apache.olingo.server.core.serializer.xml;
 
+import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Collections;
@@ -63,6 +65,9 @@ import org.apache.olingo.server.core.uri.UriHelperImpl;
 import org.apache.olingo.server.tecsvc.MetadataETagSupport;
 import org.apache.olingo.server.tecsvc.data.DataProvider;
 import org.apache.olingo.server.tecsvc.provider.EdmTechProvider;
+import org.custommonkey.xmlunit.Diff;
+import org.custommonkey.xmlunit.Difference;
+import org.custommonkey.xmlunit.DifferenceListener;
 import org.custommonkey.xmlunit.XMLAssert;
 import org.custommonkey.xmlunit.XMLUnit;
 import org.hamcrest.CoreMatchers;
@@ -70,11 +75,17 @@ import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.mockito.Mockito;
+import org.w3c.dom.Node;
+import org.xml.sax.SAXException;
 
-public class ODataXmlSerializerTest  {
+public class ODataXmlSerializerTest {
   private static final ServiceMetadata metadata = new ServiceMetadataImpl(
       new EdmTechProvider(), Collections.<EdmxReference> emptyList(), new MetadataETagSupport("WmetadataETag"));
   private static final EdmEntityContainer entityContainer = metadata.getEdm().getEntityContainer();
+  private static final DifferenceListener DIFFERENCE_LISTENER = new CustomDifferenceListener();
+  private static final int MAX_ALLOWED_UPDATED_DIFFERENCE = 2000;
+  private static final String UPDATED_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
+  
   private final DataProvider data = new DataProvider(metadata.getEdm());
   private final ODataSerializer serializer = new ODataXmlSerializer();
   private final UriHelper helper = new UriHelperImpl();
@@ -87,69 +98,70 @@ public class ODataXmlSerializerTest  {
     XMLUnit.setNormalizeWhitespace(true);
     XMLUnit.setCompareUnmatched(false);
   }
-  
+
   @Test
   public void entitySimple() throws Exception {
     final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESAllPrim");
     final Entity entity = data.readAll(edmEntitySet).getEntities().get(0);
+    long currentTimeMillis = System.currentTimeMillis();
     InputStream result = serializer.entity(metadata, edmEntitySet.getEntityType(), entity,
         EntitySerializerOptions.with()
             .contextURL(ContextURL.with().entitySet(edmEntitySet).suffix(Suffix.ENTITY).build())
             .build()).getContent();
     final String resultString = IOUtils.toString(result);
-    String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
+    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\"\n" + 
+        + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
         "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" "
-        + "m:context=\"$metadata#ESAllPrim/$entity\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>ESAllPrim(32767)</a:id>\n" + 
-        "  <a:title />\n" + 
-        "  <a:summary />\n" + 
-        "  <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-        .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "  <a:author>\n" + 
-        "    <a:name />\n" + 
-        "  </a:author>\n" + 
-        "  <a:link rel=\"edit\" href=\"ESAllPrim(32767)\" />\n" + 
-        "  <a:link\n" + 
-        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimOne\"\n" + 
-        "    type=\"application/atom+xml;type=entry\" title=\"NavPropertyETTwoPrimOne\"\n" + 
-        "    href=\"ESTwoPrim(32767)\" />\n" + 
-        "  <a:link\n" + 
-        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimMany\"\n" + 
-        "    type=\"application/atom+xml;type=feed\" title=\"NavPropertyETTwoPrimMany\"\n" + 
-        "    href=\"ESAllPrim(32767)/NavPropertyETTwoPrimMany\" />\n" +         
-        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "    term=\"#olingo.odata.test1.ETAllPrim\" />\n" + 
-        "  <a:content type=\"application/xml\">\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" + 
-        "      <d:PropertyString>First Resource - positive values</d:PropertyString>\n" + 
-        "      <d:PropertyBoolean m:type=\"Boolean\">true</d:PropertyBoolean>\n" + 
-        "      <d:PropertyByte m:type=\"Byte\">255</d:PropertyByte>\n" + 
-        "      <d:PropertySByte m:type=\"SByte\">127</d:PropertySByte>\n" + 
-        "      <d:PropertyInt32 m:type=\"Int32\">2147483647</d:PropertyInt32>\n" + 
-        "      <d:PropertyInt64 m:type=\"Int64\">9223372036854775807\n" + 
-        "      </d:PropertyInt64>\n" + 
-        "      <d:PropertySingle m:type=\"Single\">1.79E20</d:PropertySingle>\n" + 
-        "      <d:PropertyDouble m:type=\"Double\">-1.79E19</d:PropertyDouble>\n" + 
-        "      <d:PropertyDecimal m:type=\"Decimal\">34</d:PropertyDecimal>\n" + 
-        "      <d:PropertyBinary m:type=\"Binary\">ASNFZ4mrze8=\n" + 
-        "      </d:PropertyBinary>\n" + 
-        "      <d:PropertyDate m:type=\"Date\">2012-12-03</d:PropertyDate>\n" + 
-        "      <d:PropertyDateTimeOffset m:type=\"DateTimeOffset\">2012-12-03T07:16:23Z\n" + 
-        "      </d:PropertyDateTimeOffset>\n" + 
-        "      <d:PropertyDuration m:type=\"Duration\">PT6S\n" + 
-        "      </d:PropertyDuration>\n" + 
-        "      <d:PropertyGuid m:type=\"Guid\">01234567-89ab-cdef-0123-456789abcdef\n" + 
-        "      </d:PropertyGuid>\n" + 
-        "      <d:PropertyTimeOfDay m:type=\"TimeOfDay\">03:26:05\n" + 
-        "      </d:PropertyTimeOfDay>\n" + 
-        "    </m:properties>\n" + 
-        "  </a:content>\n" + 
+        + "m:context=\"$metadata#ESAllPrim/$entity\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>ESAllPrim(32767)</a:id>\n" +
+        "  <a:title />\n" +
+        "  <a:summary />\n" +
+        "  <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "  <a:author>\n" +
+        "    <a:name />\n" +
+        "  </a:author>\n" +
+        "  <a:link rel=\"edit\" href=\"ESAllPrim(32767)\" />\n" +
+        "  <a:link\n" +
+        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimOne\"\n" +
+        "    type=\"application/atom+xml;type=entry\" title=\"NavPropertyETTwoPrimOne\"\n" +
+        "    href=\"ESTwoPrim(32767)\" />\n" +
+        "  <a:link\n" +
+        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimMany\"\n" +
+        "    type=\"application/atom+xml;type=feed\" title=\"NavPropertyETTwoPrimMany\"\n" +
+        "    href=\"ESAllPrim(32767)/NavPropertyETTwoPrimMany\" />\n" +
+        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "    term=\"#olingo.odata.test1.ETAllPrim\" />\n" +
+        "  <a:content type=\"application/xml\">\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" +
+        "      <d:PropertyString>First Resource - positive values</d:PropertyString>\n" +
+        "      <d:PropertyBoolean m:type=\"Boolean\">true</d:PropertyBoolean>\n" +
+        "      <d:PropertyByte m:type=\"Byte\">255</d:PropertyByte>\n" +
+        "      <d:PropertySByte m:type=\"SByte\">127</d:PropertySByte>\n" +
+        "      <d:PropertyInt32 m:type=\"Int32\">2147483647</d:PropertyInt32>\n" +
+        "      <d:PropertyInt64 m:type=\"Int64\">9223372036854775807\n" +
+        "      </d:PropertyInt64>\n" +
+        "      <d:PropertySingle m:type=\"Single\">1.79E20</d:PropertySingle>\n" +
+        "      <d:PropertyDouble m:type=\"Double\">-1.79E19</d:PropertyDouble>\n" +
+        "      <d:PropertyDecimal m:type=\"Decimal\">34</d:PropertyDecimal>\n" +
+        "      <d:PropertyBinary m:type=\"Binary\">ASNFZ4mrze8=\n" +
+        "      </d:PropertyBinary>\n" +
+        "      <d:PropertyDate m:type=\"Date\">2012-12-03</d:PropertyDate>\n" +
+        "      <d:PropertyDateTimeOffset m:type=\"DateTimeOffset\">2012-12-03T07:16:23Z\n" +
+        "      </d:PropertyDateTimeOffset>\n" +
+        "      <d:PropertyDuration m:type=\"Duration\">PT6S\n" +
+        "      </d:PropertyDuration>\n" +
+        "      <d:PropertyGuid m:type=\"Guid\">01234567-89ab-cdef-0123-456789abcdef\n" +
+        "      </d:PropertyGuid>\n" +
+        "      <d:PropertyTimeOfDay m:type=\"TimeOfDay\">03:26:05\n" +
+        "      </d:PropertyTimeOfDay>\n" +
+        "    </m:properties>\n" +
+        "  </a:content>\n" +
         "</a:entry>";
-    XMLAssert.assertXMLEqual(expected, resultString);
+    checkXMLEqual(expected, resultString);
   }
 
   @Test
@@ -157,60 +169,62 @@ public class ODataXmlSerializerTest  {
     final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESAllPrim");
     Entity entity = data.readAll(edmEntitySet).getEntities().get(0);
     entity.getProperties().retainAll(Arrays.asList(entity.getProperties().get(0)));
-    final String resultString = IOUtils.toString(serializer.entity(metadata, edmEntitySet.getEntityType(),
+    long currentTimeMillis = System.currentTimeMillis();
+    InputStream content = serializer.entity(metadata, edmEntitySet.getEntityType(),
         entity,
         EntitySerializerOptions.with()
             .contextURL(ContextURL.with().entitySet(edmEntitySet).suffix(Suffix.ENTITY).build())
-            .build()).getContent());
-    String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
-        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + 
-        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + 
-        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" "+
-        "m:context=\"$metadata#ESAllPrim/$entity\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>ESAllPrim(32767)</a:id>\n" + 
-        "  <a:title />\n" + 
-        "  <a:summary />\n" + 
-        "  <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-              .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "  <a:author>\n" + 
-        "    <a:name />\n" + 
-        "  </a:author>\n" + 
-        "  <a:link rel=\"edit\" href=\"ESAllPrim(32767)\"/>\n" + 
-        "  <a:link\n" + 
-        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimOne\"\n" + 
-        "    type=\"application/atom+xml;type=entry\" title=\"NavPropertyETTwoPrimOne\"\n" + 
+            .build()).getContent();
+    final String resultString = IOUtils.toString(content);
+    String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" +
+        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
+        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
+        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" " +
+        "m:context=\"$metadata#ESAllPrim/$entity\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>ESAllPrim(32767)</a:id>\n" +
+        "  <a:title />\n" +
+        "  <a:summary />\n" +
+        "  <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "  <a:author>\n" +
+        "    <a:name />\n" +
+        "  </a:author>\n" +
+        "  <a:link rel=\"edit\" href=\"ESAllPrim(32767)\"/>\n" +
+        "  <a:link\n" +
+        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimOne\"\n" +
+        "    type=\"application/atom+xml;type=entry\" title=\"NavPropertyETTwoPrimOne\"\n" +
         "    href=\"ESTwoPrim(32767)\" />\n" +
-        "  <a:link\n" + 
-        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimMany\"\n" + 
-        "    type=\"application/atom+xml;type=feed\" title=\"NavPropertyETTwoPrimMany\"\n" + 
-        "    href=\"ESAllPrim(32767)/NavPropertyETTwoPrimMany\" />\n" +         
-        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "    term=\"#olingo.odata.test1.ETAllPrim\" />\n" + 
-        "  <a:content type=\"application/xml\">\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" + 
-        "      <d:PropertyString m:null=\"true\" />\n" + 
-        "      <d:PropertyBoolean m:null=\"true\" />\n" + 
-        "      <d:PropertyByte m:null=\"true\" />\n" + 
-        "      <d:PropertySByte m:null=\"true\" />\n" + 
-        "      <d:PropertyInt32 m:null=\"true\" />\n" + 
-        "      <d:PropertyInt64 m:null=\"true\" />\n" + 
-        "      <d:PropertySingle m:null=\"true\" />\n" + 
-        "      <d:PropertyDouble m:null=\"true\" />\n" + 
-        "      <d:PropertyDecimal m:null=\"true\" />\n" + 
-        "      <d:PropertyBinary m:null=\"true\" />\n" + 
-        "      <d:PropertyDate m:null=\"true\" />\n" + 
-        "      <d:PropertyDateTimeOffset\n" + 
-        "        m:null=\"true\" />\n" + 
-        "      <d:PropertyDuration m:null=\"true\" />\n" + 
-        "      <d:PropertyGuid m:null=\"true\" />\n" + 
-        "      <d:PropertyTimeOfDay m:null=\"true\" />\n" + 
-        "    </m:properties>\n" + 
-        "  </a:content>\n" + 
-        "</a:entry>\n" + 
-        "";    
-    XMLAssert.assertXMLEqual(expected, resultString);
+        "  <a:link\n" +
+        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimMany\"\n" +
+        "    type=\"application/atom+xml;type=feed\" title=\"NavPropertyETTwoPrimMany\"\n" +
+        "    href=\"ESAllPrim(32767)/NavPropertyETTwoPrimMany\" />\n" +
+        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "    term=\"#olingo.odata.test1.ETAllPrim\" />\n" +
+        "  <a:content type=\"application/xml\">\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" +
+        "      <d:PropertyString m:null=\"true\" />\n" +
+        "      <d:PropertyBoolean m:null=\"true\" />\n" +
+        "      <d:PropertyByte m:null=\"true\" />\n" +
+        "      <d:PropertySByte m:null=\"true\" />\n" +
+        "      <d:PropertyInt32 m:null=\"true\" />\n" +
+        "      <d:PropertyInt64 m:null=\"true\" />\n" +
+        "      <d:PropertySingle m:null=\"true\" />\n" +
+        "      <d:PropertyDouble m:null=\"true\" />\n" +
+        "      <d:PropertyDecimal m:null=\"true\" />\n" +
+        "      <d:PropertyBinary m:null=\"true\" />\n" +
+        "      <d:PropertyDate m:null=\"true\" />\n" +
+        "      <d:PropertyDateTimeOffset\n" +
+        "        m:null=\"true\" />\n" +
+        "      <d:PropertyDuration m:null=\"true\" />\n" +
+        "      <d:PropertyGuid m:null=\"true\" />\n" +
+        "      <d:PropertyTimeOfDay m:null=\"true\" />\n" +
+        "    </m:properties>\n" +
+        "  </a:content>\n" +
+        "</a:entry>\n" +
+        "";
+    checkXMLEqual(expected, resultString);
   }
 
   @Test(expected = SerializerException.class)
@@ -254,7 +268,7 @@ public class ODataXmlSerializerTest  {
     InputStream result = serializer.entityCollection(metadata, edmEntitySet.getEntityType(), entitySet,
         EntityCollectionSerializerOptions.with()
             .contextURL(ContextURL.with().serviceRoot(new URI("http://host:port"))
-            .entitySet(edmEntitySet).build())
+                .entitySet(edmEntitySet).build())
             .setId("http://host/svc/ESCompAllPrim")
             .count(countOption)
             .build()).getContent();
@@ -277,228 +291,231 @@ public class ODataXmlSerializerTest  {
   public void entityCollAllPrim() throws Exception {
     final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESCollAllPrim");
     final Entity entity = data.readAll(edmEntitySet).getEntities().get(0);
+    long currentTimeMillis = System.currentTimeMillis();
     InputStream result = serializer.entity(metadata, edmEntitySet.getEntityType(), entity,
         EntitySerializerOptions.with()
             .contextURL(ContextURL.with().serviceRoot(URI.create("http://host/service/"))
                 .entitySet(edmEntitySet).suffix(Suffix.ENTITY).build())
             .build()).getContent();
     final String resultString = IOUtils.toString(result);
-    String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
+    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\"\n" + 
+        + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
         "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" "
-        + "m:context=\"http://host/service/$metadata#ESCollAllPrim/$entity\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>ESCollAllPrim(1)</a:id>\n" + 
-        "  <a:title />\n" + 
-        "  <a:summary />\n" + 
-        "<a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-        .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "  <a:author>\n" + 
-        "    <a:name />\n" + 
-        "  </a:author>\n" + 
-        "  <a:link rel=\"edit\" href=\"ESCollAllPrim(1)\" />\n" + 
-        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "    term=\"#olingo.odata.test1.ETCollAllPrim\" />\n" + 
-        "  <a:content type=\"application/xml\">\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">1</d:PropertyInt16>\n" + 
-        "      <d:CollPropertyString m:type=\"#Collection(String)\">\n" + 
-        "        <m:element>Employee1@company.example</m:element>\n" + 
-        "        <m:element>Employee2@company.example</m:element>\n" + 
-        "        <m:element>Employee3@company.example</m:element>\n" + 
-        "      </d:CollPropertyString>\n" + 
-        "      <d:CollPropertyBoolean m:type=\"#Collection(Boolean)\">\n" + 
-        "        <m:element>true</m:element>\n" + 
-        "        <m:element>false</m:element>\n" + 
-        "        <m:element>true</m:element>\n" + 
-        "      </d:CollPropertyBoolean>\n" + 
-        "      <d:CollPropertyByte m:type=\"#Collection(Byte)\">\n" + 
-        "        <m:element>50</m:element>\n" + 
-        "        <m:element>200</m:element>\n" + 
-        "        <m:element>249</m:element>\n" + 
-        "      </d:CollPropertyByte>\n" + 
-        "      <d:CollPropertySByte m:type=\"#Collection(SByte)\">\n" + 
-        "        <m:element>-120</m:element>\n" + 
-        "        <m:element>120</m:element>\n" + 
-        "        <m:element>126</m:element>\n" + 
-        "      </d:CollPropertySByte>\n" + 
-        "      <d:CollPropertyInt16 m:type=\"#Collection(Int16)\">\n" + 
-        "        <m:element>1000</m:element>\n" + 
-        "        <m:element>2000</m:element>\n" + 
-        "        <m:element>30112</m:element>\n" + 
-        "      </d:CollPropertyInt16>\n" + 
-        "      <d:CollPropertyInt32 m:type=\"#Collection(Int32)\">\n" + 
-        "        <m:element>23232323</m:element>\n" + 
-        "        <m:element>11223355</m:element>\n" + 
-        "        <m:element>10000001</m:element>\n" + 
-        "      </d:CollPropertyInt32>\n" + 
-        "      <d:CollPropertyInt64 m:type=\"#Collection(Int64)\">\n" + 
-        "        <m:element>929292929292</m:element>\n" + 
-        "        <m:element>333333333333</m:element>\n" + 
-        "        <m:element>444444444444</m:element>\n" + 
-        "      </d:CollPropertyInt64>\n" + 
-        "      <d:CollPropertySingle m:type=\"#Collection(Single)\">\n" + 
-        "        <m:element>1790.0</m:element>\n" + 
-        "        <m:element>26600.0</m:element>\n" + 
-        "        <m:element>3210.0</m:element>\n" + 
-        "      </d:CollPropertySingle>\n" + 
-        "      <d:CollPropertyDouble m:type=\"#Collection(Double)\">\n" + 
-        "        <m:element>-17900.0</m:element>\n" + 
-        "        <m:element>-2.78E7</m:element>\n" + 
-        "        <m:element>3210.0</m:element>\n" + 
-        "      </d:CollPropertyDouble>\n" + 
-        "      <d:CollPropertyDecimal m:type=\"#Collection(Decimal)\">\n" + 
-        "        <m:element>12</m:element>\n" + 
-        "        <m:element>-2</m:element>\n" + 
-        "        <m:element>1234</m:element>\n" + 
-        "      </d:CollPropertyDecimal>\n" + 
-        "      <d:CollPropertyBinary m:type=\"#Collection(Binary)\">\n" + 
-        "        <m:element>q83v</m:element>\n" + 
-        "        <m:element>ASNF</m:element>\n" + 
-        "        <m:element>VGeJ</m:element>\n" + 
-        "      </d:CollPropertyBinary>\n" + 
-        "      <d:CollPropertyDate m:type=\"#Collection(Date)\">\n" + 
-        "        <m:element>1958-12-03</m:element>\n" + 
-        "        <m:element>1999-08-05</m:element>\n" + 
-        "        <m:element>2013-06-25</m:element>\n" + 
-        "      </d:CollPropertyDate>\n" + 
-        "      <d:CollPropertyDateTimeOffset m:type=\"#Collection(DateTimeOffset)\">\n" + 
-        "        <m:element>2015-08-12T03:08:34Z</m:element>\n" + 
-        "        <m:element>1970-03-28T12:11:10Z</m:element>\n" + 
-        "        <m:element>1948-02-17T09:09:09Z</m:element>\n" + 
-        "      </d:CollPropertyDateTimeOffset>\n" + 
-        "      <d:CollPropertyDuration m:type=\"#Collection(Duration)\">\n" + 
-        "        <m:element>PT13S</m:element>\n" + 
-        "        <m:element>PT5H28M0S</m:element>\n" + 
-        "        <m:element>PT1H0S</m:element>\n" + 
-        "      </d:CollPropertyDuration>\n" + 
-        "      <d:CollPropertyGuid m:type=\"#Collection(Guid)\">\n" + 
-        "        <m:element>ffffff67-89ab-cdef-0123-456789aaaaaa</m:element>\n" + 
-        "        <m:element>eeeeee67-89ab-cdef-0123-456789bbbbbb</m:element>\n" + 
-        "        <m:element>cccccc67-89ab-cdef-0123-456789cccccc</m:element>\n" + 
-        "      </d:CollPropertyGuid>\n" + 
-        "      <d:CollPropertyTimeOfDay m:type=\"#Collection(TimeOfDay)\">\n" + 
-        "        <m:element>04:14:13</m:element>\n" + 
-        "        <m:element>23:59:59</m:element>\n" + 
-        "        <m:element>01:12:33</m:element>\n" + 
-        "      </d:CollPropertyTimeOfDay>\n" + 
-        "    </m:properties>\n" + 
-        "  </a:content>\n" + 
+        + "m:context=\"http://host/service/$metadata#ESCollAllPrim/$entity\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>ESCollAllPrim(1)</a:id>\n" +
+        "  <a:title />\n" +
+        "  <a:summary />\n" +
+        "<a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "  <a:author>\n" +
+        "    <a:name />\n" +
+        "  </a:author>\n" +
+        "  <a:link rel=\"edit\" href=\"ESCollAllPrim(1)\" />\n" +
+        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "    term=\"#olingo.odata.test1.ETCollAllPrim\" />\n" +
+        "  <a:content type=\"application/xml\">\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">1</d:PropertyInt16>\n" +
+        "      <d:CollPropertyString m:type=\"#Collection(String)\">\n" +
+        "        <m:element>Employee1@company.example</m:element>\n" +
+        "        <m:element>Employee2@company.example</m:element>\n" +
+        "        <m:element>Employee3@company.example</m:element>\n" +
+        "      </d:CollPropertyString>\n" +
+        "      <d:CollPropertyBoolean m:type=\"#Collection(Boolean)\">\n" +
+        "        <m:element>true</m:element>\n" +
+        "        <m:element>false</m:element>\n" +
+        "        <m:element>true</m:element>\n" +
+        "      </d:CollPropertyBoolean>\n" +
+        "      <d:CollPropertyByte m:type=\"#Collection(Byte)\">\n" +
+        "        <m:element>50</m:element>\n" +
+        "        <m:element>200</m:element>\n" +
+        "        <m:element>249</m:element>\n" +
+        "      </d:CollPropertyByte>\n" +
+        "      <d:CollPropertySByte m:type=\"#Collection(SByte)\">\n" +
+        "        <m:element>-120</m:element>\n" +
+        "        <m:element>120</m:element>\n" +
+        "        <m:element>126</m:element>\n" +
+        "      </d:CollPropertySByte>\n" +
+        "      <d:CollPropertyInt16 m:type=\"#Collection(Int16)\">\n" +
+        "        <m:element>1000</m:element>\n" +
+        "        <m:element>2000</m:element>\n" +
+        "        <m:element>30112</m:element>\n" +
+        "      </d:CollPropertyInt16>\n" +
+        "      <d:CollPropertyInt32 m:type=\"#Collection(Int32)\">\n" +
+        "        <m:element>23232323</m:element>\n" +
+        "        <m:element>11223355</m:element>\n" +
+        "        <m:element>10000001</m:element>\n" +
+        "      </d:CollPropertyInt32>\n" +
+        "      <d:CollPropertyInt64 m:type=\"#Collection(Int64)\">\n" +
+        "        <m:element>929292929292</m:element>\n" +
+        "        <m:element>333333333333</m:element>\n" +
+        "        <m:element>444444444444</m:element>\n" +
+        "      </d:CollPropertyInt64>\n" +
+        "      <d:CollPropertySingle m:type=\"#Collection(Single)\">\n" +
+        "        <m:element>1790.0</m:element>\n" +
+        "        <m:element>26600.0</m:element>\n" +
+        "        <m:element>3210.0</m:element>\n" +
+        "      </d:CollPropertySingle>\n" +
+        "      <d:CollPropertyDouble m:type=\"#Collection(Double)\">\n" +
+        "        <m:element>-17900.0</m:element>\n" +
+        "        <m:element>-2.78E7</m:element>\n" +
+        "        <m:element>3210.0</m:element>\n" +
+        "      </d:CollPropertyDouble>\n" +
+        "      <d:CollPropertyDecimal m:type=\"#Collection(Decimal)\">\n" +
+        "        <m:element>12</m:element>\n" +
+        "        <m:element>-2</m:element>\n" +
+        "        <m:element>1234</m:element>\n" +
+        "      </d:CollPropertyDecimal>\n" +
+        "      <d:CollPropertyBinary m:type=\"#Collection(Binary)\">\n" +
+        "        <m:element>q83v</m:element>\n" +
+        "        <m:element>ASNF</m:element>\n" +
+        "        <m:element>VGeJ</m:element>\n" +
+        "      </d:CollPropertyBinary>\n" +
+        "      <d:CollPropertyDate m:type=\"#Collection(Date)\">\n" +
+        "        <m:element>1958-12-03</m:element>\n" +
+        "        <m:element>1999-08-05</m:element>\n" +
+        "        <m:element>2013-06-25</m:element>\n" +
+        "      </d:CollPropertyDate>\n" +
+        "      <d:CollPropertyDateTimeOffset m:type=\"#Collection(DateTimeOffset)\">\n" +
+        "        <m:element>2015-08-12T03:08:34Z</m:element>\n" +
+        "        <m:element>1970-03-28T12:11:10Z</m:element>\n" +
+        "        <m:element>1948-02-17T09:09:09Z</m:element>\n" +
+        "      </d:CollPropertyDateTimeOffset>\n" +
+        "      <d:CollPropertyDuration m:type=\"#Collection(Duration)\">\n" +
+        "        <m:element>PT13S</m:element>\n" +
+        "        <m:element>PT5H28M0S</m:element>\n" +
+        "        <m:element>PT1H0S</m:element>\n" +
+        "      </d:CollPropertyDuration>\n" +
+        "      <d:CollPropertyGuid m:type=\"#Collection(Guid)\">\n" +
+        "        <m:element>ffffff67-89ab-cdef-0123-456789aaaaaa</m:element>\n" +
+        "        <m:element>eeeeee67-89ab-cdef-0123-456789bbbbbb</m:element>\n" +
+        "        <m:element>cccccc67-89ab-cdef-0123-456789cccccc</m:element>\n" +
+        "      </d:CollPropertyGuid>\n" +
+        "      <d:CollPropertyTimeOfDay m:type=\"#Collection(TimeOfDay)\">\n" +
+        "        <m:element>04:14:13</m:element>\n" +
+        "        <m:element>23:59:59</m:element>\n" +
+        "        <m:element>01:12:33</m:element>\n" +
+        "      </d:CollPropertyTimeOfDay>\n" +
+        "    </m:properties>\n" +
+        "  </a:content>\n" +
         "</a:entry>";
-    XMLAssert.assertXMLEqual(expected, resultString);
+    checkXMLEqual(expected, resultString);
   }
 
   @Test
   public void entityCompAllPrim() throws Exception {
     final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESCompAllPrim");
     final Entity entity = data.readAll(edmEntitySet).getEntities().get(0);
+    long currentTimeMillis = System.currentTimeMillis();
     InputStream result = serializer.entity(metadata, edmEntitySet.getEntityType(), entity,
         EntitySerializerOptions.with()
             .contextURL(ContextURL.with().entitySet(edmEntitySet).suffix(Suffix.ENTITY).build())
             .build()).getContent();
-    
+
     final String resultString = IOUtils.toString(result);
-    String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
+    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\"\n" + 
+        + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
         "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" "
-        + "m:context=\"$metadata#ESCompAllPrim/$entity\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\" m:etag=\"W/&quot;32767&quot;\">\n" + 
-        "  <a:id>ESCompAllPrim(32767)</a:id>\n" + 
-        "  <a:title />\n" + 
-        "  <a:summary />\n" + 
-        "<a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-        .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "  <a:author>\n" + 
-        "    <a:name />\n" + 
-        "  </a:author>\n" + 
-        "  <a:link rel=\"edit\" href=\"ESCompAllPrim(32767)\" />\n" + 
-        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "    term=\"#olingo.odata.test1.ETCompAllPrim\" />\n" + 
-        "  <a:content type=\"application/xml\">\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" + 
-        "      <d:PropertyComp m:type=\"#olingo.odata.test1.CTAllPrim\">\n" + 
-        "        <d:PropertyString>First Resource - first</d:PropertyString>\n" + 
-        "        <d:PropertyBinary m:type=\"Binary\">ASNFZ4mrze8=</d:PropertyBinary>\n" + 
-        "        <d:PropertyBoolean m:type=\"Boolean\">true</d:PropertyBoolean>\n" + 
-        "        <d:PropertyByte m:type=\"Byte\">255</d:PropertyByte>\n" + 
-        "        <d:PropertyDate m:type=\"Date\">2012-10-03</d:PropertyDate>\n" + 
+        + "m:context=\"$metadata#ESCompAllPrim/$entity\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\" m:etag=\"W/&quot;32767&quot;\">\n" +
+        "  <a:id>ESCompAllPrim(32767)</a:id>\n" +
+        "  <a:title />\n" +
+        "  <a:summary />\n" +
+        "<a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "  <a:author>\n" +
+        "    <a:name />\n" +
+        "  </a:author>\n" +
+        "  <a:link rel=\"edit\" href=\"ESCompAllPrim(32767)\" />\n" +
+        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "    term=\"#olingo.odata.test1.ETCompAllPrim\" />\n" +
+        "  <a:content type=\"application/xml\">\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" +
+        "      <d:PropertyComp m:type=\"#olingo.odata.test1.CTAllPrim\">\n" +
+        "        <d:PropertyString>First Resource - first</d:PropertyString>\n" +
+        "        <d:PropertyBinary m:type=\"Binary\">ASNFZ4mrze8=</d:PropertyBinary>\n" +
+        "        <d:PropertyBoolean m:type=\"Boolean\">true</d:PropertyBoolean>\n" +
+        "        <d:PropertyByte m:type=\"Byte\">255</d:PropertyByte>\n" +
+        "        <d:PropertyDate m:type=\"Date\">2012-10-03</d:PropertyDate>\n" +
         "        <d:PropertyDateTimeOffset m:type=\"DateTimeOffset\">2012-10-03T07:16:23.1234567Z"
-        + "</d:PropertyDateTimeOffset>\n" + 
-        "        <d:PropertyDecimal m:type=\"Decimal\">34.27</d:PropertyDecimal>\n" + 
-        "        <d:PropertySingle m:type=\"Single\">1.79E20</d:PropertySingle>\n" + 
-        "        <d:PropertyDouble m:type=\"Double\">-1.79E19</d:PropertyDouble>\n" + 
-        "        <d:PropertyDuration m:type=\"Duration\">PT6S</d:PropertyDuration>\n" + 
-        "        <d:PropertyGuid m:type=\"Guid\">01234567-89ab-cdef-0123-456789abcdef</d:PropertyGuid>\n" + 
-        "        <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" + 
-        "        <d:PropertyInt32 m:type=\"Int32\">2147483647</d:PropertyInt32>\n" + 
-        "        <d:PropertyInt64 m:type=\"Int64\">9223372036854775807</d:PropertyInt64>\n" + 
-        "        <d:PropertySByte m:type=\"SByte\">127</d:PropertySByte>\n" + 
-        "        <d:PropertyTimeOfDay m:type=\"TimeOfDay\">01:00:01</d:PropertyTimeOfDay>\n" + 
-        "      </d:PropertyComp>\n" + 
-        "    </m:properties>\n" + 
-        "  </a:content>\n" + 
+        + "</d:PropertyDateTimeOffset>\n" +
+        "        <d:PropertyDecimal m:type=\"Decimal\">34.27</d:PropertyDecimal>\n" +
+        "        <d:PropertySingle m:type=\"Single\">1.79E20</d:PropertySingle>\n" +
+        "        <d:PropertyDouble m:type=\"Double\">-1.79E19</d:PropertyDouble>\n" +
+        "        <d:PropertyDuration m:type=\"Duration\">PT6S</d:PropertyDuration>\n" +
+        "        <d:PropertyGuid m:type=\"Guid\">01234567-89ab-cdef-0123-456789abcdef</d:PropertyGuid>\n" +
+        "        <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" +
+        "        <d:PropertyInt32 m:type=\"Int32\">2147483647</d:PropertyInt32>\n" +
+        "        <d:PropertyInt64 m:type=\"Int64\">9223372036854775807</d:PropertyInt64>\n" +
+        "        <d:PropertySByte m:type=\"SByte\">127</d:PropertySByte>\n" +
+        "        <d:PropertyTimeOfDay m:type=\"TimeOfDay\">01:00:01</d:PropertyTimeOfDay>\n" +
+        "      </d:PropertyComp>\n" +
+        "    </m:properties>\n" +
+        "  </a:content>\n" +
         "</a:entry>";
-    XMLAssert.assertXMLEqual(expected, resultString);
+    checkXMLEqual(expected, resultString);
   }
 
   @Test
   public void entityMixPrimCollComp() throws Exception {
     final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESMixPrimCollComp");
     final Entity entity = data.readAll(edmEntitySet).getEntities().get(0);
+    long currentTimeMillis = System.currentTimeMillis();
     InputStream result = serializer.entity(metadata, edmEntitySet.getEntityType(), entity,
         EntitySerializerOptions.with()
             .contextURL(ContextURL.with().entitySet(edmEntitySet).suffix(Suffix.ENTITY).build())
             .build()).getContent();
     final String resultString = IOUtils.toString(result);
-    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
-        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + 
-        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + 
-        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" \n" + 
-        "  m:context=\"$metadata#ESMixPrimCollComp/$entity\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>ESMixPrimCollComp(32767)</a:id>\n" + 
-        "  <a:title />\n" + 
-        "  <a:summary />\n" + 
-        "  <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-          .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "  <a:author>\n" + 
-        "    <a:name />\n" + 
-        "  </a:author>\n" + 
-        "  <a:link rel=\"edit\" href=\"ESMixPrimCollComp(32767)\"/>\n" + 
-        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "    term=\"#olingo.odata.test1.ETMixPrimCollComp\" />\n" + 
-        "  <a:content type=\"application/xml\">\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" + 
-        "      <d:CollPropertyString m:type=\"#Collection(String)\">\n" + 
-        "        <m:element>Employee1@company.example</m:element>\n" + 
-        "        <m:element>Employee2@company.example</m:element>\n" + 
-        "        <m:element>Employee3@company.example</m:element>\n" + 
-        "      </d:CollPropertyString>\n" + 
-        "      <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" + 
-        "        <d:PropertyInt16 m:type=\"Int16\">111</d:PropertyInt16>\n" + 
-        "        <d:PropertyString>TEST A</d:PropertyString>\n" + 
-        "      </d:PropertyComp>\n" + 
-        "        <d:CollPropertyComp m:type=\"#Collection(olingo.odata.test1.CTTwoPrim)\">\n" + 
-        "          <m:element>\n" + 
-        "            <d:PropertyInt16 m:type=\"Int16\">123</d:PropertyInt16>\n" + 
-        "            <d:PropertyString>TEST 1</d:PropertyString>\n" + 
-        "          </m:element>\n" + 
-        "          <m:element>\n" + 
-        "            <d:PropertyInt16 m:type=\"Int16\">456</d:PropertyInt16>\n" + 
-        "            <d:PropertyString>TEST 2</d:PropertyString>\n" + 
-        "          </m:element>\n" + 
-        "          <m:element>\n" + 
-        "            <d:PropertyInt16 m:type=\"Int16\">789</d:PropertyInt16>\n" + 
-        "            <d:PropertyString>TEST 3</d:PropertyString>\n" + 
-        "          </m:element>\n" + 
-        "        </d:CollPropertyComp>\n" + 
-        "    </m:properties>\n" + 
-        "  </a:content>\n" + 
-        "</a:entry>\n"; 
+    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" +
+        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
+        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
+        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" \n" +
+        "  m:context=\"$metadata#ESMixPrimCollComp/$entity\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>ESMixPrimCollComp(32767)</a:id>\n" +
+        "  <a:title />\n" +
+        "  <a:summary />\n" +
+        "  <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "  <a:author>\n" +
+        "    <a:name />\n" +
+        "  </a:author>\n" +
+        "  <a:link rel=\"edit\" href=\"ESMixPrimCollComp(32767)\"/>\n" +
+        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "    term=\"#olingo.odata.test1.ETMixPrimCollComp\" />\n" +
+        "  <a:content type=\"application/xml\">\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" +
+        "      <d:CollPropertyString m:type=\"#Collection(String)\">\n" +
+        "        <m:element>Employee1@company.example</m:element>\n" +
+        "        <m:element>Employee2@company.example</m:element>\n" +
+        "        <m:element>Employee3@company.example</m:element>\n" +
+        "      </d:CollPropertyString>\n" +
+        "      <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" +
+        "        <d:PropertyInt16 m:type=\"Int16\">111</d:PropertyInt16>\n" +
+        "        <d:PropertyString>TEST A</d:PropertyString>\n" +
+        "      </d:PropertyComp>\n" +
+        "        <d:CollPropertyComp m:type=\"#Collection(olingo.odata.test1.CTTwoPrim)\">\n" +
+        "          <m:element>\n" +
+        "            <d:PropertyInt16 m:type=\"Int16\">123</d:PropertyInt16>\n" +
+        "            <d:PropertyString>TEST 1</d:PropertyString>\n" +
+        "          </m:element>\n" +
+        "          <m:element>\n" +
+        "            <d:PropertyInt16 m:type=\"Int16\">456</d:PropertyInt16>\n" +
+        "            <d:PropertyString>TEST 2</d:PropertyString>\n" +
+        "          </m:element>\n" +
+        "          <m:element>\n" +
+        "            <d:PropertyInt16 m:type=\"Int16\">789</d:PropertyInt16>\n" +
+        "            <d:PropertyString>TEST 3</d:PropertyString>\n" +
+        "          </m:element>\n" +
+        "        </d:CollPropertyComp>\n" +
+        "    </m:properties>\n" +
+        "  </a:content>\n" +
+        "</a:entry>\n";
     XMLAssert.assertXMLEqual(expectedResult, resultString);
   }
 
@@ -507,36 +524,38 @@ public class ODataXmlSerializerTest  {
     final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESMixPrimCollComp");
     Entity entity = data.readAll(edmEntitySet).getEntities().get(0);
     entity.getProperties().retainAll(Arrays.asList(entity.getProperties().get(0)));
-    final String resultString = IOUtils.toString(serializer.entity(metadata, edmEntitySet.getEntityType(), 
+    long currentTimeMillis = System.currentTimeMillis();
+    InputStream content = serializer.entity(metadata, edmEntitySet.getEntityType(),
         entity,
         EntitySerializerOptions.with()
             .contextURL(ContextURL.with().entitySet(edmEntitySet).suffix(Suffix.ENTITY).build())
-            .build()).getContent());
-    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
-        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + 
-        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + 
+            .build()).getContent();
+    final String resultString = IOUtils.toString(content);
+    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" +
+        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
+        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
         "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" "
-        + "m:context=\"$metadata#ESMixPrimCollComp/$entity\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>ESMixPrimCollComp(32767)</a:id>\n" + 
-        "  <a:title />\n" + 
-        "  <a:summary />\n" + 
-        "  <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-            .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "  <a:author>\n" + 
-        "    <a:name />\n" + 
-        "  </a:author>\n" + 
-        "  <a:link rel=\"edit\" href=\"ESMixPrimCollComp(32767)\"/>\n" + 
-        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "    term=\"#olingo.odata.test1.ETMixPrimCollComp\" />\n" + 
-        "  <a:content type=\"application/xml\">\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" + 
-        "      <d:CollPropertyString m:null=\"true\" />\n" + 
-        "      <d:PropertyComp m:null=\"true\" />\n" + 
-        "      <d:CollPropertyComp m:null=\"true\" />\n" + 
-        "    </m:properties>\n" + 
-        "  </a:content>\n" + 
+        + "m:context=\"$metadata#ESMixPrimCollComp/$entity\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>ESMixPrimCollComp(32767)</a:id>\n" +
+        "  <a:title />\n" +
+        "  <a:summary />\n" +
+        "  <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+            .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "  <a:author>\n" +
+        "    <a:name />\n" +
+        "  </a:author>\n" +
+        "  <a:link rel=\"edit\" href=\"ESMixPrimCollComp(32767)\"/>\n" +
+        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "    term=\"#olingo.odata.test1.ETMixPrimCollComp\" />\n" +
+        "  <a:content type=\"application/xml\">\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>\n" +
+        "      <d:CollPropertyString m:null=\"true\" />\n" +
+        "      <d:PropertyComp m:null=\"true\" />\n" +
+        "      <d:CollPropertyComp m:null=\"true\" />\n" +
+        "    </m:properties>\n" +
+        "  </a:content>\n" +
         "</a:entry>";
     XMLAssert.assertXMLEqual(expectedResult, resultString);
   }
@@ -573,33 +592,35 @@ public class ODataXmlSerializerTest  {
   public void entityMedia() throws Exception {
     final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESMedia");
     final Entity entity = data.readAll(edmEntitySet).getEntities().get(0);
-    final String resultString = IOUtils.toString(serializer.entity(metadata, edmEntitySet.getEntityType(),
+    long currentTimeMillis = System.currentTimeMillis();
+    InputStream content = serializer.entity(metadata, edmEntitySet.getEntityType(),
         entity,
         EntitySerializerOptions.with()
             .contextURL(ContextURL.with().entitySet(edmEntitySet).suffix(Suffix.ENTITY).build())
-            .build()).getContent());
-    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
-        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + 
-        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + 
+            .build()).getContent();
+    final String resultString = IOUtils.toString(content);
+    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" +
+        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
+        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
         "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" " +
-        "  m:context=\"$metadata#ESMedia/$entity\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>ESMedia(1)</a:id>\n" + 
-        "  <a:title />\n" + 
-        "  <a:summary />\n" + 
-        "  <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-              .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "  <a:author>\n" + 
-        "    <a:name />\n" + 
-        "  </a:author>\n" + 
-        "  <a:link rel=\"edit\" href=\"ESMedia(1)\"/>\n" + 
+        "  m:context=\"$metadata#ESMedia/$entity\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>ESMedia(1)</a:id>\n" +
+        "  <a:title />\n" +
+        "  <a:summary />\n" +
+        "  <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+            .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "  <a:author>\n" +
+        "    <a:name />\n" +
+        "  </a:author>\n" +
+        "  <a:link rel=\"edit\" href=\"ESMedia(1)\"/>\n" +
         "  <a:content type=\"image/svg+xml\" src=\"ESMedia(1)/$value\" />\n" +
         "  <a:link rel=\"edit-media\" title=\"ESMedia\" href=\"ESMedia(1)/$value\"/>\n" +
-        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "    term=\"#olingo.odata.test1.ETMedia\" />\n" + 
-        "  <m:properties>\n" + 
-        "    <d:PropertyInt16 m:type=\"Int16\">1</d:PropertyInt16>\n" + 
-        "  </m:properties>\n" + 
+        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "    term=\"#olingo.odata.test1.ETMedia\" />\n" +
+        "  <m:properties>\n" +
+        "    <d:PropertyInt16 m:type=\"Int16\">1</d:PropertyInt16>\n" +
+        "  </m:properties>\n" +
         "</a:entry>";
     XMLAssert.assertXMLEqual(expectedResult, resultString);
   }
@@ -608,92 +629,94 @@ public class ODataXmlSerializerTest  {
   public void entitySetMedia() throws Exception {
     final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESMedia");
     final EntityCollection entitySet = data.readAll(edmEntitySet);
-    final String resultString = IOUtils.toString(serializer.entityCollection(metadata,
+    long currentTimeMillis = System.currentTimeMillis();
+    InputStream content = serializer.entityCollection(metadata,
         edmEntitySet.getEntityType(), entitySet,
         EntityCollectionSerializerOptions.with()
             .contextURL(ContextURL.with().entitySet(edmEntitySet).build())
             .setId("http://host/svc/ESMedia")
-            .build()).getContent());
-    
-    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
-        "<a:feed xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + 
-        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + 
-        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" m:context=\"$metadata#ESMedia\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>http://host/svc/ESMedia</a:id>\n" + 
-        "  <a:entry>\n" + 
-        "    <a:id>ESMedia(1)</a:id>\n" + 
-        "    <a:title />\n" + 
-        "    <a:summary />\n" + 
-        "  <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-              .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "    <a:author>\n" + 
-        "      <a:name />\n" + 
-        "    </a:author>\n" + 
-        "    <a:link rel=\"edit\" href=\"ESMedia(1)\"/>\n" + 
+            .build()).getContent();
+    final String resultString = IOUtils.toString(content);
+
+    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" +
+        "<a:feed xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
+        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
+        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" m:context=\"$metadata#ESMedia\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>http://host/svc/ESMedia</a:id>\n" +
+        "  <a:entry>\n" +
+        "    <a:id>ESMedia(1)</a:id>\n" +
+        "    <a:title />\n" +
+        "    <a:summary />\n" +
+        "  <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "    <a:author>\n" +
+        "      <a:name />\n" +
+        "    </a:author>\n" +
+        "    <a:link rel=\"edit\" href=\"ESMedia(1)\"/>\n" +
         "    <a:content type=\"image/svg+xml\" src=\"ESMedia(1)/$value\" />\n" +
         "    <a:link rel=\"edit-media\" title=\"ESMedia\" href=\"ESMedia(1)/$value\"/>\n" +
-        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "      term=\"#olingo.odata.test1.ETMedia\" />\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">1</d:PropertyInt16>\n" + 
-        "    </m:properties>\n" + 
-        "  </a:entry>\n" + 
-        "  <a:entry>\n" + 
-        "    <a:id>ESMedia(2)</a:id>\n" + 
-        "    <a:title />\n" + 
-        "    <a:summary />\n" + 
-        "  <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-              .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "    <a:author>\n" + 
-        "      <a:name />\n" + 
-        "    </a:author>\n" + 
-        "    <a:link rel=\"edit\" href=\"ESMedia(2)\"/>\n" + 
-        "    <a:content type=\"image/svg+xml\" src=\"ESMedia(2)/$value\" />\n" + 
+        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "      term=\"#olingo.odata.test1.ETMedia\" />\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">1</d:PropertyInt16>\n" +
+        "    </m:properties>\n" +
+        "  </a:entry>\n" +
+        "  <a:entry>\n" +
+        "    <a:id>ESMedia(2)</a:id>\n" +
+        "    <a:title />\n" +
+        "    <a:summary />\n" +
+        "  <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+            .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "    <a:author>\n" +
+        "      <a:name />\n" +
+        "    </a:author>\n" +
+        "    <a:link rel=\"edit\" href=\"ESMedia(2)\"/>\n" +
+        "    <a:content type=\"image/svg+xml\" src=\"ESMedia(2)/$value\" />\n" +
         "    <a:link rel=\"edit-media\" title=\"ESMedia\" href=\"ESMedia(2)/$value\"/>\n" +
-        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "      term=\"#olingo.odata.test1.ETMedia\" />\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">2</d:PropertyInt16>\n" + 
-        "    </m:properties>\n" + 
-        "  </a:entry>\n" + 
-        "  <a:entry>\n" + 
-        "    <a:id>ESMedia(3)</a:id>\n" + 
-        "    <a:title />\n" + 
-        "    <a:summary />\n" + 
-        "  <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-              .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "    <a:author>\n" + 
-        "      <a:name />\n" + 
-        "    </a:author>\n" + 
-        "    <a:link rel=\"edit\" href=\"ESMedia(3)\"/>\n" + 
-        "    <a:content type=\"image/svg+xml\" src=\"ESMedia(3)/$value\" />\n" + 
+        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "      term=\"#olingo.odata.test1.ETMedia\" />\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">2</d:PropertyInt16>\n" +
+        "    </m:properties>\n" +
+        "  </a:entry>\n" +
+        "  <a:entry>\n" +
+        "    <a:id>ESMedia(3)</a:id>\n" +
+        "    <a:title />\n" +
+        "    <a:summary />\n" +
+        "  <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+            .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "    <a:author>\n" +
+        "      <a:name />\n" +
+        "    </a:author>\n" +
+        "    <a:link rel=\"edit\" href=\"ESMedia(3)\"/>\n" +
+        "    <a:content type=\"image/svg+xml\" src=\"ESMedia(3)/$value\" />\n" +
         "    <a:link rel=\"edit-media\" title=\"ESMedia\" href=\"ESMedia(3)/$value\"/>\n" +
-        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "      term=\"#olingo.odata.test1.ETMedia\" />\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">3</d:PropertyInt16>\n" + 
-        "    </m:properties>\n" + 
-        "  </a:entry>\n" + 
-        "  <a:entry>\n" + 
-        "    <a:id>ESMedia(4)</a:id>\n" + 
-        "    <a:title />\n" + 
-        "    <a:summary />\n" + 
-        "  <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-              .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "    <a:author>\n" + 
-        "      <a:name />\n" + 
-        "    </a:author>\n" + 
-        "    <a:link rel=\"edit\" href=\"ESMedia(4)\"/>\n" + 
-        "    <a:content type=\"image/svg+xml\" src=\"ESMedia(4)/$value\" />\n" + 
+        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "      term=\"#olingo.odata.test1.ETMedia\" />\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">3</d:PropertyInt16>\n" +
+        "    </m:properties>\n" +
+        "  </a:entry>\n" +
+        "  <a:entry>\n" +
+        "    <a:id>ESMedia(4)</a:id>\n" +
+        "    <a:title />\n" +
+        "    <a:summary />\n" +
+        "  <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+            .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "    <a:author>\n" +
+        "      <a:name />\n" +
+        "    </a:author>\n" +
+        "    <a:link rel=\"edit\" href=\"ESMedia(4)\"/>\n" +
+        "    <a:content type=\"image/svg+xml\" src=\"ESMedia(4)/$value\" />\n" +
         "    <a:link rel=\"edit-media\" title=\"ESMedia\" href=\"ESMedia(4)/$value\"/>\n" +
-        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "      term=\"#olingo.odata.test1.ETMedia\" />\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyInt16 m:type=\"Int16\">4</d:PropertyInt16>\n" + 
-        "    </m:properties>\n" + 
-        "  </a:entry>\n" + 
-        "</a:feed>\n" + 
+        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "      term=\"#olingo.odata.test1.ETMedia\" />\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyInt16 m:type=\"Int16\">4</d:PropertyInt16>\n" +
+        "    </m:properties>\n" +
+        "  </a:entry>\n" +
+        "</a:feed>\n" +
         "";
     XMLAssert.assertXMLEqual(expectedResult, resultString);
   }
@@ -702,136 +725,138 @@ public class ODataXmlSerializerTest  {
   public void primitiveValuesAllNull() throws Exception {
     final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESAllNullable");
     final EntityCollection entitySet = data.readAll(edmEntitySet);
-    final String resultString = IOUtils.toString(serializer.entityCollection(metadata,
+    long currentTimeMillis = System.currentTimeMillis();
+    InputStream content = serializer.entityCollection(metadata,
         edmEntitySet.getEntityType(), entitySet,
-                EntityCollectionSerializerOptions.with()
-                    .contextURL(ContextURL.with().serviceRoot(URI.create("http://host/svc"))
-                        .entitySet(edmEntitySet).build())
-                    .setId("http://host/svc/ESAllNullable")
-                    .build()).getContent());
-    String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
+        EntityCollectionSerializerOptions.with()
+            .contextURL(ContextURL.with().serviceRoot(URI.create("http://host/svc"))
+                .entitySet(edmEntitySet).build())
+            .setId("http://host/svc/ESAllNullable")
+            .build()).getContent();
+    final String resultString = IOUtils.toString(content);
+    String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" +
         "<a:feed xmlns:a=\"http://www.w3.org/2005/Atom\" "
-        + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + 
+        + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
         "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" "
-        + "m:context=\"http://host/svc$metadata#ESAllNullable\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>http://host/svc/ESAllNullable</a:id>\n" + 
-        "  <a:entry>\n" + 
-        "    <a:id>ESAllNullable(1)</a:id>\n" + 
-        "    <a:title />\n" + 
-        "    <a:summary />\n" + 
-        "    <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-        .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "    <a:author>\n" + 
-        "      <a:name />\n" + 
-        "    </a:author>\n" + 
-        "    <a:link rel=\"edit\" href=\"ESAllNullable(1)\" />\n" + 
-        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "      term=\"#olingo.odata.test1.ETAllNullable\" />\n" + 
-        "    <a:content type=\"application/xml\">\n" + 
-        "      <m:properties>\n" + 
-        "        <d:PropertyKey m:type=\"Int16\">1</d:PropertyKey>\n" + 
-        "        <d:PropertyInt16 m:null=\"true\" />\n" + 
-        "        <d:PropertyString m:null=\"true\" />\n" + 
-        "        <d:PropertyBoolean m:null=\"true\" />\n" + 
-        "        <d:PropertyByte m:null=\"true\" />\n" + 
-        "        <d:PropertySByte m:null=\"true\" />\n" + 
-        "        <d:PropertyInt32 m:null=\"true\" />\n" + 
-        "        <d:PropertyInt64 m:null=\"true\" />\n" + 
-        "        <d:PropertySingle m:null=\"true\" />\n" + 
-        "        <d:PropertyDouble m:null=\"true\" />\n" + 
-        "        <d:PropertyDecimal m:null=\"true\" />\n" + 
-        "        <d:PropertyBinary m:null=\"true\" />\n" + 
-        "        <d:PropertyDate m:null=\"true\" />\n" + 
-        "        <d:PropertyDateTimeOffset m:null=\"true\" />\n" + 
-        "        <d:PropertyDuration m:null=\"true\" />\n" + 
-        "        <d:PropertyGuid m:null=\"true\" />\n" + 
-        "        <d:PropertyTimeOfDay m:null=\"true\" />\n" + 
-        "        <d:CollPropertyString m:type=\"#Collection(String)\">\n" + 
-        "          <m:element>spiderman@comic.com</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>spidergirl@comic.com</m:element>\n" + 
-        "        </d:CollPropertyString>\n" + 
-        "        <d:CollPropertyBoolean m:type=\"#Collection(Boolean)\">\n" + 
-        "          <m:element>true</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>false</m:element>\n" + 
-        "        </d:CollPropertyBoolean>\n" + 
-        "        <d:CollPropertyByte m:type=\"#Collection(Byte)\">\n" + 
-        "          <m:element>50</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>249</m:element>\n" + 
-        "        </d:CollPropertyByte>\n" + 
-        "        <d:CollPropertySByte m:type=\"#Collection(SByte)\">\n" + 
-        "          <m:element>-120</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>126</m:element>\n" + 
-        "        </d:CollPropertySByte>\n" + 
-        "        <d:CollPropertyInt16 m:type=\"#Collection(Int16)\">\n" + 
-        "          <m:element>1000</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>30112</m:element>\n" + 
-        "        </d:CollPropertyInt16>\n" + 
-        "        <d:CollPropertyInt32 m:type=\"#Collection(Int32)\">\n" + 
-        "          <m:element>23232323</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>10000001</m:element>\n" + 
-        "        </d:CollPropertyInt32>\n" + 
-        "        <d:CollPropertyInt64 m:type=\"#Collection(Int64)\">\n" + 
-        "          <m:element>929292929292</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>444444444444</m:element>\n" + 
-        "        </d:CollPropertyInt64>\n" + 
-        "        <d:CollPropertySingle m:type=\"#Collection(Single)\">\n" + 
-        "          <m:element>1790.0</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>3210.0</m:element>\n" + 
-        "        </d:CollPropertySingle>\n" + 
-        "        <d:CollPropertyDouble m:type=\"#Collection(Double)\">\n" + 
-        "          <m:element>-17900.0</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>3210.0</m:element>\n" + 
-        "        </d:CollPropertyDouble>\n" + 
-        "        <d:CollPropertyDecimal m:type=\"#Collection(Decimal)\">\n" + 
-        "          <m:element>12</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>1234</m:element>\n" + 
-        "        </d:CollPropertyDecimal>\n" + 
-        "        <d:CollPropertyBinary m:type=\"#Collection(Binary)\">\n" + 
-        "          <m:element>q83v</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>VGeJ</m:element>\n" + 
-        "        </d:CollPropertyBinary>\n" + 
-        "        <d:CollPropertyDate m:type=\"#Collection(Date)\">\n" + 
-        "          <m:element>1958-12-03</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>2013-06-25</m:element>\n" + 
-        "        </d:CollPropertyDate>\n" + 
-        "        <d:CollPropertyDateTimeOffset m:type=\"#Collection(DateTimeOffset)\">\n" + 
-        "          <m:element>2015-08-12T03:08:34Z</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>1948-02-17T09:09:09Z</m:element>\n" + 
-        "        </d:CollPropertyDateTimeOffset>\n" + 
-        "        <d:CollPropertyDuration m:type=\"#Collection(Duration)\">\n" + 
-        "          <m:element>PT13S</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>PT1H0S</m:element>\n" + 
-        "        </d:CollPropertyDuration>\n" + 
-        "        <d:CollPropertyGuid m:type=\"#Collection(Guid)\">\n" + 
-        "          <m:element>ffffff67-89ab-cdef-0123-456789aaaaaa</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>cccccc67-89ab-cdef-0123-456789cccccc</m:element>\n" + 
-        "        </d:CollPropertyGuid>\n" + 
-        "        <d:CollPropertyTimeOfDay m:type=\"#Collection(TimeOfDay)\">\n" + 
-        "          <m:element>04:14:13</m:element>\n" + 
-        "          <m:element d:null=\"true\" />\n" + 
-        "          <m:element>00:37:13</m:element>\n" + 
-        "        </d:CollPropertyTimeOfDay>\n" + 
-        "      </m:properties>\n" + 
-        "    </a:content>\n" + 
-        "  </a:entry>\n" + 
+        + "m:context=\"http://host/svc$metadata#ESAllNullable\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>http://host/svc/ESAllNullable</a:id>\n" +
+        "  <a:entry>\n" +
+        "    <a:id>ESAllNullable(1)</a:id>\n" +
+        "    <a:title />\n" +
+        "    <a:summary />\n" +
+        "    <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "    <a:author>\n" +
+        "      <a:name />\n" +
+        "    </a:author>\n" +
+        "    <a:link rel=\"edit\" href=\"ESAllNullable(1)\" />\n" +
+        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "      term=\"#olingo.odata.test1.ETAllNullable\" />\n" +
+        "    <a:content type=\"application/xml\">\n" +
+        "      <m:properties>\n" +
+        "        <d:PropertyKey m:type=\"Int16\">1</d:PropertyKey>\n" +
+        "        <d:PropertyInt16 m:null=\"true\" />\n" +
+        "        <d:PropertyString m:null=\"true\" />\n" +
+        "        <d:PropertyBoolean m:null=\"true\" />\n" +
+        "        <d:PropertyByte m:null=\"true\" />\n" +
+        "        <d:PropertySByte m:null=\"true\" />\n" +
+        "        <d:PropertyInt32 m:null=\"true\" />\n" +
+        "        <d:PropertyInt64 m:null=\"true\" />\n" +
+        "        <d:PropertySingle m:null=\"true\" />\n" +
+        "        <d:PropertyDouble m:null=\"true\" />\n" +
+        "        <d:PropertyDecimal m:null=\"true\" />\n" +
+        "        <d:PropertyBinary m:null=\"true\" />\n" +
+        "        <d:PropertyDate m:null=\"true\" />\n" +
+        "        <d:PropertyDateTimeOffset m:null=\"true\" />\n" +
+        "        <d:PropertyDuration m:null=\"true\" />\n" +
+        "        <d:PropertyGuid m:null=\"true\" />\n" +
+        "        <d:PropertyTimeOfDay m:null=\"true\" />\n" +
+        "        <d:CollPropertyString m:type=\"#Collection(String)\">\n" +
+        "          <m:element>spiderman@comic.com</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>spidergirl@comic.com</m:element>\n" +
+        "        </d:CollPropertyString>\n" +
+        "        <d:CollPropertyBoolean m:type=\"#Collection(Boolean)\">\n" +
+        "          <m:element>true</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>false</m:element>\n" +
+        "        </d:CollPropertyBoolean>\n" +
+        "        <d:CollPropertyByte m:type=\"#Collection(Byte)\">\n" +
+        "          <m:element>50</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>249</m:element>\n" +
+        "        </d:CollPropertyByte>\n" +
+        "        <d:CollPropertySByte m:type=\"#Collection(SByte)\">\n" +
+        "          <m:element>-120</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>126</m:element>\n" +
+        "        </d:CollPropertySByte>\n" +
+        "        <d:CollPropertyInt16 m:type=\"#Collection(Int16)\">\n" +
+        "          <m:element>1000</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>30112</m:element>\n" +
+        "        </d:CollPropertyInt16>\n" +
+        "        <d:CollPropertyInt32 m:type=\"#Collection(Int32)\">\n" +
+        "          <m:element>23232323</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>10000001</m:element>\n" +
+        "        </d:CollPropertyInt32>\n" +
+        "        <d:CollPropertyInt64 m:type=\"#Collection(Int64)\">\n" +
+        "          <m:element>929292929292</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>444444444444</m:element>\n" +
+        "        </d:CollPropertyInt64>\n" +
+        "        <d:CollPropertySingle m:type=\"#Collection(Single)\">\n" +
+        "          <m:element>1790.0</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>3210.0</m:element>\n" +
+        "        </d:CollPropertySingle>\n" +
+        "        <d:CollPropertyDouble m:type=\"#Collection(Double)\">\n" +
+        "          <m:element>-17900.0</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>3210.0</m:element>\n" +
+        "        </d:CollPropertyDouble>\n" +
+        "        <d:CollPropertyDecimal m:type=\"#Collection(Decimal)\">\n" +
+        "          <m:element>12</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>1234</m:element>\n" +
+        "        </d:CollPropertyDecimal>\n" +
+        "        <d:CollPropertyBinary m:type=\"#Collection(Binary)\">\n" +
+        "          <m:element>q83v</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>VGeJ</m:element>\n" +
+        "        </d:CollPropertyBinary>\n" +
+        "        <d:CollPropertyDate m:type=\"#Collection(Date)\">\n" +
+        "          <m:element>1958-12-03</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>2013-06-25</m:element>\n" +
+        "        </d:CollPropertyDate>\n" +
+        "        <d:CollPropertyDateTimeOffset m:type=\"#Collection(DateTimeOffset)\">\n" +
+        "          <m:element>2015-08-12T03:08:34Z</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>1948-02-17T09:09:09Z</m:element>\n" +
+        "        </d:CollPropertyDateTimeOffset>\n" +
+        "        <d:CollPropertyDuration m:type=\"#Collection(Duration)\">\n" +
+        "          <m:element>PT13S</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>PT1H0S</m:element>\n" +
+        "        </d:CollPropertyDuration>\n" +
+        "        <d:CollPropertyGuid m:type=\"#Collection(Guid)\">\n" +
+        "          <m:element>ffffff67-89ab-cdef-0123-456789aaaaaa</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>cccccc67-89ab-cdef-0123-456789cccccc</m:element>\n" +
+        "        </d:CollPropertyGuid>\n" +
+        "        <d:CollPropertyTimeOfDay m:type=\"#Collection(TimeOfDay)\">\n" +
+        "          <m:element>04:14:13</m:element>\n" +
+        "          <m:element d:null=\"true\" />\n" +
+        "          <m:element>00:37:13</m:element>\n" +
+        "        </d:CollPropertyTimeOfDay>\n" +
+        "      </m:properties>\n" +
+        "    </a:content>\n" +
+        "  </a:entry>\n" +
         "</a:feed>";
-    XMLAssert.assertXMLEqual(expected, resultString);
+    checkXMLEqual(expected, resultString);
   }
 
   @Test
@@ -843,6 +868,7 @@ public class ODataXmlSerializerTest  {
     final SelectItem selectItem2 = ExpandSelectMock.mockSelectItem(edmEntitySet, "PropertyBoolean");
     final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(
         selectItem1, selectItem2, selectItem2));
+    long currentTimeMillis = System.currentTimeMillis();
     InputStream result = serializer
         .entity(metadata, entityType, entity,
             EntitySerializerOptions.with()
@@ -852,37 +878,37 @@ public class ODataXmlSerializerTest  {
                 .select(select)
                 .build()).getContent();
     final String resultString = IOUtils.toString(result);
-    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
-        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + 
-        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + 
+    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>\n" +
+        "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
+        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
         "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" " +
-        "  m:context=\"$metadata#ESAllPrim(PropertyBoolean,PropertyDate)/$entity\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>ESAllPrim(32767)</a:id>\n" + 
-        "  <a:title />\n" + 
-        "  <a:summary />\n" + 
-        "    <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
-                .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "  <a:author>\n" + 
-        "    <a:name />\n" + 
-        "  </a:author>\n" + 
-        "  <a:link rel=\"edit\" href=\"ESAllPrim(32767)\"/>\n" + 
-        "  <a:link\n" + 
-        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimOne\"\n" + 
-        "    type=\"application/atom+xml;type=entry\" title=\"NavPropertyETTwoPrimOne\"\n" + 
+        "  m:context=\"$metadata#ESAllPrim(PropertyBoolean,PropertyDate)/$entity\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>ESAllPrim(32767)</a:id>\n" +
+        "  <a:title />\n" +
+        "  <a:summary />\n" +
+        "    <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "  <a:author>\n" +
+        "    <a:name />\n" +
+        "  </a:author>\n" +
+        "  <a:link rel=\"edit\" href=\"ESAllPrim(32767)\"/>\n" +
+        "  <a:link\n" +
+        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimOne\"\n" +
+        "    type=\"application/atom+xml;type=entry\" title=\"NavPropertyETTwoPrimOne\"\n" +
         "    href=\"ESTwoPrim(32767)\" />\n" +
-        "  <a:link\n" + 
-        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimMany\"\n" + 
-        "    type=\"application/atom+xml;type=feed\" title=\"NavPropertyETTwoPrimMany\"\n" + 
-        "    href=\"ESAllPrim(32767)/NavPropertyETTwoPrimMany\" />\n" +         
-        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "    term=\"#olingo.odata.test1.ETAllPrim\" />\n" + 
-        "  <a:content type=\"application/xml\">\n" + 
-        "    <m:properties>\n" + 
-        "      <d:PropertyBoolean m:type=\"Boolean\">true</d:PropertyBoolean>\n" + 
-        "      <d:PropertyDate m:type=\"Date\">2012-12-03</d:PropertyDate>\n" + 
-        "    </m:properties>\n" + 
-        "  </a:content>\n" + 
+        "  <a:link\n" +
+        "    rel=\"http://docs.oasis-open.org/odata/ns/related/NavPropertyETTwoPrimMany\"\n" +
+        "    type=\"application/atom+xml;type=feed\" title=\"NavPropertyETTwoPrimMany\"\n" +
+        "    href=\"ESAllPrim(32767)/NavPropertyETTwoPrimMany\" />\n" +
+        "  <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "    term=\"#olingo.odata.test1.ETAllPrim\" />\n" +
+        "  <a:content type=\"application/xml\">\n" +
+        "    <m:properties>\n" +
+        "      <d:PropertyBoolean m:type=\"Boolean\">true</d:PropertyBoolean>\n" +
+        "      <d:PropertyDate m:type=\"Date\">2012-12-03</d:PropertyDate>\n" +
+        "    </m:properties>\n" +
+        "  </a:content>\n" +
         "</a:entry>";
     XMLAssert.assertXMLEqual(expectedResult, resultString);
   }
@@ -894,6 +920,7 @@ public class ODataXmlSerializerTest  {
     final EntityCollection entitySet = data.readAll(edmEntitySet);
     final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(
         ExpandSelectMock.mockSelectItem(edmEntitySet, "PropertyComp", "PropertyComp", "PropertyString")));
+    long currentTimeMillis = System.currentTimeMillis();
     InputStream result = serializer
         .entityCollection(metadata, entityType, entitySet,
             EntityCollectionSerializerOptions.with()
@@ -904,59 +931,59 @@ public class ODataXmlSerializerTest  {
                 .select(select)
                 .build()).getContent();
     final String resultString = IOUtils.toString(result);
-    final String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
-        "<a:feed xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + 
-        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + 
-        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\"\n" + 
-        "  m:context=\"$metadata#ESCompComp(PropertyComp/PropertyComp/PropertyString)\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>http://host/svc/ESCompComp</a:id>\n" + 
-        "  <a:entry>\n" + 
-        "    <a:id>ESCompComp(1)</a:id>\n" + 
-        "    <a:title />\n" + 
-        "    <a:summary />\n" + 
-        "<a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") 
-          .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "    <a:author>\n" + 
-        "      <a:name />\n" + 
-        "    </a:author>\n" + 
-        "    <a:link rel=\"edit\" href=\"ESCompComp(1)\"/>\n" + 
-        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "      term=\"#olingo.odata.test1.ETCompComp\" />\n" + 
-        "    <a:content type=\"application/xml\">\n" + 
-        "      <m:properties>\n" + 
-        "        <d:PropertyComp m:type=\"#olingo.odata.test1.CTCompComp\">\n" + 
-        "          <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" + 
-        "            <d:PropertyString>String 1</d:PropertyString>\n" + 
-        "          </d:PropertyComp>\n" + 
-        "        </d:PropertyComp>\n" + 
-        "      </m:properties>\n" + 
-        "    </a:content>\n" + 
-        "  </a:entry>\n" + 
-        "  <a:entry>\n" + 
-        "    <a:id>ESCompComp(2)</a:id>\n" + 
-        "    <a:title />\n" + 
-        "    <a:summary />\n" + 
-        "<a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") 
-            .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "    <a:author>\n" + 
-        "      <a:name />\n" + 
-        "    </a:author>\n" + 
-        "    <a:link rel=\"edit\" href=\"ESCompComp(2)\"/>\n" + 
-        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "      term=\"#olingo.odata.test1.ETCompComp\" />\n" + 
-        "    <a:content type=\"application/xml\">\n" + 
-        "      <m:properties>\n" + 
-        "        <d:PropertyComp m:type=\"#olingo.odata.test1.CTCompComp\">\n" + 
-        "          <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" + 
-        "            <d:PropertyString>String 2</d:PropertyString>\n" + 
-        "          </d:PropertyComp>\n" + 
-        "        </d:PropertyComp>\n" + 
-        "      </m:properties>\n" + 
-        "    </a:content>\n" + 
-        "  </a:entry>\n" + 
-        "</a:feed>\n"; 
-    XMLAssert.assertXMLEqual(expected, resultString);
+    final String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" +
+        "<a:feed xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
+        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
+        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\"\n" +
+        "  m:context=\"$metadata#ESCompComp(PropertyComp/PropertyComp/PropertyString)\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>http://host/svc/ESCompComp</a:id>\n" +
+        "  <a:entry>\n" +
+        "    <a:id>ESCompComp(1)</a:id>\n" +
+        "    <a:title />\n" +
+        "    <a:summary />\n" +
+        "<a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "    <a:author>\n" +
+        "      <a:name />\n" +
+        "    </a:author>\n" +
+        "    <a:link rel=\"edit\" href=\"ESCompComp(1)\"/>\n" +
+        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "      term=\"#olingo.odata.test1.ETCompComp\" />\n" +
+        "    <a:content type=\"application/xml\">\n" +
+        "      <m:properties>\n" +
+        "        <d:PropertyComp m:type=\"#olingo.odata.test1.CTCompComp\">\n" +
+        "          <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" +
+        "            <d:PropertyString>String 1</d:PropertyString>\n" +
+        "          </d:PropertyComp>\n" +
+        "        </d:PropertyComp>\n" +
+        "      </m:properties>\n" +
+        "    </a:content>\n" +
+        "  </a:entry>\n" +
+        "  <a:entry>\n" +
+        "    <a:id>ESCompComp(2)</a:id>\n" +
+        "    <a:title />\n" +
+        "    <a:summary />\n" +
+        "<a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+            .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "    <a:author>\n" +
+        "      <a:name />\n" +
+        "    </a:author>\n" +
+        "    <a:link rel=\"edit\" href=\"ESCompComp(2)\"/>\n" +
+        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "      term=\"#olingo.odata.test1.ETCompComp\" />\n" +
+        "    <a:content type=\"application/xml\">\n" +
+        "      <m:properties>\n" +
+        "        <d:PropertyComp m:type=\"#olingo.odata.test1.CTCompComp\">\n" +
+        "          <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" +
+        "            <d:PropertyString>String 2</d:PropertyString>\n" +
+        "          </d:PropertyComp>\n" +
+        "        </d:PropertyComp>\n" +
+        "      </m:properties>\n" +
+        "    </a:content>\n" +
+        "  </a:entry>\n" +
+        "</a:feed>\n";
+    checkXMLEqual(expected, resultString);
   }
 
   @Test
@@ -967,7 +994,8 @@ public class ODataXmlSerializerTest  {
     final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(
         ExpandSelectMock.mockSelectItem(edmEntitySet, "PropertyComp", "PropertyComp", "PropertyString"),
         ExpandSelectMock.mockSelectItem(edmEntitySet, "PropertyComp", "PropertyComp")));
-    final String resultString = IOUtils.toString(serializer
+    long currentTimeMillis = System.currentTimeMillis();
+    InputStream inputStream = serializer
         .entityCollection(metadata, entityType, entitySet,
             EntityCollectionSerializerOptions.with()
                 .contextURL(ContextURL.with().entitySet(edmEntitySet)
@@ -975,62 +1003,63 @@ public class ODataXmlSerializerTest  {
                     .build())
                 .setId("http://host/svc/ESCompComp")
                 .select(select)
-                .build()).getContent());
-    String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" + 
-        "<a:feed xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + 
-        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + 
-        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" \n" + 
-        "  m:context=\"$metadata#ESCompComp(PropertyComp/PropertyComp)\"\n" + 
-        "  m:metadata-etag=\"WmetadataETag\">\n" + 
-        "  <a:id>http://host/svc/ESCompComp</a:id>\n" + 
-        "  <a:entry>\n" + 
-        "    <a:id>ESCompComp(1)</a:id>\n" + 
-        "    <a:title />\n" + 
-        "    <a:summary />\n" + 
-        "    <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") 
-                .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "    <a:author>\n" + 
-        "      <a:name />\n" + 
-        "    </a:author>\n" + 
-        "    <a:link rel=\"edit\" href=\"ESCompComp(1)\"/>\n" + 
-        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "      term=\"#olingo.odata.test1.ETCompComp\" />\n" + 
-        "    <a:content type=\"application/xml\">\n" + 
-        "      <m:properties>\n" + 
-        "        <d:PropertyComp m:type=\"#olingo.odata.test1.CTCompComp\">\n" + 
-        "          <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" + 
-        "            <d:PropertyInt16 m:type=\"Int16\">123</d:PropertyInt16>\n" + 
-        "            <d:PropertyString>String 1</d:PropertyString>\n" + 
-        "          </d:PropertyComp>\n" + 
-        "        </d:PropertyComp>\n" + 
-        "      </m:properties>\n" + 
-        "    </a:content>\n" + 
-        "  </a:entry>\n" + 
-        "  <a:entry>\n" + 
-        "    <a:id>ESCompComp(2)</a:id>\n" + 
-        "    <a:title />\n" + 
-        "    <a:summary />\n" + 
-        "    <a:updated>"+new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") 
-                .format(new Date(System.currentTimeMillis()))+"</a:updated>" +
-        "    <a:author>\n" + 
-        "      <a:name />\n" + 
-        "    </a:author>\n" + 
-        "    <a:link rel=\"edit\" href=\"ESCompComp(2)\"/>\n" + 
-        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" + 
-        "      term=\"#olingo.odata.test1.ETCompComp\" />\n" + 
-        "    <a:content type=\"application/xml\">\n" + 
-        "      <m:properties>\n" + 
-        "        <d:PropertyComp m:type=\"#olingo.odata.test1.CTCompComp\">\n" + 
-        "          <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" + 
-        "            <d:PropertyInt16 m:type=\"Int16\">987</d:PropertyInt16>\n" + 
-        "            <d:PropertyString>String 2</d:PropertyString>\n" + 
-        "          </d:PropertyComp>\n" + 
-        "        </d:PropertyComp>\n" + 
-        "      </m:properties>\n" + 
-        "    </a:content>\n" + 
-        "  </a:entry>\n" + 
+                .build()).getContent();
+    final String resultString = IOUtils.toString(inputStream);
+    String expected = "<?xml version='1.0' encoding='UTF-8'?>\n" +
+        "<a:feed xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
+        "  xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
+        "  xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" \n" +
+        "  m:context=\"$metadata#ESCompComp(PropertyComp/PropertyComp)\"\n" +
+        "  m:metadata-etag=\"WmetadataETag\">\n" +
+        "  <a:id>http://host/svc/ESCompComp</a:id>\n" +
+        "  <a:entry>\n" +
+        "    <a:id>ESCompComp(1)</a:id>\n" +
+        "    <a:title />\n" +
+        "    <a:summary />\n" +
+        "    <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+        .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "    <a:author>\n" +
+        "      <a:name />\n" +
+        "    </a:author>\n" +
+        "    <a:link rel=\"edit\" href=\"ESCompComp(1)\"/>\n" +
+        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "      term=\"#olingo.odata.test1.ETCompComp\" />\n" +
+        "    <a:content type=\"application/xml\">\n" +
+        "      <m:properties>\n" +
+        "        <d:PropertyComp m:type=\"#olingo.odata.test1.CTCompComp\">\n" +
+        "          <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" +
+        "            <d:PropertyInt16 m:type=\"Int16\">123</d:PropertyInt16>\n" +
+        "            <d:PropertyString>String 1</d:PropertyString>\n" +
+        "          </d:PropertyComp>\n" +
+        "        </d:PropertyComp>\n" +
+        "      </m:properties>\n" +
+        "    </a:content>\n" +
+        "  </a:entry>\n" +
+        "  <a:entry>\n" +
+        "    <a:id>ESCompComp(2)</a:id>\n" +
+        "    <a:title />\n" +
+        "    <a:summary />\n" +
+        "    <a:updated>" + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
+            .format(new Date(currentTimeMillis)) + "</a:updated>" +
+        "    <a:author>\n" +
+        "      <a:name />\n" +
+        "    </a:author>\n" +
+        "    <a:link rel=\"edit\" href=\"ESCompComp(2)\"/>\n" +
+        "    <a:category scheme=\"http://docs.oasis-open.org/odata/ns/scheme\"\n" +
+        "      term=\"#olingo.odata.test1.ETCompComp\" />\n" +
+        "    <a:content type=\"application/xml\">\n" +
+        "      <m:properties>\n" +
+        "        <d:PropertyComp m:type=\"#olingo.odata.test1.CTCompComp\">\n" +
+        "          <d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" +
+        "            <d:PropertyInt16 m:type=\"Int16\">987</d:PropertyInt16>\n"

<TRUNCATED>