You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ar...@apache.org on 2018/11/19 09:05:34 UTC

[1/2] olingo-odata4 git commit: [OLINGO-1191]Code Improvements

Repository: olingo-odata4
Updated Branches:
  refs/heads/master cf04fdcb4 -> c37d40f15


[OLINGO-1191]Code Improvements


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

Branch: refs/heads/master
Commit: f564c4a187fe226e5ff98accba3e4683cf1f28f0
Parents: cf04fdc
Author: Archana Rai <ar...@sap.com>
Authored: Mon Nov 19 14:33:33 2018 +0530
Committer: Archana Rai <ar...@sap.com>
Committed: Mon Nov 19 14:33:33 2018 +0530

----------------------------------------------------------------------
 .../olingo/client/core/EntitySetTest.java       | 12 +++
 .../apache/olingo/client/core/ErrorTest.java    | 13 +++
 .../olingo/client/core/ODataClientTest.java     | 91 ++++++++++++++++++++
 .../server/api/TranslatedExceptionsTest.java    | 16 ++++
 .../olingo/server/core/ExceptionHelperTest.java | 34 ++++++++
 .../olingo/server/core/ODataImplTest.java       | 10 ++-
 .../core/deserializer/batch/HeaderTest.java     |  7 ++
 .../server/core/ODataHandlerImplTest.java       | 24 ++++++
 8 files changed, 206 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f564c4a1/lib/client-core/src/test/java/org/apache/olingo/client/core/EntitySetTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/EntitySetTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/EntitySetTest.java
index 6ea256b..6b89475 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/EntitySetTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/EntitySetTest.java
@@ -141,6 +141,18 @@ private EdmEnabledODataClient getEdmEnabledClient1() {
   }
   
   @Test
+  public void testClientEntitySet() throws Exception {
+    final EdmEnabledODataClientImpl client = new EdmEnabledODataClientImpl(null, 
+        getEdmEnabledClient1().getCachedEdm(), null);
+    assertNotNull(client);
+    assertNull(client.getServiceRoot());
+    client.newURIBuilder();
+    assertNotNull(client.getCachedEdm());
+    assertNotNull(client.getEdm(null));
+    assertNotNull(client.getInvokeRequestFactory());
+  }
+  
+  @Test
   public void testContainmentNavOnSingleton() throws Exception {
     final InputStream input = getClass().getResourceAsStream("containmentNav4." + 
   getSuffix(ContentType.JSON_FULL_METADATA));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f564c4a1/lib/client-core/src/test/java/org/apache/olingo/client/core/ErrorTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/ErrorTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/ErrorTest.java
index f2e9af7..ebea132 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/ErrorTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/ErrorTest.java
@@ -36,6 +36,7 @@ import org.apache.olingo.client.api.serialization.ODataDeserializerException;
 import org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker;
 import org.apache.olingo.commons.api.ex.ODataError;
 import org.apache.olingo.commons.api.ex.ODataErrorDetail;
+import org.apache.olingo.commons.api.ex.ODataRuntimeException;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.junit.Test;
 
@@ -113,4 +114,16 @@ public class ErrorTest extends AbstractTest {
         checkResponse(odataClient, statusLine, entity, "Json");
     assertTrue(exp.getMessage().startsWith("Internal Server Error"));
   }
+  
+  @Test
+  public void testWithNull() throws Exception {
+    ODataClient odataClient = ODataClientFactory.getClient();
+    StatusLine statusLine = mock(StatusLine.class);
+    when(statusLine.getStatusCode()).thenReturn(500);
+    when(statusLine.toString()).thenReturn("Internal Server Error");
+        
+    ODataRuntimeException exp = ODataErrorResponseChecker.
+        checkResponse(odataClient, statusLine, null, "Json");
+    assertTrue(exp.getMessage().startsWith("Internal Server Error"));
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f564c4a1/lib/client-core/src/test/java/org/apache/olingo/client/core/ODataClientTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/ODataClientTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/ODataClientTest.java
index eaca8b5..f764463 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/ODataClientTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/ODataClientTest.java
@@ -20,9 +20,12 @@ package org.apache.olingo.client.core;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 
 import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.uri.SearchFactory;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.commons.api.format.ContentType;
 import org.junit.Test;
 
 public class ODataClientTest {
@@ -33,4 +36,92 @@ public class ODataClientTest {
     assertNotNull(client);
     assertEquals(ODataServiceVersion.V40, client.getServiceVersion());
   }
+  
+  @Test
+  public void clientImplTest() {
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    assertNotNull(client);
+    assertNotNull(client.newPreferences());
+    assertNotNull(client.getAsyncRequestFactory());
+    assertNotNull(client.getRetrieveRequestFactory());
+    assertNotNull(client.getCUDRequestFactory());
+    assertNotNull(client.getInvokeRequestFactory());
+    assertNotNull(client.getBatchRequestFactory());
+    assertEquals(ODataServiceVersion.V40, client.getServiceVersion());
+  }
+  
+  @Test
+  public void clientFactoryTest() {
+    assertNotNull(ODataClientFactory.getClient());
+    assertNotNull(ODataClientFactory.getEdmEnabledClient(null));
+    assertNotNull(ODataClientFactory.getEdmEnabledClient(null, null));
+    assertNotNull(ODataClientFactory.getEdmEnabledClient(null, null, null));
+    assertNotNull(ODataClientFactory.getEdmEnabledClient(null, null, null, null));
+  }
+  
+  @Test
+  public void searchTest() {
+    ODataClient client = ODataClientFactory.getClient();
+    assertNotNull(client);
+    SearchFactory searchFactory = client.getSearchFactory();
+    assertNotNull(searchFactory);
+    LiteralSearch literal = (LiteralSearch) searchFactory.literal("test");
+    assertNotNull(literal);
+    assertEquals("test", literal.build());
+    AndSearch and = (AndSearch) searchFactory.and(literal, literal);
+    assertNotNull(and);
+    assertEquals("(test AND test)", and.build());
+    OrSearch or = (OrSearch) searchFactory.or(literal, literal);
+    assertNotNull(or);
+    assertEquals("(test OR test)", or.build());
+    NotSearch not = (NotSearch) searchFactory.not(literal);
+    assertNotNull(not);
+    assertEquals("NOT (test)", not.build());
+  }
+  
+  @Test
+  public void configurationTest() {
+    ODataClient client = ODataClientFactory.getClient();
+    assertNotNull(client);
+    ConfigurationImpl config = (ConfigurationImpl) client.getConfiguration();
+    assertNotNull(config);
+    assertNotNull(config.getDefaultBatchAcceptFormat());
+    assertNotNull(config.getDefaultFormat());
+    assertNotNull(config.getDefaultMediaFormat());
+    assertNotNull(config.getDefaultPubFormat());
+    assertNotNull(config.getDefaultValueFormat());
+    assertNotNull(config.getExecutor());
+    assertNotNull(config.getHttpClientFactory());
+    assertNotNull(config.getHttpUriRequestFactory());
+    config.setAddressingDerivedTypes(true);
+    assertEquals(true, config.isAddressingDerivedTypes());
+    config.setContinueOnError(true);
+    assertEquals(true, config.isContinueOnError());
+    config.setGzipCompression(true);
+    assertEquals(true, config.isGzipCompression());
+    config.setKeyAsSegment(true);
+    assertEquals(true, config.isKeyAsSegment());
+    config.setUseChuncked(true);
+    assertEquals(true, config.isUseChuncked());
+    config.setUseUrlOperationFQN(true);
+    assertEquals(true, config.isUseUrlOperationFQN());
+    config.setUseXHTTPMethod(true);
+    assertEquals(true, config.isUseXHTTPMethod());
+    config.setDefaultBatchAcceptFormat(ContentType.APPLICATION_ATOM_SVC);
+    assertEquals(ContentType.APPLICATION_ATOM_SVC, config.getDefaultBatchAcceptFormat());
+    config.setDefaultMediaFormat(ContentType.APPLICATION_ATOM_SVC);
+    assertEquals(ContentType.APPLICATION_ATOM_SVC, config.getDefaultMediaFormat());
+    config.setDefaultPubFormat(ContentType.APPLICATION_ATOM_SVC);
+    assertEquals(ContentType.APPLICATION_ATOM_SVC, config.getDefaultPubFormat());
+    config.setDefaultValueFormat(ContentType.APPLICATION_ATOM_SVC);
+    assertEquals(ContentType.APPLICATION_ATOM_SVC, config.getDefaultValueFormat());
+    config.setExecutor(null);
+    assertNull(config.getExecutor());
+    config.setHttpClientFactory(null);
+    assertNull(config.getHttpClientFactory());
+    config.setHttpUriRequestFactory(null);
+    assertNull(config.getHttpUriRequestFactory());
+    config.setProperty("key", "value");
+    assertEquals("value", config.getProperty("key", "value"));
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f564c4a1/lib/server-api/src/test/java/org/apache/olingo/server/api/TranslatedExceptionsTest.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/test/java/org/apache/olingo/server/api/TranslatedExceptionsTest.java b/lib/server-api/src/test/java/org/apache/olingo/server/api/TranslatedExceptionsTest.java
index 7ec1f47..984ca65 100644
--- a/lib/server-api/src/test/java/org/apache/olingo/server/api/TranslatedExceptionsTest.java
+++ b/lib/server-api/src/test/java/org/apache/olingo/server/api/TranslatedExceptionsTest.java
@@ -25,6 +25,8 @@ import static org.junit.Assert.assertThat;
 
 import java.util.Locale;
 
+import javax.management.RuntimeErrorException;
+
 import org.apache.olingo.server.api.ODataLibraryException.ODataErrorMessage;
 import org.junit.Test;
 
@@ -159,4 +161,18 @@ public class TranslatedExceptionsTest {
     assertEquals(expectedText, translatedMessage.getMessage());
     assertEquals(expectedLocale, translatedMessage.getLocale());
   }
+  
+  @Test
+  public void testODataApplicationException1() {
+    ODataApplicationException exp = new ODataApplicationException("Exception", 500,
+        Locale.ENGLISH, new RuntimeException("Error"));
+    assertNotNull(exp);
+  }
+  
+  @Test
+  public void testODataApplicationException2() {
+    ODataApplicationException exp = new ODataApplicationException("Exception", 
+        500, Locale.ENGLISH, new RuntimeException("Error"), "500");
+    assertNotNull(exp);
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f564c4a1/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java
index 10d29ac..7e6e593 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java
@@ -21,6 +21,8 @@ package org.apache.olingo.server.core;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
+import java.util.Locale;
+
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.server.api.ODataLibraryException;
 import org.apache.olingo.server.api.ODataLibraryException.MessageKey;
@@ -28,6 +30,8 @@ import org.apache.olingo.server.api.ODataServerError;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
 import org.apache.olingo.server.api.etag.PreconditionException;
 import org.apache.olingo.server.api.serializer.SerializerException;
+import org.apache.olingo.server.core.uri.parser.UriParserException;
+import org.apache.olingo.server.core.uri.parser.UriParserSemanticException;
 import org.apache.olingo.server.core.uri.validator.UriValidationException;
 import org.junit.Test;
 
@@ -133,6 +137,36 @@ public class ExceptionHelperTest {
     }
   }
 
+  @Test
+  public void withNotImplementedException() {
+    final UriParserSemanticException  e = new UriParserSemanticException("Exception", 
+        UriParserSemanticException.MessageKeys.NOT_IMPLEMENTED, "Method");
+    ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, Locale.ENGLISH);
+    assertEquals(HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), serverError.getStatusCode());
+    assertEquals("'Method' is not implemented!", serverError.getMessage());
+    assertEquals(e, serverError.getException());
+  }
+  
+  @Test
+  public void uriParserException() {
+    final UriParserException  e = new UriParserSemanticException("Exception", 
+        UriParserSemanticException.MessageKeys.NOT_IMPLEMENTED, "Method");
+    ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, Locale.ENGLISH);
+    assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), serverError.getStatusCode());
+    assertEquals("'Method' is not implemented!", serverError.getMessage());
+    assertEquals(e, serverError.getException());
+  }
+  
+  @Test
+  public void acceptHeaderException() {
+    final AcceptHeaderContentNegotiatorException   e = new AcceptHeaderContentNegotiatorException ("Exception", 
+        UriParserSemanticException.MessageKeys.INVALID_KEY_VALUE, "Method");
+    ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, Locale.ENGLISH);
+    assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), serverError.getStatusCode());
+    assertEquals("Missing message for key 'INVALID_KEY_VALUE'!", serverError.getMessage());
+    assertEquals(e, serverError.getException());
+  }
+  
   private void checkStatusCode(final ODataServerError serverError, final HttpStatusCode statusCode,
       final ODataLibraryException exception) {
     assertEquals("FailedKey: " + exception.getMessageKey().getKey(),

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f564c4a1/lib/server-core/src/test/java/org/apache/olingo/server/core/ODataImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/ODataImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/ODataImplTest.java
index e0875e7..df8d685 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/ODataImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/ODataImplTest.java
@@ -20,6 +20,9 @@ package org.apache.olingo.server.core;
 
 import static org.junit.Assert.assertNotNull;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
@@ -36,7 +39,9 @@ public class ODataImplTest {
     assertNotNull(odata.createSerializer(ContentType.JSON));
     assertNotNull(odata.createSerializer(ContentType.APPLICATION_JSON));
     assertNotNull(odata.createSerializer(ContentType.JSON_FULL_METADATA));
-    
+    List<String> versions = new ArrayList<String>();
+    versions.add("4.01");
+    assertNotNull(odata.createSerializer(ContentType.JSON_FULL_METADATA, versions));
   }
 
   @Test
@@ -45,6 +50,9 @@ public class ODataImplTest {
     assertNotNull(odata.createDeserializer(ContentType.JSON));
     assertNotNull(odata.createDeserializer(ContentType.JSON_FULL_METADATA));
     assertNotNull(odata.createDeserializer(ContentType.APPLICATION_JSON));
+    List<String> versions = new ArrayList<String>();
+    versions.add("4.01");
+    assertNotNull(odata.createDeserializer(ContentType.APPLICATION_JSON, versions));
   }
 
   public void xmlDeserializer() throws DeserializerException {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f564c4a1/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HeaderTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HeaderTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HeaderTest.java
index ddbdb36..adecc50 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HeaderTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HeaderTest.java
@@ -19,6 +19,7 @@
 package org.apache.olingo.server.core.deserializer.batch;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
@@ -176,4 +177,10 @@ public class HeaderTest {
     assertEquals("99", splittedValues.get(4));
     assertEquals("ysd", splittedValues.get(5));
   }
+  
+  @Test
+  public void testHashCode() {
+    HeaderField header = new HeaderField("filed", 0);
+    assertNotNull(header.hashCode());
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f564c4a1/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerImplTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerImplTest.java
index 8e457b1..9d5fdd8 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerImplTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerImplTest.java
@@ -84,6 +84,7 @@ import org.apache.olingo.server.api.processor.ReferenceProcessor;
 import org.apache.olingo.server.api.processor.ServiceDocumentProcessor;
 import org.apache.olingo.server.api.uri.UriInfo;
 import org.apache.olingo.server.core.debug.ServerCoreDebugger;
+import org.apache.olingo.server.tecsvc.processor.TechnicalActionProcessor;
 import org.apache.olingo.server.tecsvc.provider.ContainerProvider;
 import org.apache.olingo.server.tecsvc.provider.EdmTechProvider;
 import org.junit.Test;
@@ -376,6 +377,29 @@ public class ODataHandlerImplTest {
     assertNotNull(response);
     assertEquals(HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode());
   }
+  
+  @Test
+  public void handlerExtTest() throws Exception {
+    final OData odata = OData.newInstance();
+    final ServiceMetadata serviceMetadata = odata.createServiceMetadata(
+        new CsdlAbstractEdmProvider() {
+          @Override
+          public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+              throws ODataException {
+            throw new ODataException("msg");
+          }
+        },
+        Collections.<EdmxReference> emptyList());
+
+    ODataRequest request = new ODataRequest();
+    request.setMethod(HttpMethod.GET);
+    request.setRawODataPath("EdmException");
+    ODataHandlerImpl handler =  new ODataHandlerImpl(odata, serviceMetadata, new ServerCoreDebugger(odata));
+    Processor extension =  new TechnicalActionProcessor(null, serviceMetadata);
+    handler.register(extension);
+    assertNull(handler.getLastThrownException());
+    assertNull(handler.getUriInfo());
+  }
 
   @Test
   public void dispatchBatch() throws Exception {


[2/2] olingo-odata4 git commit: [OLINGO-1191]Code Improvements

Posted by ar...@apache.org.
[OLINGO-1191]Code Improvements


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

Branch: refs/heads/master
Commit: c37d40f154d1147a11a97a85c00326adc30e7e92
Parents: f564c4a
Author: Archana Rai <ar...@sap.com>
Authored: Mon Nov 19 14:35:19 2018 +0530
Committer: Archana Rai <ar...@sap.com>
Committed: Mon Nov 19 14:35:19 2018 +0530

----------------------------------------------------------------------
 .../request/AsyncRequestWrapperTest.java        |  89 +++++++
 .../request/batch/ODataBatchControllerTest.java |  57 +++++
 .../request/batch/ODataBatchUtilitiesTest.java  | 133 ++++++++++
 .../request/cud/ODataRequestImplTest.java       | 156 ++++++++++++
 .../request/invoke/ODataInvokeRequestTest.java  |  65 +++++
 .../request/retrieve/RetrieveRequestTest.java   | 186 ++++++++++++++
 .../response/batch/ODataBatchResponseTest.java  | 153 ++++++++++++
 .../client/core/data/ServiceDocumentTest.java   |  58 +++++
 .../core/domain/ClientObjectImplTest.java       | 249 +++++++++++++++++++
 .../request/batch/batchResponse.batch           |  37 +++
 .../response/batch/batchResponse.batch          |  37 +++
 .../olingo/server/api/ODataResponseTest.java    |  52 ++++
 .../olingo/server/core/ErrorHandlerTest.java    | 131 ++++++++++
 .../core/RequestUrlHierarchyVisitorTest.java    | 101 ++++++++
 14 files changed, 1504 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/AsyncRequestWrapperTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/AsyncRequestWrapperTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/AsyncRequestWrapperTest.java
new file mode 100644
index 0000000..f61ecf3
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/AsyncRequestWrapperTest.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.communication.request;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.core.ODataClientFactory;
+import org.apache.olingo.client.core.communication.request.AsyncRequestWrapperImpl.AsyncResponseWrapperImpl;
+import org.apache.olingo.client.core.communication.request.batch.ODataBatchRequestImpl;
+import org.apache.olingo.client.core.communication.request.invoke.ODataInvokeRequestImpl;
+import org.apache.olingo.commons.api.http.HttpMethod;
+import org.junit.Test;
+
+public class AsyncRequestWrapperTest {
+
+  @Test
+  public void testBatchReq() throws URISyntaxException {
+
+    ODataClient client = ODataClientFactory.getClient();
+    URI uri = new URI("localhost:8080");
+    AsyncBatchRequestWrapperImpl req = new AsyncBatchRequestWrapperImpl(client, 
+        client.getBatchRequestFactory().getBatchRequest("root"));
+    assertNotNull(req.addChangeset());
+    ODataBatchableRequest request = new ODataInvokeRequestImpl<ClientInvokeResult>(
+        client, ClientInvokeResult.class, HttpMethod.GET, uri);
+    req.addRetrieve(request );
+    req.addOutsideUpdate(request);
+    assertNotNull(client.getAsyncRequestFactory().getAsyncRequestWrapper(request));
+    ODataBatchRequestImpl batchRequest = new ODataBatchRequestImpl(client, uri);
+    assertNotNull(client.getAsyncRequestFactory().getAsyncBatchRequestWrapper(batchRequest ));
+    assertNotNull(req.wait(10));
+  }
+  
+  @Test
+  public void testReq() throws URISyntaxException {
+
+    ODataClient client = ODataClientFactory.getClient();
+    URI uri = new URI("localhost:8080");
+    AsyncRequestWrapperImpl req = new AsyncRequestWrapperImpl(client, 
+        client.getBatchRequestFactory().getBatchRequest("root"));
+    assertNotNull(req);
+    ODataBatchableRequest request = new ODataInvokeRequestImpl<ClientInvokeResult>(
+        client, ClientInvokeResult.class, HttpMethod.GET, uri);
+    req.checkRequest(client, null);
+    assertNotNull(req.callback(uri));
+    req.extendHeader("header", "value");
+    AsyncResponseWrapperImpl res = req.new AsyncResponseWrapperImpl();
+    res.forceNextMonitorCheck(uri);
+  }
+  
+  @Test
+  public void testWrapper(){
+
+    Wrapper wrap = new Wrapper();
+    wrap.setWrapped("test");
+    assertEquals("test", wrap.getWrapped());
+  }
+  
+  @Test
+  public void testException(){
+
+    AsyncRequestException  ex = new AsyncRequestException ("Exception");
+    assertEquals("Exception", ex.getMessage());
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/batch/ODataBatchControllerTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/batch/ODataBatchControllerTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/batch/ODataBatchControllerTest.java
new file mode 100644
index 0000000..cc9c25d
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/batch/ODataBatchControllerTest.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.communication.request.batch;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import org.apache.commons.io.LineIterator;
+import org.apache.olingo.client.api.communication.request.batch.ODataBatchLineIterator;
+import org.junit.Test;
+
+public class ODataBatchControllerTest {
+  
+  @Test
+  public void testController(){
+    final InputStream input = getClass().getResourceAsStream("batchResponse.batch");
+    Reader reader = new InputStreamReader(input);
+    ODataBatchLineIterator iterator = new ODataBatchLineIteratorImpl(new LineIterator(reader ));
+    ODataBatchController controller = new ODataBatchController(iterator , "changeset_12ks93js84d");
+    assertNotNull(controller.getBatchLineIterator());
+    assertNotNull(controller.getBoundary());
+    controller.setValidBatch(true);
+    assertTrue(controller.isValidBatch());
+    assertTrue(iterator.hasNext());
+    assertNotNull(iterator.next());
+    assertNotNull(iterator.nextLine());
+    assertNotNull(iterator.getCurrent());
+  }
+  
+  @Test(expected = UnsupportedOperationException.class)
+  public void testControllerNeg(){
+    final InputStream input = getClass().getResourceAsStream("batchResponse.batch");
+    Reader reader = new InputStreamReader(input);
+    ODataBatchLineIterator iterator = new ODataBatchLineIteratorImpl(new LineIterator(reader ));
+    iterator.remove();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/batch/ODataBatchUtilitiesTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/batch/ODataBatchUtilitiesTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/batch/ODataBatchUtilitiesTest.java
new file mode 100644
index 0000000..1fae3e1
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/batch/ODataBatchUtilitiesTest.java
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.communication.request.batch;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.io.LineIterator;
+import org.apache.olingo.client.api.ODataBatchConstants;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.ODataClientBuilder;
+import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
+import org.apache.olingo.client.api.communication.request.batch.ODataBatchLineIterator;
+import org.apache.olingo.client.api.communication.request.batch.ODataBatchRequest;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.core.communication.request.invoke.ODataInvokeRequestImpl;
+import org.apache.olingo.commons.api.http.HttpMethod;
+import org.junit.Test;
+
+public class ODataBatchUtilitiesTest {
+  
+  @Test
+  public void testBatchRequest(){
+    ODataBatchUtilities util = new ODataBatchUtilities();
+    Map<String, Collection<String>> value = new HashMap<String, Collection<String>>();
+    util.addHeaderLine("header:name", value );
+    value.put("header:name", null);
+    util.addHeaderLine("header:name", value );
+  }
+  
+  @Test
+  public void testBatchConstants(){
+    assertEquals("boundary", ODataBatchConstants.BOUNDARY);
+    assertEquals("application/http", ODataBatchConstants.ITEM_CONTENT_TYPE );
+    assertEquals("Content-Type: application/http", ODataBatchConstants.ITEM_CONTENT_TYPE_LINE );
+    assertEquals("Content-Transfer-Encoding: binary", 
+        ODataBatchConstants.ITEM_TRANSFER_ENCODING_LINE );
+    assertEquals("Content-ID", ODataBatchConstants.CHANGESET_CONTENT_ID_NAME );
+  }
+  
+ 
+  @Test
+  public void testChangeSet() throws URISyntaxException{
+    ODataClient client = ODataClientBuilder.createClient();
+    URI uri = new URI("test");
+    final InputStream input = getClass().getResourceAsStream("batchResponse.batch");
+    Reader reader = new InputStreamReader(input);
+    ODataBatchLineIterator iterator = new ODataBatchLineIteratorImpl(new LineIterator(reader ));
+    ODataBatchRequest req = new ODataBatchRequestImpl(client, uri);;
+    ODataChangesetResponseItem expectedResItem = new ODataChangesetResponseItem(true);
+    ODataChangesetImpl change = new ODataChangesetImpl(req , expectedResItem );
+    assertNotNull(change);
+    ODataBatchableRequest request = new ODataInvokeRequestImpl<ClientInvokeResult>(
+        client, ClientInvokeResult.class, HttpMethod.POST, uri);
+    change.addRequest(request);
+    assertNotNull(change.getBodyStreamWriter());
+    change.close();
+    change.closeItem();
+    assertNotNull(change.getLastContentId());
+    assertTrue(change.hasStreamedSomething());
+    assertFalse(change.isOpen());
+    change.streamRequestHeader(request);
+    change.streamRequestHeader("1");
+    
+  }
+  
+  @Test(expected = IllegalArgumentException.class)
+  public void testChangeSetNeg() throws URISyntaxException{
+    ODataClient client = ODataClientBuilder.createClient();
+    URI uri = new URI("test");
+    ODataBatchRequest req = new ODataBatchRequestImpl(client, uri);;
+    ODataChangesetResponseItem expectedResItem = new ODataChangesetResponseItem(true);
+    ODataChangesetImpl change = new ODataChangesetImpl(req , expectedResItem );
+    assertNotNull(change);
+    ODataBatchableRequest request = new ODataInvokeRequestImpl<ClientInvokeResult>(
+        client, ClientInvokeResult.class, HttpMethod.GET, uri);
+    change.addRequest(request);
+    assertNotNull(change.getBodyStreamWriter());
+    change.close();
+    change.closeItem();
+  }
+  
+  @Test(expected = IllegalStateException.class)
+  public void testChangeSetCloseNeg() throws URISyntaxException{
+    ODataClient client = ODataClientBuilder.createClient();
+    URI uri = new URI("test");
+    ODataBatchRequest req = new ODataBatchRequestImpl(client, uri);;
+    ODataChangesetResponseItem expectedResItem = new ODataChangesetResponseItem(true);
+    ODataChangesetImpl change = new ODataChangesetImpl(req , expectedResItem );
+    assertNotNull(change);
+    assertNotNull(change.getBodyStreamWriter());
+    change.close();
+    change.closeItem();
+    ODataBatchableRequest request = new ODataInvokeRequestImpl<ClientInvokeResult>(
+        client, ClientInvokeResult.class, HttpMethod.POST, uri);
+    change.addRequest(request);
+  }
+  
+  @Test
+  public void testChangeSetResponse() throws URISyntaxException{
+    ODataChangesetResponseItem expectedResItem = new ODataChangesetResponseItem(true);
+    expectedResItem.setUnexpected();
+    assertNotNull(expectedResItem);
+    expectedResItem.close();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/cud/ODataRequestImplTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/cud/ODataRequestImplTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/cud/ODataRequestImplTest.java
new file mode 100644
index 0000000..c12a778
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/cud/ODataRequestImplTest.java
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.communication.request.cud;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.olingo.client.api.communication.request.cud.CUDRequestFactory;
+import org.apache.olingo.client.api.communication.request.cud.UpdateType;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.client.core.ODataClientFactory;
+import org.apache.olingo.client.core.ODataClientImpl;
+import org.apache.olingo.client.core.domain.ClientCollectionValueImpl;
+import org.apache.olingo.client.core.domain.ClientComplexValueImpl;
+import org.apache.olingo.client.core.domain.ClientEntityImpl;
+import org.apache.olingo.client.core.domain.ClientPropertyImpl;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.junit.Test;
+
+public class ODataRequestImplTest {
+
+  @Test
+  public void testdel() throws URISyntaxException{
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("test");
+    assertNotNull(client);
+    CUDRequestFactory factory = client.getCUDRequestFactory();
+    assertNotNull(factory);
+    ODataDeleteRequestImpl del = (ODataDeleteRequestImpl) factory.getDeleteRequest(uri);
+    assertNotNull(del);
+    assertNotNull(del.getDefaultFormat());
+    assertNull(del.getPayload());
+    
+    }
+  
+  @Test
+  public void testcreate() throws URISyntaxException{
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("test");
+    assertNotNull(client);
+    CUDRequestFactory factory = client.getCUDRequestFactory();
+    assertNotNull(factory);
+    FullQualifiedName fqn = new FullQualifiedName("test.entity");
+    ClientEntity entity = new ClientEntityImpl(fqn );
+    ODataEntityCreateRequestImpl create = (ODataEntityCreateRequestImpl) factory
+        .getEntityCreateRequest(uri, entity);
+    assertNotNull(create);
+    assertNotNull(create.getDefaultFormat());
+    assertNotNull(create.getPayload());
+    }
+  
+  @Test
+  public void testUpdate() throws URISyntaxException{
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("test");
+    assertNotNull(client);
+    CUDRequestFactory factory = client.getCUDRequestFactory();
+    assertNotNull(factory);
+    FullQualifiedName fqn = new FullQualifiedName("test.entity");
+    ClientEntity entity = new ClientEntityImpl(fqn );
+    entity.setEditLink(uri);
+    ODataEntityUpdateRequestImpl update = (ODataEntityUpdateRequestImpl) factory
+        .getEntityUpdateRequest(UpdateType.PATCH, entity);
+    assertNotNull(update);
+    assertNotNull(update.getDefaultFormat());
+    assertNotNull(update.getPayload());
+    }
+  
+  @Test
+  public void testUpdatePropColl() throws URISyntaxException{
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("test");
+    assertNotNull(client);
+    CUDRequestFactory factory = client.getCUDRequestFactory();
+    assertNotNull(factory);
+    ClientValue value = new ClientCollectionValueImpl("properties");
+    ClientProperty prop = new ClientPropertyImpl("property", value );
+    ODataPropertyUpdateRequestImpl update = (ODataPropertyUpdateRequestImpl) factory
+        .getPropertyCollectionValueUpdateRequest(uri, prop);
+    assertNotNull(update);
+    assertNotNull(update.getDefaultFormat());
+    assertNotNull(update.getPayload());
+    }
+  
+  @Test
+  public void testUpdatePropComplex() throws URISyntaxException{
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("test");
+    assertNotNull(client);
+    CUDRequestFactory factory = client.getCUDRequestFactory();
+    assertNotNull(factory);
+    ClientValue value = new ClientComplexValueImpl("complex");
+    ClientProperty prop = new ClientPropertyImpl("property", value );
+    ODataPropertyUpdateRequestImpl update = (ODataPropertyUpdateRequestImpl) factory
+        .getPropertyComplexValueUpdateRequest(uri, UpdateType.PATCH, prop);
+    assertNotNull(update);
+    assertNotNull(update.getDefaultFormat());
+    assertNotNull(update.getPayload());
+    }
+  
+  @Test
+  public void testUpdate2() throws URISyntaxException{
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("test");
+    assertNotNull(client);
+    CUDRequestFactory factory = client.getCUDRequestFactory();
+    assertNotNull(factory);
+    FullQualifiedName fqn = new FullQualifiedName("test.entity");
+    ClientEntity entity = new ClientEntityImpl(fqn );
+    entity.setEditLink(uri);
+    ODataEntityUpdateRequestImpl update = (ODataEntityUpdateRequestImpl) factory
+        .getEntityUpdateRequest(uri, UpdateType.PATCH, entity);
+    assertNotNull(update);
+    assertNotNull(update.getDefaultFormat());
+    assertNotNull(update.getPayload());
+    }
+  
+  @Test
+  public void testRef() throws URISyntaxException{
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("test");
+    assertNotNull(client);
+    CUDRequestFactory factory = client.getCUDRequestFactory();
+    assertNotNull(factory);
+    FullQualifiedName fqn = new FullQualifiedName("test.entity");
+    ClientEntity entity = new ClientEntityImpl(fqn );
+    entity.setEditLink(uri);
+    ODataReferenceAddingRequestImpl ref = (ODataReferenceAddingRequestImpl) factory
+        .getReferenceAddingRequest(uri, uri, null);
+    assertNotNull(ref);
+    assertNotNull(ref.getDefaultFormat());
+    assertNotNull(ref.getPayload());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestTest.java
new file mode 100644
index 0000000..31cbc88
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestTest.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.communication.request.invoke;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.core.ODataClientFactory;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.api.http.HttpMethod;
+import org.junit.Test;
+
+public class ODataInvokeRequestTest {
+
+
+  @Test
+  public void testRequest() throws URISyntaxException {
+    ODataClient client = ODataClientFactory.getClient();
+    Class<ClientInvokeResult> reference = ClientInvokeResult.class;
+    HttpMethod method = HttpMethod.GET;
+    URI uri = new URI("test");
+    ODataInvokeRequestImpl req = new ODataInvokeRequestImpl<ClientInvokeResult>(client, reference, method, uri);
+    assertNotNull(req);
+    assertNotNull(req.getAccept());
+    assertNotNull(req.getContentType());
+    assertNotNull(req.getDefaultFormat());
+    assertNotNull(req.getHeader());
+    assertNotNull(req.getHeaderNames());
+    assertNull(req.getIfMatch());
+    assertNull(req.getIfNoneMatch());
+    assertNotNull(req.getHttpRequest());
+    assertNotNull(req.getMethod());
+    assertNull(req.getPayload());
+    assertNotNull(req.getPOSTParameterFormat());
+    assertNotNull(req.getPOSTParameterFormat());
+    assertNull(req.getPrefer());
+    assertNotNull(req.getResponseTemplate());
+    assertNotNull(req.getURI());
+    assertNotNull(req.addCustomHeader("custom", "header"));
+    assertNotNull(req.setAccept("json"));
+    assertNotNull(req.setContentType("json"));
+    req.setFormat(ContentType.APPLICATION_ATOM_XML);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestTest.java
new file mode 100644
index 0000000..976f139
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestTest.java
@@ -0,0 +1,186 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.communication.request.retrieve;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.olingo.client.core.ODataClientFactory;
+import org.apache.olingo.client.core.ODataClientImpl;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class RetrieveRequestTest {
+
+  @Test
+  public void testEdmMetadata() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    EdmMetadataRequestImpl edmMetadata = (EdmMetadataRequestImpl) factory
+        .getMetadataRequest("metadata");
+    assertNotNull(edmMetadata);
+    assertNotNull(edmMetadata.addCustomHeader("name", "value"));
+    assertNotNull(edmMetadata.getDefaultFormat());
+    assertNotNull(edmMetadata.setAccept(ContentType.VALUE_ODATA_METADATA_FULL));
+    assertNotNull(edmMetadata.setContentType(ContentType.VALUE_ODATA_METADATA_FULL));
+  }
+  
+  @Test
+  public void testXmlMetadata() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    XMLMetadataRequestImpl metadata = (XMLMetadataRequestImpl) factory
+        .getXMLMetadataRequest("test");
+    assertNotNull(metadata);
+  }
+  
+  @Test
+  public void testDeltaRequest() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("localhost:8080");
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    ODataDeltaRequestImpl delta = (ODataDeltaRequestImpl) factory
+        .getDeltaRequest(uri);
+    assertNotNull(delta);
+    assertNotNull(delta.getDefaultFormat());
+   }
+  
+  @Test
+  public void testEntityRequest() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("localhost:8080");
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    ODataEntityRequestImpl req = (ODataEntityRequestImpl) factory
+        .getEntityRequest(uri);
+    assertNotNull(req);
+    assertNotNull(req.getDefaultFormat());
+   }
+  
+  @Test
+  public void testEntitySetIteratorRequest() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("localhost:8080");
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    ODataEntitySetIteratorRequestImpl req = (ODataEntitySetIteratorRequestImpl) factory
+        .getEntitySetIteratorRequest(uri);
+    assertNotNull(req);
+    assertNotNull(req.getDefaultFormat());
+   }
+  
+  @Test
+  public void testEntitySetRequest() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("localhost:8080");
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    ODataEntitySetRequestImpl req = (ODataEntitySetRequestImpl) factory
+        .getEntitySetRequest(uri);
+    assertNotNull(req);
+    assertNotNull(req.getDefaultFormat());
+   }
+  
+  @Test
+  public void testMediaRequest() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("localhost","8080","","","$value");
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    ODataMediaRequestImpl req = (ODataMediaRequestImpl) factory
+        .getMediaEntityRequest(uri);
+    assertNotNull(req);
+    assertNotNull(req.getDefaultFormat());
+   }
+  
+  @Test
+  public void testPropertyRequest() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("localhost:8080");
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    ODataPropertyRequestImpl req = (ODataPropertyRequestImpl) factory
+        .getPropertyRequest(uri);
+    assertNotNull(req);
+    assertNotNull(req.getDefaultFormat());
+   }
+  
+  @Test
+  public void testRawRequest() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("localhost:8080");
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    ODataRawRequestImpl req = (ODataRawRequestImpl) factory
+        .getRawRequest(uri);
+    assertNotNull(req);
+    assertNotNull(req.getDefaultFormat());
+   }
+  
+  @Test
+  public void testServiceDocumentRequest() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    ODataServiceDocumentRequestImpl req = (ODataServiceDocumentRequestImpl) factory
+        .getServiceDocumentRequest("doc");
+    assertNotNull(req);
+    assertNotNull(req.getDefaultFormat());
+   }
+  
+  @Test
+  public void testValueRequest() throws URISyntaxException {
+
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    URI uri = new URI("localhost:8080");
+    RetrieveRequestFactoryImpl factory = (RetrieveRequestFactoryImpl) client
+        .getRetrieveRequestFactory();
+    assertNotNull(factory);
+    ODataValueRequestImpl req = (ODataValueRequestImpl) factory
+        .getValueRequest(uri);
+    assertNotNull(req);
+    assertNotNull(req.getDefaultFormat());
+   }
+  
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/response/batch/ODataBatchResponseTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/response/batch/ODataBatchResponseTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/response/batch/ODataBatchResponseTest.java
new file mode 100644
index 0000000..5ed52f2
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/communication/response/batch/ODataBatchResponseTest.java
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.communication.response.batch;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.commons.io.LineIterator;
+import org.apache.http.HttpResponse;
+import org.apache.olingo.client.api.communication.request.batch.ODataBatchLineIterator;
+import org.apache.olingo.client.api.communication.request.batch.ODataBatchResponseItem;
+import org.apache.olingo.client.api.communication.response.ODataBatchResponse;
+import org.apache.olingo.client.api.communication.response.ODataResponse;
+import org.apache.olingo.client.core.communication.request.batch.ODataBatchLineIteratorImpl;
+import org.apache.olingo.client.core.communication.request.batch.ODataBatchUtilities;
+import org.apache.olingo.client.core.communication.request.batch.ODataChangesetResponseItem;
+import org.junit.Test;
+
+public class ODataBatchResponseTest {
+
+  @Test
+  public void testBatchResponse() throws URISyntaxException {
+
+    ODataChangesetResponseItem expectedResItem = new ODataChangesetResponseItem(true);
+    List<ODataBatchResponseItem> resList = new ArrayList<ODataBatchResponseItem>();
+    resList.add(expectedResItem);
+    ODataBatchResponseManager manager = new ODataBatchResponseManager(new BatchResponse(), resList );
+    assertNotNull(manager);
+    assertNotNull(manager.next());
+    assertNotNull(manager.hasNext());
+   }
+  
+  @Test
+  public void testErrorBatchResponse() throws URISyntaxException {
+    Map<String, Collection<String>> header = new HashMap<String, Collection<String>>();
+    List<String> list = new ArrayList<String>();
+    list.add("multipart/mixed;boundary=changeset_12ks93js84d");
+    header.put("content-type", list);
+    final InputStream input = getClass().getResourceAsStream("batchResponse.batch");
+    Reader reader = new InputStreamReader(input);
+    ODataBatchLineIterator iterator = new ODataBatchLineIteratorImpl(new LineIterator(reader ));
+    String boundary = "changeset_12ks93js84d";
+    iterator.next();
+    iterator.next();
+    iterator.next();
+    iterator.next();
+    iterator.next();
+    iterator.next();
+    iterator.next();
+    iterator.next();
+    Entry<Integer, String> line = ODataBatchUtilities.readResponseLine(iterator);
+    ODataBatchErrorResponse error = new ODataBatchErrorResponse
+        (line, header, iterator, boundary );
+    assertNotNull(error);
+    assertNull(error.getETag());
+   }
+  
+  class BatchResponse implements ODataBatchResponse{
+
+    @Override
+    public Collection<String> getHeaderNames() {
+      return null;
+    }
+
+    @Override
+    public Collection<String> getHeader(String name) {
+      List<String> list = new ArrayList<String>();
+      list.add("multipart/mixed;boundary=changeset_12ks93js84d");
+      return list;
+    }
+
+    @Override
+    public String getETag() {
+      return null;
+    }
+
+    @Override
+    public String getContentType() {
+      return null;
+    }
+
+    @Override
+    public int getStatusCode() {
+      return 0;
+    }
+
+    @Override
+    public String getStatusMessage() {
+      return null;
+    }
+
+    @Override
+    public InputStream getRawResponse() {
+      return  getClass().getResourceAsStream("batchResponse.batch");
+    }
+
+    @Override
+    public ODataResponse initFromHttpResponse(HttpResponse res) {
+      return null;
+    }
+
+    @Override
+    public ODataResponse initFromBatch(Entry<Integer, String> responseLine,
+        Map<String, Collection<String>> headers,
+        ODataBatchLineIterator batchLineIterator, String boundary) {
+      return null;
+    }
+
+    @Override
+    public ODataResponse initFromEnclosedPart(InputStream part) {
+      return null;
+    }
+
+    @Override
+    public void close() {
+    }
+
+    @Override
+    public Iterator<ODataBatchResponseItem> getBody() {
+      return null;
+    }
+    
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/java/org/apache/olingo/client/core/data/ServiceDocumentTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/data/ServiceDocumentTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/data/ServiceDocumentTest.java
new file mode 100644
index 0000000..bceecbc
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/data/ServiceDocumentTest.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.data;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.client.api.data.ServiceDocumentItem;
+import org.junit.Test;
+
+public class ServiceDocumentTest {
+
+  @Test
+  public void testServiceDocument() {
+    ServiceDocumentImpl sd = new ServiceDocumentImpl();
+    assertNull(sd.getTitle());
+    assertEquals(0,sd.getEntitySets().size());
+    List<ServiceDocumentItem> list = new ArrayList<ServiceDocumentItem>();
+    assertNull(sd.getByName(list , "test"));
+    assertNull(sd.getEntitySetByName("test"));
+    assertNull(sd.getFunctionImportByName("test"));
+    assertNull(sd.getSingletonByName("name"));
+    ServiceDocumentImpl sd2 = new ServiceDocumentImpl();
+    assertTrue(sd.equals(sd2));
+    assertNotNull(sd.toString());
+    assertNotNull(sd.hashCode());
+  }
+  
+  @Test
+  public void testServiceDocumentItem() {
+    ServiceDocumentItemImpl sd = new ServiceDocumentItemImpl();
+    ServiceDocumentItemImpl sd2 = new ServiceDocumentItemImpl();
+    assertTrue(sd.equals(sd2));
+    assertNotNull(sd.toString());
+    assertNotNull(sd.hashCode());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/java/org/apache/olingo/client/core/domain/ClientObjectImplTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/domain/ClientObjectImplTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/domain/ClientObjectImplTest.java
new file mode 100644
index 0000000..b4cc131
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/domain/ClientObjectImplTest.java
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.domain;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.UUID;
+
+import org.apache.olingo.client.api.domain.ClientDeletedEntity.Reason;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientObjectFactory;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.client.core.ODataClientFactory;
+import org.apache.olingo.client.core.ODataClientImpl;
+import org.apache.olingo.client.core.domain.ClientPrimitiveValueImpl.BuilderImpl;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.junit.Test;
+
+public class ClientObjectImplTest {
+
+  @Test
+  public void testFactory() throws URISyntaxException {
+    
+    ODataClientImpl client = (ODataClientImpl) ODataClientFactory.getClient();
+    ClientObjectFactory factory = client.getObjectFactory();
+    assertNotNull(factory);
+    URI uri = new URI("test");
+    assertNotNull(factory.newEntitySet(uri));
+    FullQualifiedName typeName = new FullQualifiedName("name.test");
+    ClientEntity entity = new ClientEntityImpl(typeName );
+    assertNotNull(factory.newDeepInsertEntity("test", entity));
+    assertNotNull(factory.newEntity(typeName));
+    assertNotNull(factory.newSingleton(typeName));
+    assertNotNull(factory.newMediaEditLink("media", 
+        uri, "image", "W/1"));
+    assertNotNull(factory.newDelta(uri));
+    assertNotNull(factory.newDelta());
+  }
+  
+  @Test
+  public void testAnnotation(){
+    ClientValue val = new ClientCollectionValueImpl<ClientValue>("test");
+    ClientAnnotationImpl annotation = new ClientAnnotationImpl("term", val);
+    assertFalse(annotation.hasNullValue());
+    assertNull(annotation.getPrimitiveValue());
+    assertTrue(annotation.hasCollectionValue());
+    assertFalse(annotation.hasComplexValue());
+  }
+  
+  @Test
+  public void testCollection(){
+    ClientCollectionValueImpl val = new ClientCollectionValueImpl<ClientValue>("test");
+    assertNull(val.asEnum());
+    ClientCollectionValueImpl val2 = new ClientCollectionValueImpl<ClientValue>("test");
+    assertTrue(val.equals(val2));
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    val.add(val2);
+    assertEquals(1, val.asJavaCollection().size());
+  }
+  
+  @Test
+  public void testComplex() throws URISyntaxException{
+    ClientComplexValueImpl val = new ClientComplexValueImpl("test");
+    ClientEntity entity = new ClientEntityImpl(new FullQualifiedName("name.test"));
+    ClientLink link = new ClientInlineEntity(new URI("test"), ClientLinkType.ASSOCIATION,
+        "title", entity );
+    assertTrue(val.addLink(link ));
+    assertNull(val.asEnum());
+    assertTrue(val.removeLink(link));
+    ClientComplexValueImpl val2 = new ClientComplexValueImpl("test");
+    assertTrue(val.equals(val2));
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+  }  
+  
+  @Test
+  public void testDeletedEntity() throws URISyntaxException {
+    ClientDeletedEntityImpl val = new ClientDeletedEntityImpl();
+    assertNotNull(val);
+    val.setId(new URI("Id"));
+    assertNotNull(val.getId());
+    val.setReason(Reason.changed);
+    assertNotNull(val.getReason());
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    ClientDeletedEntityImpl val2 = new ClientDeletedEntityImpl();
+    assertFalse(val.equals(val2));
+  }
+  
+  @Test
+  public void testDelta() throws URISyntaxException {
+    ClientDeltaImpl val = new ClientDeltaImpl();
+    ClientDeltaImpl val2 = new ClientDeltaImpl(new URI("Id"));
+    assertNotNull(val);
+    assertNotNull(val.getAddedLinks());
+    assertNotNull(val.getDeletedLinks());
+    assertNotNull(val.getDeletedEntities());
+    assertNotNull(val.getAnnotations());
+    assertNull(val.getContextURL());
+    assertNull(val.getDeltaLink());
+    assertNotNull(val.getEntities());
+    assertNull(val.getLink());
+    assertNull(val.getName());
+    assertNull(val.getNext());
+    assertNotNull(val.getOperations());
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    assertFalse(val.equals(val2));
+  }
+  
+  @Test
+  public void testDeltaLink() throws URISyntaxException {
+    ClientDeltaLinkImpl val = new ClientDeltaLinkImpl();
+    ClientDeltaLinkImpl val2 = new ClientDeltaLinkImpl();
+    assertNotNull(val);
+    URI uri = new URI("test");
+    val.setSource(uri );
+    assertNotNull(val.getSource());
+    val.setRelationship("Nav");
+    assertNotNull(val.getRelationship());
+    val.setTarget(uri);
+    assertNotNull(val.getTarget());
+    assertNotNull(val.getAnnotations());
+    assertNull(val.getLink());
+    assertNull(val.getName());
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    assertFalse(val.equals(val2));
+  }
+  
+  @Test
+  public void testClientEntity() throws URISyntaxException {
+    FullQualifiedName name = new FullQualifiedName("test.name");
+    ClientEntityImpl val = new ClientEntityImpl(name );
+    URI uri = new URI("test");
+    assertNotNull(val);
+    val.setId(new URI("Id"));
+    assertNotNull(val.getId());
+    assertNull(val.getETag());
+    ClientEntity entity = new ClientEntityImpl(name);
+    ClientLink link = new ClientInlineEntity(uri, ClientLinkType.ASSOCIATION,
+        "title", entity);
+    assertTrue(val.addLink(link ));
+    assertNull(val.getLink());
+    assertNotNull(val.getAssociationLink("title"));
+    assertTrue(val.removeLink(link ));
+    assertFalse(val.isReadOnly());
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    ClientDeletedEntityImpl val2 = new ClientDeletedEntityImpl();
+    assertFalse(val.equals(val2));
+  }
+  
+  @Test
+  public void testClientEntitySet() throws URISyntaxException {
+    ClientEntitySetImpl val = new ClientEntitySetImpl();
+    URI uri = new URI("test");
+    ClientEntitySetImpl val2 = new ClientEntitySetImpl(uri);
+    assertNotNull(val);
+    val.setDeltaLink(uri);
+    assertNotNull(val.getOperations());
+    assertNull(val.getOperation("test"));
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    assertFalse(val.equals(val2));
+  }  
+  
+  @Test
+  public void testClientEnumValue() {
+    ClientEnumValueImpl val = new ClientEnumValueImpl("type", "value");
+    ClientEnumValueImpl val2 = new ClientEnumValueImpl("type", "value");
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    assertTrue(val.equals(val2));
+  }
+  
+  @Test
+  public void testClientPrimitiveValue() {
+    ClientPrimitiveValueImpl val = new ClientPrimitiveValueImpl();
+    ClientPrimitiveValueImpl val2 = new ClientPrimitiveValueImpl();
+    BuilderImpl builder = new BuilderImpl();
+    builder.setType(EdmPrimitiveTypeKind.Binary);
+    assertNotNull(builder.buildBoolean(true));
+    assertNotNull(builder);
+    byte[] byteArray = new byte[2];
+    assertNotNull(builder.buildBinary(byteArray));
+    Short shortValue = new Short("1");
+    assertNotNull(builder.buildInt16(shortValue));
+    assertNotNull(builder.buildInt32(new Integer("1")));
+    assertNotNull(builder.buildSingle(new Float("1")));
+    assertNotNull(builder.buildDouble(new Double("1")));
+    assertNotNull(builder.buildGuid(new UUID(1,1)));
+    assertNotNull(builder.buildDecimal(new BigDecimal("1")));
+    assertNotNull(builder.buildDuration(new BigDecimal("1")));
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    assertTrue(val.equals(val2));
+  }
+  
+  @Test
+  public void testClientProperty() {
+    ClientValue value = new ClientCollectionValueImpl<ClientValue>("type");
+    ClientPropertyImpl val = new ClientPropertyImpl("type", value );
+    ClientPropertyImpl val2 = new ClientPropertyImpl("type", value);
+    assertNull(val.getOperation("type"));
+    assertNotNull(val.getOperations());
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    assertTrue(val.equals(val2));
+  }
+  
+  @Test
+  public void testClientValuable() {
+    ClientValue value = new ClientCollectionValueImpl<ClientValue>("type");
+    ClientValuableImpl val = new ClientValuableImpl(value);
+    ClientValuableImpl val2 = new ClientValuableImpl(value);
+    assertNotNull(val.hashCode());
+    assertNotNull(val.toString());
+    assertTrue(val.equals(val2));
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/resources/org/apache/olingo/client/core/communication/request/batch/batchResponse.batch
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/communication/request/batch/batchResponse.batch b/lib/client-core/src/test/resources/org/apache/olingo/client/core/communication/request/batch/batchResponse.batch
new file mode 100644
index 0000000..f9e043b
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/communication/request/batch/batchResponse.batch
@@ -0,0 +1,37 @@
+--batch_123
+Content-Type: multipart/mixed;boundary=changeset_12ks93js84d
+
+--changeset_12ks93js84d
+Content-Type: application/http
+Content-Transfer-Encoding: binary
+Content-Id: 1
+
+HTTP/1.1 204 No Content
+
+
+--changeset_12ks93js84d
+Content-Type: application/http
+Content-Transfer-Encoding: binary
+
+HTTP/1.1 201 Created
+DataServiceVersion: 2.0
+Content-Id: 2
+Location: http://localhost:19000/ClientBatchTest/Employees('7')
+Content-Type: application/json
+Content-Length: 918
+
+{"d":{"__metadata":{"id":"http://localhost:19000/ClientBatchTest/Employees('7')","uri":"http://localhost:19000/ClientBatchTest/Employees('7')","type":"RefScenario.Employee","content_type":"application/octet-stream","media_src":"Employees('7')/$value","edit_media":"http://localhost:19000/ClientBatchTest/Employees('7')/$value"},"EmployeeId":"7","EmployeeName":"Employee 7","ManagerId":null,"RoomId":null,"TeamId":null,"Location":{"__metadata":{"type":"RefScenario.c_Location"},"City":{"__metadata":{"type":"RefScenario.c_City"},"PostalCode":null,"CityName":null},"Country":null},"Age":0,"EntryDate":null,"ImageUrl":null,"ne_Manager":{"__deferred":{"uri":"http://localhost:19000/ClientBatchTest/Employees('7')/ne_Manager"}},"ne_Team":{"__deferred":{"uri":"http://localhost:19000/ClientBatchTest/Employees('7')/ne_Team"}},"ne_Room":{"__deferred":{"uri":"http://localhost:19000/ClientBatchTest/Employees('7')/ne_Room"}}}}
+--changeset_12ks93js84d--
+
+--batch_123
+Content-Type: application/http
+Content-Transfer-Encoding: binary
+Content-ID: 2
+
+HTTP/1.1 200 OK
+DataServiceVersion: 2.0
+Content-Type: text/plain;charset=utf-8
+Content-length: 13
+
+Frederic Fall
+--batch_123--
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/client-core/src/test/resources/org/apache/olingo/client/core/communication/response/batch/batchResponse.batch
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/communication/response/batch/batchResponse.batch b/lib/client-core/src/test/resources/org/apache/olingo/client/core/communication/response/batch/batchResponse.batch
new file mode 100644
index 0000000..f9e043b
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/communication/response/batch/batchResponse.batch
@@ -0,0 +1,37 @@
+--batch_123
+Content-Type: multipart/mixed;boundary=changeset_12ks93js84d
+
+--changeset_12ks93js84d
+Content-Type: application/http
+Content-Transfer-Encoding: binary
+Content-Id: 1
+
+HTTP/1.1 204 No Content
+
+
+--changeset_12ks93js84d
+Content-Type: application/http
+Content-Transfer-Encoding: binary
+
+HTTP/1.1 201 Created
+DataServiceVersion: 2.0
+Content-Id: 2
+Location: http://localhost:19000/ClientBatchTest/Employees('7')
+Content-Type: application/json
+Content-Length: 918
+
+{"d":{"__metadata":{"id":"http://localhost:19000/ClientBatchTest/Employees('7')","uri":"http://localhost:19000/ClientBatchTest/Employees('7')","type":"RefScenario.Employee","content_type":"application/octet-stream","media_src":"Employees('7')/$value","edit_media":"http://localhost:19000/ClientBatchTest/Employees('7')/$value"},"EmployeeId":"7","EmployeeName":"Employee 7","ManagerId":null,"RoomId":null,"TeamId":null,"Location":{"__metadata":{"type":"RefScenario.c_Location"},"City":{"__metadata":{"type":"RefScenario.c_City"},"PostalCode":null,"CityName":null},"Country":null},"Age":0,"EntryDate":null,"ImageUrl":null,"ne_Manager":{"__deferred":{"uri":"http://localhost:19000/ClientBatchTest/Employees('7')/ne_Manager"}},"ne_Team":{"__deferred":{"uri":"http://localhost:19000/ClientBatchTest/Employees('7')/ne_Team"}},"ne_Room":{"__deferred":{"uri":"http://localhost:19000/ClientBatchTest/Employees('7')/ne_Room"}}}}
+--changeset_12ks93js84d--
+
+--batch_123
+Content-Type: application/http
+Content-Transfer-Encoding: binary
+Content-ID: 2
+
+HTTP/1.1 200 OK
+DataServiceVersion: 2.0
+Content-Type: text/plain;charset=utf-8
+Content-length: 13
+
+Frederic Fall
+--batch_123--
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/server-api/src/test/java/org/apache/olingo/server/api/ODataResponseTest.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/test/java/org/apache/olingo/server/api/ODataResponseTest.java b/lib/server-api/src/test/java/org/apache/olingo/server/api/ODataResponseTest.java
new file mode 100644
index 0000000..bac4f24
--- /dev/null
+++ b/lib/server-api/src/test/java/org/apache/olingo/server/api/ODataResponseTest.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.server.api;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+
+public class ODataResponseTest {
+
+  @Test
+  public void testResponse() {
+    ODataResponse  r = new ODataResponse ();
+    assertNotNull(r);
+    r.addHeader("header", "value");
+    List<String> list = new ArrayList<String>();
+    r.addHeader("headerList", list );
+    assertNotNull(r.getAllHeaders());
+  }
+  
+  @Test
+  public void testError() {
+    ODataServerError  r = new ODataServerError ();
+    assertNotNull(r);
+    assertNull(r.getLocale());
+    Map<String, String> map = new HashMap<String, String>();
+    r.setInnerError(map);
+    assertNotNull(r.getInnerError());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ErrorHandlerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ErrorHandlerTest.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ErrorHandlerTest.java
new file mode 100644
index 0000000..da893b9
--- /dev/null
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ErrorHandlerTest.java
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.server.core;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.io.FileReader;
+import java.net.URI;
+import java.util.Collections;
+import java.util.Locale;
+
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edmx.EdmxReference;
+import org.apache.olingo.commons.api.edmx.EdmxReferenceInclude;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.ODataApplicationException;
+import org.apache.olingo.server.api.ODataRequest;
+import org.apache.olingo.server.api.ODataResponse;
+import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.api.deserializer.DeserializerException;
+import org.apache.olingo.server.api.deserializer.batch.BatchDeserializerException;
+import org.apache.olingo.server.api.etag.ServiceMetadataETagSupport;
+import org.apache.olingo.server.api.serializer.SerializerException;
+import org.apache.olingo.server.core.legacy.ProcessorServiceHandler;
+import org.apache.olingo.server.core.uri.parser.UriParserException;
+import org.apache.olingo.server.core.uri.parser.UriParserSemanticException;
+import org.apache.olingo.server.core.uri.parser.UriParserSyntaxException;
+import org.apache.olingo.server.core.uri.validator.UriValidationException;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ErrorHandlerTest {
+  CsdlEdmProvider provider = null;
+  
+  @Before
+  public void setUp() throws Exception {
+    MetadataParser parser = new MetadataParser();
+    parser.parseAnnotations(true);
+    parser.useLocalCoreVocabularies(true);
+    provider = (CsdlEdmProvider) parser.buildEdmProvider(new FileReader("src/test/resources/annotations.xml"));
+  }
+  
+  @Test
+  public void testError(){
+    EdmxReference reference = new EdmxReference
+        (URI.create("../v4.0/cs02/vocabularies/Org.OData.Core.V1.xml"));
+    reference.addInclude(new EdmxReferenceInclude("Org.OData.Core.V1", "Core"));
+    ServiceHandler handler = new ProcessorServiceHandler();
+    ServiceMetadata metadata = new ServiceMetadataImpl(provider,  
+        Collections.singletonList(reference), new ServiceMetadataETagSupport() {
+      @Override
+      public String getServiceDocumentETag() {
+        return "W/\"serviceDocumentETag\"";
+      }
+      @Override
+      public String getMetadataETag() {
+        return "W/\"metadataETag\"";
+      }
+    } );
+    OData odata = new ODataImpl();
+    ErrorHandler error = new ErrorHandler(odata , metadata, handler,
+        ContentType.APPLICATION_ATOM_XML);
+    assertNotNull(error);
+    UriValidationException e =new UriValidationException("message", 
+        UriValidationException.MessageKeys.DOUBLE_KEY_PROPERTY , "param"); 
+    ODataRequest request = new ODataRequest();
+    ODataResponse response = new ODataResponse();
+    error.handleException(e, request , response);
+    error.handleException(new UriParserSemanticException("message",
+        UriParserSemanticException.MessageKeys.COLLECTION_NOT_ALLOWED, "param")
+        , request , response);
+    error.handleException(new UriParserSyntaxException("message",
+        UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION, "param")
+        , request , response);
+    String[] param = new String[2];
+    error.handleException(new UriParserExceptionCustom("message",
+        UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION, param)
+        , request , response);
+    error.handleException(new BatchDeserializerException("message",
+        BatchDeserializerException.MessageKeys.INVALID_BASE_URI, "param")
+        , request , response);
+    error.handleException(new SerializerException("message",
+        SerializerException.MessageKeys.IO_EXCEPTION, "param")
+        , request , response);
+    error.handleException(new ContentNegotiatorException("message",
+        ContentNegotiatorException.MessageKeys.NO_CONTENT_TYPE_SUPPORTED, "param")
+        , request , response);
+    error.handleException(new UriParserSyntaxException("message",
+        UriParserSyntaxException.MessageKeys.DUPLICATED_ALIAS, "param")
+        , request , response);
+    error.handleException(new DeserializerException("message",
+        DeserializerException.MessageKeys.DUPLICATE_PROPERTY, "param")
+        , request , response);
+    error.handleException(new ODataHandlerException("message",
+        ODataHandlerException.MessageKeys.AMBIGUOUS_XHTTP_METHOD, "param")
+        , request , response);
+    error.handleException(new ODataApplicationException("message",
+        500, Locale.ENGLISH)
+        , request , response);
+    error.handleException(new NullPointerException("message")
+        , request , response);
+    error.handleServerError(request, response, new ODataServerError());
+  }
+
+  class UriParserExceptionCustom extends UriParserException{
+
+    public UriParserExceptionCustom(String developmentMessage, MessageKey messageKey,
+        String[] parameters) {
+      super(developmentMessage, messageKey, parameters);
+    }
+    
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d40f1/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/RequestUrlHierarchyVisitorTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/RequestUrlHierarchyVisitorTest.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/RequestUrlHierarchyVisitorTest.java
new file mode 100644
index 0000000..fe246fa
--- /dev/null
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/RequestUrlHierarchyVisitorTest.java
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.server.core;
+
+import static org.junit.Assert.assertNull;
+
+import org.apache.olingo.server.api.uri.UriInfoEntityId;
+import org.apache.olingo.server.api.uri.UriInfoKind;
+import org.apache.olingo.server.api.uri.UriInfoMetadata;
+import org.apache.olingo.server.api.uri.queryoption.FormatOption;
+import org.apache.olingo.server.core.uri.UriInfoImpl;
+import org.apache.olingo.server.core.uri.UriResourceComplexPropertyImpl;
+import org.apache.olingo.server.core.uri.UriResourceCountImpl;
+import org.apache.olingo.server.core.uri.UriResourceEntitySetImpl;
+import org.apache.olingo.server.core.uri.UriResourceFunctionImpl;
+import org.apache.olingo.server.core.uri.UriResourceItImpl;
+import org.apache.olingo.server.core.uri.UriResourceLambdaAllImpl;
+import org.apache.olingo.server.core.uri.UriResourceLambdaAnyImpl;
+import org.apache.olingo.server.core.uri.UriResourceNavigationPropertyImpl;
+import org.apache.olingo.server.core.uri.UriResourcePrimitivePropertyImpl;
+import org.apache.olingo.server.core.uri.UriResourceRefImpl;
+import org.apache.olingo.server.core.uri.UriResourceRootImpl;
+import org.apache.olingo.server.core.uri.UriResourceSingletonImpl;
+import org.apache.olingo.server.core.uri.UriResourceValueImpl;
+import org.apache.olingo.server.core.uri.queryoption.CountOptionImpl;
+import org.apache.olingo.server.core.uri.queryoption.DeltaTokenOptionImpl;
+import org.apache.olingo.server.core.uri.queryoption.ExpandOptionImpl;
+import org.apache.olingo.server.core.uri.queryoption.FilterOptionImpl;
+import org.apache.olingo.server.core.uri.queryoption.FormatOptionImpl;
+import org.apache.olingo.server.core.uri.queryoption.SearchOptionImpl;
+import org.apache.olingo.server.core.uri.queryoption.SkipOptionImpl;
+import org.apache.olingo.server.core.uri.queryoption.SkipTokenOptionImpl;
+import org.apache.olingo.server.core.uri.queryoption.TopOptionImpl;
+import org.junit.Test;
+
+public class RequestUrlHierarchyVisitorTest {
+  
+  @Test
+  public void visitorTest(){
+    RequestURLHierarchyVisitor visitor = new RequestURLHierarchyVisitor();
+    assertNull(visitor.getUriInfo());
+    UriInfoImpl info = new UriInfoImpl();
+    visitor.visit(info.setKind(UriInfoKind.all));
+    visitor.visit(info.setKind(UriInfoKind.batch));
+    visitor.visit(info.setKind(UriInfoKind.crossjoin));
+    visitor.visit(info.setKind(UriInfoKind.entityId));
+    visitor.visit(info.setKind(UriInfoKind.service));
+    UriInfoEntityId entityId = info;
+    visitor.visit(entityId);
+    visitor.visit(new UriInfoMetadata() {
+      
+      @Override
+      public String getFragment() {
+        return null;
+      }
+      
+      @Override
+      public FormatOption getFormatOption() {
+        return null;
+      }
+    });
+    visitor.visit(new ExpandOptionImpl());
+    visitor.visit(new FilterOptionImpl());
+    visitor.visit(new FormatOptionImpl());
+    visitor.visit(new CountOptionImpl());
+    visitor.visit(new SearchOptionImpl());
+    visitor.visit(new SkipOptionImpl());
+    visitor.visit(new SkipTokenOptionImpl());
+    visitor.visit(new TopOptionImpl());
+    visitor.visit(new UriResourceCountImpl());
+    visitor.visit(new DeltaTokenOptionImpl());
+    visitor.visit(new UriResourceRefImpl());
+    visitor.visit(new UriResourceRootImpl(null, false));
+    visitor.visit(new UriResourceValueImpl());
+    visitor.visit(new UriResourceEntitySetImpl(null));
+    visitor.visit(new UriResourceFunctionImpl(null, null, null));
+    visitor.visit(new UriResourceItImpl(null, false));
+    visitor.visit(new UriResourceLambdaAllImpl(null, null));
+    visitor.visit(new UriResourceLambdaAnyImpl(null, null));
+    visitor.visit(new UriResourceNavigationPropertyImpl(null));
+    visitor.visit(new UriResourceSingletonImpl(null));
+    visitor.visit(new UriResourceComplexPropertyImpl(null));
+    visitor.visit(new UriResourcePrimitivePropertyImpl(null));
+  }
+}