Repository: olingo-odata4
Updated Branches:
  refs/heads/master 03ab69c49 -> 73d1e2e07


[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/73d1e2e0
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/73d1e2e0
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/73d1e2e0

Branch: refs/heads/master
Commit: 73d1e2e07f6e47fa01a5c59cf205e6c7b35af92d
Parents: 03ab69c
Author: ramya vasanth <[email protected]>
Authored: Fri Nov 17 09:49:55 2017 +0530
Committer: ramya vasanth <[email protected]>
Committed: Fri Nov 17 09:49:55 2017 +0530

----------------------------------------------------------------------
 .../server/core/NettyServiceDispatcherTest.java |  278 +++++
 .../netty/server/core/ODataNettyImplTest.java   |   15 +
 .../server/core/ODataNettyHandlerImplTest.java  | 1111 +-----------------
 3 files changed, 297 insertions(+), 1107 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/73d1e2e0/lib/server-core-ext/src/test/java/org/apache/olingo/netty/server/core/NettyServiceDispatcherTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core-ext/src/test/java/org/apache/olingo/netty/server/core/NettyServiceDispatcherTest.java
 
b/lib/server-core-ext/src/test/java/org/apache/olingo/netty/server/core/NettyServiceDispatcherTest.java
new file mode 100644
index 0000000..358b8fe
--- /dev/null
+++ 
b/lib/server-core-ext/src/test/java/org/apache/olingo/netty/server/core/NettyServiceDispatcherTest.java
@@ -0,0 +1,278 @@
+/*
+ * 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.netty.server.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.netty.server.api.ODataNetty;
+import org.apache.olingo.netty.server.api.ODataNettyHandler;
+import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.api.deserializer.DeserializerException;
+import org.apache.olingo.server.api.serializer.SerializerException;
+import org.apache.olingo.server.core.MetadataParser;
+import org.apache.olingo.server.core.SchemaBasedEdmProvider;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import io.netty.buffer.Unpooled;
+import io.netty.handler.codec.http.DefaultFullHttpRequest;
+import io.netty.handler.codec.http.DefaultFullHttpResponse;
+import io.netty.handler.codec.http.HttpHeaders;
+import io.netty.handler.codec.http.HttpResponseStatus;
+import io.netty.handler.codec.http.HttpVersion;
+
+public class NettyServiceDispatcherTest {
+  
+  ServiceMetadata metadata = null;
+  ODataNetty odata = ODataNetty.newInstance();
+  SchemaBasedEdmProvider provider = null;
+  
+  @Before
+  public void beforeTest() throws Exception {
+    MetadataParser parser = new MetadataParser();
+    parser.parseAnnotations(true);
+    parser.useLocalCoreVocabularies(true);
+    parser.implicitlyLoadCoreVocabularies(true);
+    metadata = parser.buildServiceMetadata(new 
FileReader("src/test/resources/trippin.xml"));    
+    provider = parser.buildEdmProvider(new 
FileReader("src/test/resources/trippin.xml"));
+  }
+
+  @Test
+  public void testCreateHandler() {
+    assertNotNull(odata.createHandler(metadata));
+  }
+  
+  @Test
+  public void testCreateRawHandler() {
+    assertNotNull(odata.createRawHandler(metadata));
+  }
+  
+  @Test
+  public void testCreateDeserializer() throws DeserializerException {
+    assertNotNull(odata.createDeserializer(ContentType.APPLICATION_JSON, 
metadata));
+  }
+  
+  @Test
+  public void testCreatePrimitiveTypeInstance() throws DeserializerException {
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Date));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Date).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Date.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Date).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Binary));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Binary).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Binary.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Binary).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Byte));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Byte).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Byte.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Byte).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.DateTimeOffset));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.DateTimeOffset).getKind());
+    assertEquals(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.DateTimeOffset).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Boolean));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Boolean).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Boolean.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Boolean).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Decimal));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Decimal).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Decimal.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Decimal).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Double));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Double).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Double.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Double).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Duration));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Duration).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Duration.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Duration).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Geography));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Geography).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Geography.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Geography).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeographyCollection));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeographyCollection).getKind());
+    
assertEquals(EdmPrimitiveTypeKind.GeographyCollection.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeographyCollection).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeographyLineString));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeographyLineString).getKind());
+    
assertEquals(EdmPrimitiveTypeKind.GeographyLineString.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeographyLineString).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeographyMultiLineString));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeographyMultiLineString).getKind());
+    
assertEquals(EdmPrimitiveTypeKind.GeographyMultiLineString.getFullQualifiedName(),
 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeographyMultiLineString).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryMultiPoint));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryMultiPoint).getKind());
+    
assertEquals(EdmPrimitiveTypeKind.GeometryMultiPoint.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryMultiPoint).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryMultiPolygon));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryMultiPolygon).getKind());
+    
assertEquals(EdmPrimitiveTypeKind.GeometryMultiPolygon.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryMultiPolygon).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Guid));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Guid).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Guid.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Guid).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int16));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int16).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Int16.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int16).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int32));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int32).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Int32.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int32).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int64));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int64).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Int64.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int64).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.SByte));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.SByte).getKind());
+    assertEquals(EdmPrimitiveTypeKind.SByte.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.SByte).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Single));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Single).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Single.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Single).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Stream));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Stream).getKind());
+    assertEquals(EdmPrimitiveTypeKind.Stream.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Stream).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String).getKind());
+    assertEquals(EdmPrimitiveTypeKind.String.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String).getFullQualifiedName());
+    
+    
assertNotNull(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.TimeOfDay));
+    assertEquals(EdmTypeKind.PRIMITIVE, 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.TimeOfDay).getKind());
+    assertEquals(EdmPrimitiveTypeKind.TimeOfDay.getFullQualifiedName(), 
+        
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.TimeOfDay).getFullQualifiedName());
+  }
+  
+  @Test
+  public void testCreatePreferences() {
+    List<String> preferHeaders = new ArrayList<String>();
+    preferHeaders.add("return=representation");
+    preferHeaders.add("odata.track-changes");
+    assertNotNull(odata.createPreferences(preferHeaders));
+  }
+  
+  @Test
+  public void testCreateEdmAssistedSerializer() throws SerializerException {
+    
assertNotNull(odata.createEdmAssistedSerializer(ContentType.APPLICATION_JSON));
+  }
+  
+  @Test
+  public void testCreateEdmDeltaSerializer() throws SerializerException {
+    List<String> versions = new ArrayList<String>();
+    versions.add("4.01");
+    assertNotNull(odata.createEdmDeltaSerializer(ContentType.APPLICATION_JSON, 
versions));
+  }
+  
+  @Test
+  public void testMetadata() throws Exception {
+    DefaultFullHttpRequest nettyRequest = 
Mockito.mock(DefaultFullHttpRequest.class);
+    io.netty.handler.codec.http.HttpMethod httpMethod = 
mock(io.netty.handler.codec.http.HttpMethod.class);
+    when(httpMethod.name()).thenReturn("GET");
+    when(nettyRequest.method()).thenReturn(httpMethod);
+    HttpVersion httpVersion = mock(HttpVersion.class);
+    when(httpVersion.text()).thenReturn("HTTP/1.0");
+    when(nettyRequest.protocolVersion()).thenReturn(httpVersion);
+    when(nettyRequest.uri()).thenReturn("/trippin/$metadata");
+    HttpHeaders headers = mock(HttpHeaders.class);
+    when(nettyRequest.headers()).thenReturn(headers);
+    when(nettyRequest.content()).thenReturn(Unpooled.buffer());
+    
+    DefaultFullHttpResponse nettyResponse = 
mock(DefaultFullHttpResponse.class);
+    when(nettyResponse.status()).thenReturn(HttpResponseStatus.OK);
+    when(nettyResponse.headers()).thenReturn(headers);
+    when(nettyResponse.content()).thenReturn(Unpooled.buffer());    
+    
+    Map<String, String> requestParams = new HashMap<String, String>();
+    requestParams.put("contextPath", "/trippin");
+    ODataNettyHandler handler = odata.createNettyHandler(metadata);
+    handler.processNettyRequest(nettyRequest, nettyResponse, requestParams);
+    assertNotNull(new String (nettyResponse.content().array()));
+    assertEquals(200, nettyResponse.status().code());
+    assertEquals("OK", nettyResponse.status().reasonPhrase());
+  }
+  
+  @Test
+  public void testCreateServiceMetadata() throws SerializerException {
+    assertNotNull(odata.createServiceMetadata(provider, 
metadata.getReferences(), 
+        metadata.getServiceMetadataETagSupport()));
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/73d1e2e0/lib/server-core/src/test/java/org/apache/olingo/netty/server/core/ODataNettyImplTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/netty/server/core/ODataNettyImplTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/netty/server/core/ODataNettyImplTest.java
index e71ffbd..7e54ab5 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/netty/server/core/ODataNettyImplTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/netty/server/core/ODataNettyImplTest.java
@@ -56,4 +56,19 @@ public class ODataNettyImplTest {
   public void deserializerFixedFormat() throws DeserializerException {
     assertNotNull(odata.createFixedFormatDeserializer());
   }
+  
+  @Test
+  public void testCreateETagHelper() {
+    assertNotNull(odata.createETagHelper());
+  }
+  
+  @Test
+  public void testCreateUriHelper() {
+    assertNotNull(odata.createUriHelper());
+  }
+  
+  @Test
+  public void testCreateDebugResponseHelper() {
+    assertNotNull(odata.createDebugResponseHelper("json"));
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/73d1e2e0/lib/server-test/src/test/java/org/apache/olingo/netty/server/core/ODataNettyHandlerImplTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/netty/server/core/ODataNettyHandlerImplTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/netty/server/core/ODataNettyHandlerImplTest.java
index cfe9be4..f227267 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/netty/server/core/ODataNettyHandlerImplTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/netty/server/core/ODataNettyHandlerImplTest.java
@@ -18,77 +18,25 @@
  */
 package org.apache.olingo.netty.server.core;
 
-import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
-import java.io.InputStream;
-import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
 import org.apache.olingo.commons.api.edmx.EdmxReference;
-import org.apache.olingo.commons.api.ex.ODataException;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.commons.api.http.HttpHeader;
-import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.netty.server.api.ODataNetty;
 import org.apache.olingo.netty.server.api.ODataNettyHandler;
-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.batch.BatchFacade;
-import org.apache.olingo.server.api.processor.ActionComplexCollectionProcessor;
-import org.apache.olingo.server.api.processor.ActionComplexProcessor;
-import org.apache.olingo.server.api.processor.ActionEntityCollectionProcessor;
-import org.apache.olingo.server.api.processor.ActionEntityProcessor;
-import 
org.apache.olingo.server.api.processor.ActionPrimitiveCollectionProcessor;
-import org.apache.olingo.server.api.processor.ActionPrimitiveProcessor;
-import org.apache.olingo.server.api.processor.ActionVoidProcessor;
-import org.apache.olingo.server.api.processor.BatchProcessor;
-import org.apache.olingo.server.api.processor.ComplexCollectionProcessor;
-import org.apache.olingo.server.api.processor.ComplexProcessor;
-import org.apache.olingo.server.api.processor.CountComplexCollectionProcessor;
-import org.apache.olingo.server.api.processor.CountEntityCollectionProcessor;
-import 
org.apache.olingo.server.api.processor.CountPrimitiveCollectionProcessor;
-import org.apache.olingo.server.api.processor.EntityCollectionProcessor;
 import org.apache.olingo.server.api.processor.EntityProcessor;
-import org.apache.olingo.server.api.processor.ErrorProcessor;
-import org.apache.olingo.server.api.processor.MediaEntityProcessor;
 import org.apache.olingo.server.api.processor.MetadataProcessor;
-import org.apache.olingo.server.api.processor.PrimitiveCollectionProcessor;
-import org.apache.olingo.server.api.processor.PrimitiveProcessor;
-import org.apache.olingo.server.api.processor.PrimitiveValueProcessor;
-import org.apache.olingo.server.api.processor.Processor;
-import org.apache.olingo.server.api.processor.ReferenceCollectionProcessor;
-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.tecsvc.provider.ContainerProvider;
 import org.apache.olingo.server.tecsvc.provider.EdmTechProvider;
 import org.junit.Test;
 
@@ -103,1059 +51,6 @@ import io.netty.handler.codec.http.HttpVersion;
 
 public class ODataNettyHandlerImplTest {
 
-  private static final String BASE_URI = "http://localhost/odata";;
-
-  @Test
-  public void serviceDocumentNonDefault() throws Exception {
-    final ServiceDocumentProcessor processor = 
mock(ServiceDocumentProcessor.class);
-    doThrow(new ODataApplicationException("msg", 100, 
Locale.ENGLISH)).when(processor)
-        .readServiceDocument(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-            any(ContentType.class));
-    final ODataResponse response = dispatch(HttpMethod.GET, "/", processor);
-    assertEquals(HttpStatusCode.CONTINUE.getStatusCode(), 
response.getStatusCode());
-
-    verify(processor).readServiceDocument(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    // We support HEAD now too
-    final ServiceDocumentProcessor processor2 = 
mock(ServiceDocumentProcessor.class);
-    doThrow(new ODataApplicationException("msg", 100, 
Locale.ENGLISH)).when(processor2)
-    .readServiceDocument(any(ODataRequest.class), any(ODataResponse.class), 
any(UriInfo.class),
-        any(ContentType.class));
-    final ODataResponse response2 = dispatch(HttpMethod.HEAD, "/", processor2);
-    assertEquals(HttpStatusCode.CONTINUE.getStatusCode(), 
response2.getStatusCode());
-
-    verify(processor2).readServiceDocument(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, "/", processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, "/", processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, "/", processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, "/", processor);
-  }
-
-  @Test
-  public void serviceDocumentDefault() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "/", null);
-    assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
-
-    String ct = response.getHeader(HttpHeader.CONTENT_TYPE);
-    assertThat(ct, containsString("application/json"));
-    assertThat(ct, containsString("odata.metadata=minimal"));
-
-    assertNotNull(response.getContent());
-    String doc = IOUtils.toString(response.getContent());
-
-    assertThat(doc, containsString("\"@odata.context\":\"$metadata\""));
-    assertThat(doc, containsString("\"value\":"));
-    
-    final ODataResponse response2 = dispatch(HttpMethod.HEAD, "/", null);
-    assertEquals(HttpStatusCode.OK.getStatusCode(), response2.getStatusCode());
-    assertNull(response2.getHeader(HttpHeader.CONTENT_TYPE));
-    assertNull(response2.getContent());
-  }
-
-  @Test
-  public void serviceDocumentRedirect() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "", null);
-    assertEquals(HttpStatusCode.TEMPORARY_REDIRECT.getStatusCode(), 
response.getStatusCode());
-    assertEquals(BASE_URI + "/", response.getHeader(HttpHeader.LOCATION));
-    
-    final ODataResponse responseHead = dispatch(HttpMethod.HEAD, "", null);
-    assertEquals(HttpStatusCode.TEMPORARY_REDIRECT.getStatusCode(), 
responseHead.getStatusCode());
-    assertEquals(BASE_URI + "/", responseHead.getHeader(HttpHeader.LOCATION));
-  }
-
-  @Test
-  public void metadataNonDefault() throws Exception {
-    final MetadataProcessor processor = mock(MetadataProcessor.class);
-    doThrow(new ODataApplicationException("msg", 100, 
Locale.ENGLISH)).when(processor)
-    .readMetadata(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", 
processor);
-    assertEquals(HttpStatusCode.CONTINUE.getStatusCode(), 
response.getStatusCode());
-
-    verify(processor).readMetadata(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-    
-    // We support HEAD now too
-    final MetadataProcessor processor2 = mock(MetadataProcessor.class);
-    doThrow(new ODataApplicationException("msg", 100, 
Locale.ENGLISH)).when(processor2)
-    .readMetadata(any(ODataRequest.class), any(ODataResponse.class), 
any(UriInfo.class),
-        any(ContentType.class));
-    final ODataResponse response2 = dispatch(HttpMethod.HEAD, "$metadata", 
processor2);
-    assertEquals(HttpStatusCode.CONTINUE.getStatusCode(), 
response2.getStatusCode());
-
-    verify(processor2).readMetadata(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, "$metadata", processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, "$metadata", processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, "$metadata", processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, "$metadata", processor);
-  }
-
-  @Test
-  public void metadataDefault() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", null);
-    assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
-    assertEquals(ContentType.APPLICATION_XML.toContentTypeString(), 
response.getHeader(HttpHeader.CONTENT_TYPE));
-
-    assertNotNull(response.getContent());
-    assertThat(IOUtils.toString(response.getContent()),
-        containsString("<edmx:Edmx Version=\"4.0\""));
-    
-    final ODataResponse response2 = dispatch(HttpMethod.HEAD, "$metadata", 
null);
-    assertEquals(HttpStatusCode.OK.getStatusCode(), response2.getStatusCode());
-    assertNull(response2.getHeader(HttpHeader.CONTENT_TYPE));
-    assertNull(response2.getContent());
-  }
-
-  @Test
-  public void maxVersionNone() {
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", null);
-    assertEquals(ODataServiceVersion.V40.toString(), 
response.getHeader(HttpHeader.ODATA_VERSION));
-  }
-
-  @Test
-  public void maxVersionSupported() {
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", null,
-        HttpHeader.ODATA_MAX_VERSION, ODataServiceVersion.V40.toString(), 
null);
-    assertEquals(ODataServiceVersion.V40.toString(), 
response.getHeader(HttpHeader.ODATA_VERSION));
-  }
-
-  @Test
-  public void maxVersionNotSupported() {
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", null,
-        HttpHeader.ODATA_MAX_VERSION, ODataServiceVersion.V30.toString(), 
null);
-
-    assertEquals(ODataServiceVersion.V40.toString(), 
response.getHeader(HttpHeader.ODATA_VERSION));
-    assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), 
response.getStatusCode());
-  }
-
-  @Test
-  public void contentNegotiationSupported() {
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", 
"$format=xml", null, null, null);
-    assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
-  }
-
-  @Test
-  public void contentNegotiationNotSupported() {
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", 
"$format=not/Supported", null, null, null);
-    assertEquals(HttpStatusCode.NOT_ACCEPTABLE.getStatusCode(), 
response.getStatusCode());
-  }
-
-  @Test
-  public void contentNegotiationNotSupported2() {
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", 
"$format=notSupported", null, null, null);
-    assertEquals(HttpStatusCode.NOT_ACCEPTABLE.getStatusCode(), 
response.getStatusCode());
-  }
-
-  @Test
-  public void unregisteredProcessor() {
-    final ODataResponse response = dispatch(HttpMethod.GET, "ESAllPrim", null);
-    assertEquals(HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), 
response.getStatusCode());
-  }
-
-  @Test
-  public void uriParserExceptionResultsInRightResponseNotFound() throws 
Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "NotFound", null);
-    assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), 
response.getStatusCode());
-  }
-
-  @Test
-  public void uriParserExceptionResultsInRightResponseBadRequest() throws 
Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, 
"ESAllPrim('122')", null);
-    assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), 
response.getStatusCode());
-  }
-
-  @Test
-  public void uriParserExceptionWithFormatQueryJson() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "ESAllPrims", 
"$format=json", "", "", null);
-    assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), 
response.getStatusCode());
-    assertEquals("application/json;odata.metadata=minimal",
-        response.getHeader(HttpHeader.CONTENT_TYPE));
-  }
-
-  @Test
-  public void uriParserExceptionWithFormatQueryJsonAndMore() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "ESAllPrims", 
"$format=json&$top=3", "", "", null);
-    assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), 
response.getStatusCode());
-    assertEquals("application/json;odata.metadata=minimal",
-        response.getHeader(HttpHeader.CONTENT_TYPE));
-  }
-
-  @Test
-  public void uriParserExceptionWithFormatJsonAcceptAtom() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "ESAllPrims", 
"$format=json",
-        HttpHeader.ACCEPT, 
ContentType.APPLICATION_ATOM_XML.toContentTypeString(), null);
-    assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), 
response.getStatusCode());
-    assertEquals("application/json;odata.metadata=minimal",
-        response.getHeader(HttpHeader.CONTENT_TYPE));
-  }
-
-  @Test
-  public void uriParserExceptionWithFormatQueryAtom() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "ESAllPrims", 
"$format=atom", "", "", null);
-    assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), 
response.getStatusCode());
-    assertEquals("application/json;odata.metadata=minimal",
-        response.getHeader(HttpHeader.CONTENT_TYPE));
-  }
-
-  @Test
-  public void uriParserExceptionWithFormatQueryAtomAndTop() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "ESAllPrims", 
"$format=atom&$top=19", "", "", null);
-    assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), 
response.getStatusCode());
-    assertEquals("application/json;odata.metadata=minimal",
-        response.getHeader(HttpHeader.CONTENT_TYPE));
-  }
-
-  @Test
-  public void uriParserExceptionWithFormatAtomAcceptJson() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "ESAllPrims", 
"$format=atom",
-        HttpHeader.ACCEPT, ContentType.APPLICATION_JSON.toContentTypeString(), 
null);
-    assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), 
response.getStatusCode());
-    assertEquals("application/json;odata.metadata=minimal",
-        response.getHeader(HttpHeader.CONTENT_TYPE));
-  }
-
-  @Test
-  public void uriParserExceptionWithFormatQueryInvali() throws Exception {
-    final ODataResponse response = dispatch(HttpMethod.GET, "ESAllPrims", 
"$format=somenotvalid", "", "", null);
-    assertEquals(HttpStatusCode.NOT_ACCEPTABLE.getStatusCode(), 
response.getStatusCode());
-    assertEquals("application/json;odata.metadata=minimal",
-        response.getHeader(HttpHeader.CONTENT_TYPE));
-  }
-
-  @Test
-  public void applicationExceptionInProcessorMessage() throws Exception {
-    final String ODATA_ERRORCODE = "425";
-    final String ORIGINAL_MESSAGE = "original message";
-    final String LOCALIZED_MESSAGE = "localized message";
-    MetadataProcessor processor = mock(MetadataProcessor.class);
-
-    ODataApplicationException oDataApplicationException =
-        new ODataApplicationException(ORIGINAL_MESSAGE, 425, Locale.ENGLISH, 
ODATA_ERRORCODE) {
-          private static final long serialVersionUID = 1L;
-
-          @Override
-          public String getLocalizedMessage() {
-            return LOCALIZED_MESSAGE;
-          }
-        };
-
-    doThrow(oDataApplicationException).when(processor).readMetadata(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", 
processor);
-    InputStream contentStream = response.getContent();
-    String responseContent = IOUtils.toString(contentStream, 
Charset.forName("UTF-8"));
-    // does the response contain the localized message and the status code?
-    boolean isMessage = responseContent.contains(LOCALIZED_MESSAGE) && 
responseContent.contains(ODATA_ERRORCODE);
-    // test if message is localized
-    assertEquals(true, isMessage);
-    // test if the original is hold
-    assertEquals(ORIGINAL_MESSAGE, oDataApplicationException.getMessage());
-  }
-
-  @Test
-  public void applicationExceptionInProcessor() throws Exception {
-    MetadataProcessor processor = mock(MetadataProcessor.class);
-    doThrow(new ODataApplicationException("msg", 425, 
Locale.ENGLISH)).when(processor).readMetadata(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-    final ODataResponse response = dispatch(HttpMethod.GET, "$metadata", 
processor);
-    assertEquals(425, response.getStatusCode());
-  }
-
-  @Test
-  public void uriParserExceptionResultsInRightResponseEdmCause() 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");
-
-    final ODataResponse response =
-        new ODataNettyHandlerImpl(odata, serviceMetadata).process(request);
-    assertNotNull(response);
-    assertEquals(HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), 
response.getStatusCode());
-  }
-
-  @Test
-  public void dispatchBatch() throws Exception {
-    final String uri = "$batch";
-    final BatchProcessor processor = mock(BatchProcessor.class);
-
-    dispatch(HttpMethod.POST, uri, null, HttpHeader.CONTENT_TYPE, 
ContentType.MULTIPART_MIXED.toContentTypeString(),
-        processor);
-    verify(processor).processBatch(any(BatchFacade.class), 
any(ODataRequest.class), any(ODataResponse.class));
-
-    dispatchMethodNotAllowed(HttpMethod.GET, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchEntitySet() throws Exception {
-    final String uri = "ESAllPrim";
-    final EntityCollectionProcessor processor = 
mock(EntityCollectionProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readEntityCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchEntitySetCount() throws Exception {
-    final String uri = "ESAllPrim/$count";
-    final CountEntityCollectionProcessor processor = 
mock(CountEntityCollectionProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).countEntityCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchCountWithNavigation() throws Exception {
-    final CountEntityCollectionProcessor processor = 
mock(CountEntityCollectionProcessor.class);
-    String uri = "ESAllPrim(0)/NavPropertyETTwoPrimMany/$count";
-    dispatch(HttpMethod.GET, uri, processor);
-
-    verify(processor).countEntityCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class));
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchFunction() throws Exception {
-    EntityProcessor entityProcessor = mock(EntityProcessor.class);
-    dispatch(HttpMethod.GET, "FICRTETKeyNav()", entityProcessor);
-    verify(entityProcessor).readEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    EntityCollectionProcessor entityCollectionProcessor = 
mock(EntityCollectionProcessor.class);
-    dispatch(HttpMethod.GET, "FICRTCollESTwoKeyNavParam(ParameterInt16=123)", 
entityCollectionProcessor);
-    verify(entityCollectionProcessor).readEntityCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    final String entityCountUri = 
"FICRTCollESTwoKeyNavParam(ParameterInt16=123)/$count";
-    final CountEntityCollectionProcessor entityCountProcessor = 
mock(CountEntityCollectionProcessor.class);
-    dispatch(HttpMethod.GET, entityCountUri, entityCountProcessor);
-    verify(entityCountProcessor).countEntityCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class));
-    dispatchMethodNotAllowed(HttpMethod.POST, entityCountUri, 
entityCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, entityCountUri, 
entityCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, entityCountUri, 
entityCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, entityCountUri, 
entityCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, entityCountUri, 
entityCountProcessor);
-
-    PrimitiveProcessor primitiveProcessor = mock(PrimitiveProcessor.class);
-    dispatch(HttpMethod.GET, "FICRTString()", primitiveProcessor);
-    verify(primitiveProcessor).readPrimitive(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    // FINRTInt16 is not composable so /$value is not allowed
-    final String valueUri = "FINRTInt16()/$value";
-    final PrimitiveValueProcessor primitiveValueProcessor = 
mock(PrimitiveValueProcessor.class);
-    dispatchMethodWithError(HttpMethod.GET, valueUri, primitiveValueProcessor, 
HttpStatusCode.BAD_REQUEST);
-    dispatchMethodWithError(HttpMethod.POST, valueUri, 
primitiveValueProcessor, HttpStatusCode.BAD_REQUEST);
-    dispatchMethodWithError(HttpMethod.PATCH, valueUri, 
primitiveValueProcessor, HttpStatusCode.BAD_REQUEST);
-    dispatchMethodWithError(HttpMethod.PUT, valueUri, primitiveValueProcessor, 
HttpStatusCode.BAD_REQUEST);
-    dispatchMethodWithError(HttpMethod.DELETE, valueUri, 
primitiveValueProcessor, HttpStatusCode.BAD_REQUEST);
-    dispatchMethodWithError(HttpMethod.HEAD, valueUri, 
primitiveValueProcessor, HttpStatusCode.BAD_REQUEST);
-
-    final String primitiveCollectionUri = "FICRTCollString()";
-    PrimitiveCollectionProcessor primitiveCollectionProcessor = 
mock(PrimitiveCollectionProcessor.class);
-    dispatch(HttpMethod.GET, primitiveCollectionUri, 
primitiveCollectionProcessor);
-    verify(primitiveCollectionProcessor).readPrimitiveCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-    dispatchMethodNotAllowed(HttpMethod.POST, primitiveCollectionUri, 
primitiveCollectionProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, primitiveCollectionUri, 
primitiveCollectionProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, primitiveCollectionUri, 
primitiveCollectionProcessor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, primitiveCollectionUri, 
primitiveCollectionProcessor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, primitiveCollectionUri, 
primitiveCollectionProcessor);
-
-    final String primitiveCountUri = "FICRTCollString()/$count";
-    final CountPrimitiveCollectionProcessor primitiveCountProcessor = 
mock(CountPrimitiveCollectionProcessor.class);
-    dispatch(HttpMethod.GET, primitiveCountUri, primitiveCountProcessor);
-    verify(primitiveCountProcessor).countPrimitiveCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class));
-    dispatchMethodNotAllowed(HttpMethod.POST, primitiveCountUri, 
primitiveCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, primitiveCountUri, 
primitiveCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, primitiveCountUri, 
primitiveCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, primitiveCountUri, 
primitiveCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, primitiveCountUri, 
primitiveCountProcessor);
-
-    ComplexProcessor complexProcessor = mock(ComplexProcessor.class);
-    dispatch(HttpMethod.GET, "FICRTCTTwoPrim()", complexProcessor);
-    verify(complexProcessor).readComplex(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    ComplexCollectionProcessor complexCollectionProcessor = 
mock(ComplexCollectionProcessor.class);
-    dispatch(HttpMethod.GET, "FICRTCollCTTwoPrim()", 
complexCollectionProcessor);
-    verify(complexCollectionProcessor).readComplexCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    final String complexCountUri = "FICRTCollCTTwoPrim()/$count";
-    final CountComplexCollectionProcessor complexCountProcessor = 
mock(CountComplexCollectionProcessor.class);
-    dispatch(HttpMethod.GET, complexCountUri, complexCountProcessor);
-    verify(complexCountProcessor).countComplexCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class));
-    dispatchMethodNotAllowed(HttpMethod.POST, complexCountUri, 
complexCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, complexCountUri, 
complexCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, complexCountUri, 
complexCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, complexCountUri, 
complexCountProcessor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, complexCountUri, 
complexCountProcessor);
-
-    final String mediaUri = "FICRTESMedia(ParameterInt16=1)/$value";
-    final MediaEntityProcessor mediaProcessor = 
mock(MediaEntityProcessor.class);
-    dispatch(HttpMethod.GET, mediaUri, mediaProcessor);
-    verify(mediaProcessor).readMediaEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-    dispatchMethodNotAllowed(HttpMethod.POST, mediaUri, mediaProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, mediaUri, mediaProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, mediaUri, mediaProcessor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, mediaUri, mediaProcessor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, mediaUri, mediaProcessor);
-  }
-
-  @Test
-  public void dispatchAction() throws Exception {
-    final ActionPrimitiveProcessor primitiveProcessor = 
mock(ActionPrimitiveProcessor.class);
-    dispatch(HttpMethod.POST, ContainerProvider.AIRT_STRING, 
primitiveProcessor);
-    verify(primitiveProcessor).processActionPrimitive(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-    dispatchMethodNotAllowed(HttpMethod.GET, ContainerProvider.AIRT_STRING, 
primitiveProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, ContainerProvider.AIRT_STRING, 
primitiveProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, ContainerProvider.AIRT_STRING, 
primitiveProcessor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, ContainerProvider.AIRT_STRING, 
primitiveProcessor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, ContainerProvider.AIRT_STRING, 
primitiveProcessor);
-
-    ActionPrimitiveCollectionProcessor primitiveCollectionProcessor = 
mock(ActionPrimitiveCollectionProcessor.class);
-    dispatch(HttpMethod.POST, ContainerProvider.AIRT_COLL_STRING_TWO_PARAM, 
primitiveCollectionProcessor);
-    verify(primitiveCollectionProcessor).processActionPrimitiveCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    ActionComplexProcessor complexProcessor = 
mock(ActionComplexProcessor.class);
-    dispatch(HttpMethod.POST, ContainerProvider.AIRTCT_TWO_PRIM_PARAM, 
complexProcessor);
-    verify(complexProcessor).processActionComplex(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    ActionComplexCollectionProcessor complexCollectionProcessor = 
mock(ActionComplexCollectionProcessor.class);
-    dispatch(HttpMethod.POST, ContainerProvider.AIRT_COLL_CT_TWO_PRIM_PARAM, 
complexCollectionProcessor);
-    verify(complexCollectionProcessor).processActionComplexCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    ActionEntityProcessor entityProcessor = mock(ActionEntityProcessor.class);
-    dispatch(HttpMethod.POST, ContainerProvider.AIRTET_TWO_KEY_TWO_PRIM_PARAM, 
entityProcessor);
-    verify(entityProcessor).processActionEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    ActionEntityCollectionProcessor entityCollectionProcessor = 
mock(ActionEntityCollectionProcessor.class);
-    dispatch(HttpMethod.POST, ContainerProvider.AIRT_COLL_ET_KEY_NAV_PARAM, 
entityCollectionProcessor);
-    verify(entityCollectionProcessor).processActionEntityCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    ActionEntityProcessor entityProcessorEs = 
mock(ActionEntityProcessor.class);
-    dispatch(HttpMethod.POST, ContainerProvider.AIRTES_ALL_PRIM_PARAM, 
entityProcessorEs);
-    verify(entityProcessorEs).processActionEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    ActionEntityCollectionProcessor entityCollectionProcessorEs = 
mock(ActionEntityCollectionProcessor.class);
-    dispatch(HttpMethod.POST, ContainerProvider.AIRT_COLL_ES_ALL_PRIM_PARAM, 
entityCollectionProcessorEs);
-    verify(entityCollectionProcessorEs).processActionEntityCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    final ActionVoidProcessor voidProcessor = mock(ActionVoidProcessor.class);
-    dispatch(HttpMethod.POST, ContainerProvider.AIRT, voidProcessor);
-    verify(voidProcessor).processActionVoid(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-    dispatchMethodNotAllowed(HttpMethod.GET, ContainerProvider.AIRT, 
voidProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, ContainerProvider.AIRT, 
voidProcessor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, ContainerProvider.AIRT, 
voidProcessor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, ContainerProvider.AIRT, 
voidProcessor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, ContainerProvider.AIRT, 
voidProcessor);
-  }
-
-  @Test
-  public void dispatchEntity() throws Exception {
-    final String uri = "ESAllPrim(0)";
-    final EntityProcessor processor = mock(EntityProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.PATCH, uri, processor);
-    verify(processor).updateEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor, times(2)).updateEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verify(processor).deleteEntity(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatch(HttpMethod.POST, "ESAllPrim", processor);
-    verify(processor).createEntity(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-
-  @Test
-  public void dispatchSingleton() throws Exception {
-    final String uri = "SI";
-    final EntityProcessor processor = mock(EntityProcessor.class);
-    
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.PATCH, uri, processor);
-    verify(processor).updateEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor, times(2)).updateEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, uri, processor);
-  }
-  
-  @Test
-  public void dispatchSingletonMedia() throws Exception {
-    final String uri = "SIMedia/$value";
-    final MediaEntityProcessor processor = mock(MediaEntityProcessor.class);
-    
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readMediaEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor).updateMediaEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, uri, processor);
-  }
-  
-  @Test
-  public void dispatchSingletonNavigation() throws Exception {
-    final String uri = "SINav/NavPropertyETTwoKeyNavOne";
-    final String sigletonNavUri = 
"ESTwoKeyNav(PropertyInt16=1,PropertyString='1')/NavPropertySINav";
-    final String sigletonManyNavUri = "SINav/NavPropertyETTwoKeyNavMany";
-    final EntityProcessor processor = mock(EntityProcessor.class);
-    final EntityCollectionProcessor collectionProcessor = 
mock(EntityCollectionProcessor.class);
-    
-    dispatch(HttpMethod.GET, sigletonNavUri, processor);
-    verify(processor).readEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.PATCH, sigletonNavUri, processor);
-    verify(processor).updateEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, sigletonNavUri, processor);
-    verify(processor, times(2)).updateEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, sigletonNavUri, processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, sigletonNavUri, processor);
-    
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor, times(2)).readEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.PATCH, uri, processor);
-    verify(processor,  times(3)).updateEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor, times(4)).updateEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-    
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verify(processor).deleteEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class));
-    
-    
-    dispatch(HttpMethod.GET, sigletonManyNavUri, collectionProcessor);
-    verify(collectionProcessor).readEntityCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-    
-    dispatchMethodNotAllowed(HttpMethod.PATCH, sigletonManyNavUri, processor);
-    
-    dispatchMethodNotAllowed(HttpMethod.PUT, sigletonManyNavUri, processor);
-    
-    dispatch(HttpMethod.POST, sigletonManyNavUri, processor);
-    verify(processor).createEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-
-    dispatchMethodNotAllowed(HttpMethod.DELETE, sigletonManyNavUri, processor);
-  }
-  
-  @Test
-  public void dispatchMedia() throws Exception {
-    final String uri = "ESMedia(1)/$value";
-    final MediaEntityProcessor processor = mock(MediaEntityProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readMediaEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.POST, "ESMedia", processor);
-    verify(processor).createMediaEntity(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor).updateMediaEntity(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verify(processor).deleteMediaEntity(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchValueOnNoMedia() throws Exception {
-    final String uri = "ESAllPrim(1)/$value";
-    final MediaEntityProcessor processor = mock(MediaEntityProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verifyZeroInteractions(processor);
-
-    dispatch(HttpMethod.POST, uri, processor);
-    verifyZeroInteractions(processor);
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verifyZeroInteractions(processor);
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verifyZeroInteractions(processor);
-    
-    dispatch(HttpMethod.HEAD, uri, processor);
-    verifyZeroInteractions(processor);
-  }
-
-  @Test
-  public void dispatchMediaWithNavigation() throws Exception {
-    /*
-     * In Java we decided that any kind of navigation will be accepted. This 
means that a $value on a media resource
-     * must be dispatched as well
-     */
-    final String uri = "ESKeyNav(1)/NavPropertyETMediaOne/$value";
-    final MediaEntityProcessor processor = mock(MediaEntityProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readMediaEntity(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, 
"ESKeyNav(1)/NavPropertyETMediaOne", processor);
-
-    dispatchMethodNotAllowed(HttpMethod.POST, 
"ESKeyNav(1)/NavPropertyETMediaOne/$value", processor);
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor).updateMediaEntity(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class), any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verify(processor).deleteMediaEntity(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchMediaDeleteIndirect() throws Exception {
-    final MediaEntityProcessor processor = mock(MediaEntityProcessor.class);
-    dispatch(HttpMethod.DELETE, "ESMedia(1)", processor);
-
-    verify(processor).deleteEntity(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-    dispatchMethodNotAllowed(HttpMethod.HEAD, "ESMedia(1)", processor);
-  }
-
-  @Test
-  public void dispatchPrimitiveProperty() throws Exception {
-    final String uri = "ESAllPrim(0)/PropertyString";
-    final PrimitiveProcessor processor = mock(PrimitiveProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readPrimitive(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.PATCH, uri, processor);
-    verify(processor).updatePrimitive(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor, times(2)).updatePrimitive(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verify(processor).deletePrimitive(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchPrimitivePropertyValue() throws Exception {
-    final String uri = "ESAllPrim(0)/PropertyString/$value";
-    final PrimitiveValueProcessor processor = 
mock(PrimitiveValueProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readPrimitiveValue(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, null, HttpHeader.CONTENT_TYPE, 
ContentType.TEXT_PLAIN.toContentTypeString(),
-        processor);
-    verify(processor).updatePrimitiveValue(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verify(processor).deletePrimitiveValue(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchPrimitiveCollectionProperty() throws Exception {
-    final String uri = "ESMixPrimCollComp(7)/CollPropertyString";
-    final PrimitiveCollectionProcessor processor = 
mock(PrimitiveCollectionProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readPrimitiveCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor).updatePrimitiveCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verify(processor).deletePrimitiveCollection(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchPrimitiveCollectionPropertyCount() throws Exception {
-    final String uri = "ESMixPrimCollComp(7)/CollPropertyString/$count";
-    final CountPrimitiveCollectionProcessor processor = 
mock(CountPrimitiveCollectionProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).countPrimitiveCollection(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchComplexProperty() throws Exception {
-    final String uri = "ESMixPrimCollComp(7)/PropertyComp";
-    final ComplexProcessor processor = mock(ComplexProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readComplex(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.PATCH, uri, processor);
-    verify(processor).updateComplex(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor, times(2)).updateComplex(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verify(processor).deleteComplex(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchComplexCollectionProperty() throws Exception {
-    final String uri = "ESMixPrimCollComp(7)/CollPropertyComp";
-    final ComplexCollectionProcessor processor = 
mock(ComplexCollectionProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readComplexCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor).updateComplexCollection(
-        any(ODataRequest.class), any(ODataResponse.class), any(UriInfo.class), 
any(ContentType.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, uri, processor);
-    verify(processor).deleteComplexCollection(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchComplexCollectionPropertyCount() throws Exception {
-    final String uri = "ESMixPrimCollComp(7)/CollPropertyComp/$count";
-    final CountComplexCollectionProcessor processor = 
mock(CountComplexCollectionProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).countComplexCollection(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.DELETE, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);
-  }
-
-  @Test
-  public void dispatchReference() throws Exception {
-    final String uri = "ESAllPrim(0)/NavPropertyETTwoPrimOne/$ref";
-    final String uriMany = "ESAllPrim(0)/NavPropertyETTwoPrimMany/$ref";
-    final String singletonUri = "SINav/NavPropertyETKeyNavOne/$ref";
-    final String singletonUriMany = "SINav/NavPropertyETTwoKeyNavMany/$ref";
-    final String singleUri = "SINav/$ref";
-    final ReferenceProcessor processor = mock(ReferenceProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PATCH, uri, processor);
-    verify(processor).updateReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, uri, processor);
-    verify(processor, times(2)).updateReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, uri, processor);
-
-    dispatch(HttpMethod.POST, uriMany, processor);
-    verify(processor).createReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, uriMany, "$id=ESTwoPrim(1)", null, null, 
processor);
-    verify(processor).deleteReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-    
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor);    
-    
-    //singleton URIs
-    
-    dispatch(HttpMethod.GET, singletonUri, processor);
-    verify(processor, times(2)).readReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PATCH, singletonUri, processor);
-    verify(processor, times(3)).updateReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, singletonUri, processor);
-    verify(processor, times(4)).updateReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, singletonUri, processor); 
-    
-    dispatch(HttpMethod.GET, singleUri, processor);
-    verify(processor, times(3)).readReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PATCH, singleUri, processor);
-    verify(processor, times(5)).updateReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.PUT, singleUri, processor);
-    verify(processor, times(6)).updateReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.POST, singleUri, processor); 
-    
-    dispatch(HttpMethod.POST, singletonUriMany, processor);
-    verify(processor, times(2)).createReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatch(HttpMethod.DELETE, singletonUriMany, "$id=ESTwoPrim(1)", null, 
null, processor);
-    verify(processor, times(2)).deleteReference(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class));
-    
-    dispatchMethodNotAllowed(HttpMethod.HEAD, singletonUriMany, processor);
-  }
-
-  @Test
-  public void dispatchReferenceCollection() throws Exception {
-    final String uri = "ESAllPrim(0)/NavPropertyETTwoPrimMany/$ref";
-    final String singletonUri = "SINav/NavPropertyETTwoKeyNavMany/$ref";
-    final ReferenceCollectionProcessor processor = 
mock(ReferenceCollectionProcessor.class);
-
-    dispatch(HttpMethod.GET, uri, processor);
-    verify(processor).readReferenceCollection(any(ODataRequest.class), 
any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.PATCH, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, uri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, uri, processor); 
-    
-    //singleton ref
-    dispatch(HttpMethod.GET, singletonUri, processor);
-    verify(processor, 
times(2)).readReferenceCollection(any(ODataRequest.class), 
-        any(ODataResponse.class), any(UriInfo.class),
-        any(ContentType.class));
-
-    dispatchMethodNotAllowed(HttpMethod.PATCH, singletonUri, processor);
-    dispatchMethodNotAllowed(HttpMethod.PUT, singletonUri, processor);
-    dispatchMethodNotAllowed(HttpMethod.HEAD, singletonUri, processor);
-  }
-
-  @Test
-  public void noRequestContentType() throws Exception {
-    EntityProcessor processor = mock(EntityProcessor.class);
-    final ODataResponse response = dispatch(HttpMethod.POST, "ESAllPrim", null,
-        HttpHeader.CONTENT_TYPE, null, processor);
-    verifyZeroInteractions(processor);
-    assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), 
response.getStatusCode());
-  }
-
-  @Test
-  public void illegalRequestContentType() throws Exception {
-    EntityProcessor processor = mock(EntityProcessor.class);
-    final ODataResponse response = dispatch(HttpMethod.POST, "ESAllPrim", null,
-        HttpHeader.CONTENT_TYPE, "*/*", processor);
-    verifyZeroInteractions(processor);
-    assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), 
response.getStatusCode());
-  }
-
-  @Test
-  public void unsupportedRequestContentType() throws Exception {
-    EntityProcessor processor = mock(EntityProcessor.class);
-    ErrorProcessor errorProcessor = mock(ErrorProcessor.class);
-    dispatch(HttpMethod.POST, "ESAllPrim", null, HttpHeader.CONTENT_TYPE, 
"some/unsupported", errorProcessor);
-    verifyZeroInteractions(processor);
-    verify(errorProcessor).processError(any(ODataRequest.class), 
any(ODataResponse.class),
-        any(ODataServerError.class),
-        any(ContentType.class));
-  }
-
-  private ODataResponse dispatch(final HttpMethod method, final String path, 
final String query,
-      final String headerName, final String headerValue, final Processor 
processor) {
-    ODataRequest request = new ODataRequest();
-    request.setMethod(method);
-    request.setRawBaseUri(BASE_URI);
-    if (path.isEmpty()) {
-      request.setRawRequestUri(BASE_URI);
-    }
-    request.setRawODataPath(path);
-    request.setRawQueryPath(query);
-
-    if (headerName != null) {
-      request.addHeader(headerName, Collections.singletonList(headerValue));
-    }
-
-    if (headerName != HttpHeader.CONTENT_TYPE) {
-      request.addHeader(HttpHeader.CONTENT_TYPE, Collections.singletonList(
-          ContentType.JSON.toContentTypeString()));
-    }
-
-    final ODataNetty odata = ODataNetty.newInstance();
-    final ServiceMetadata metadata = odata.createServiceMetadata(
-        new EdmTechProvider(), Collections.<EdmxReference> emptyList());
-
-    ODataNettyHandlerImpl handler = new ODataNettyHandlerImpl(odata, metadata);
-
-    if (processor != null) {
-      handler.register(processor);
-    }
-
-    final ODataResponse response = handler.process(request);
-    assertNotNull(response);
-    return response;
-  }
-
-  private ODataResponse dispatch(final HttpMethod method, final String path, 
final Processor processor) {
-    return dispatch(method, path, null, null, null, processor);
-  }
-
-  private void dispatchMethodNotAllowed(final HttpMethod method, final String 
path, final Processor processor) {
-    final ODataResponse response = dispatch(method, path, processor);
-    assertEquals(HttpStatusCode.METHOD_NOT_ALLOWED.getStatusCode(), 
response.getStatusCode());
-    assertNotNull(response.getContent());
-  }
-
-  private void dispatchMethodWithError(final HttpMethod method, final String 
path, final Processor processor,
-      final HttpStatusCode statusCode) {
-    final ODataResponse response = dispatch(method, path, processor);
-    assertEquals(statusCode.getStatusCode(), response.getStatusCode());
-    assertNotNull(response.getContent());
-  }
-  
   @Test
   public void testNettyReqResp_GetMethod() {
     MetadataProcessor processor = mock(MetadataProcessor.class);
@@ -1192,7 +87,8 @@ public class ODataNettyHandlerImplTest {
     requestParams.put("contextPath", "/odata.svc");
     handler.processNettyRequest(nettyRequest, nettyResponse, requestParams);
     
-    assertEquals(HttpStatusCode.OK.getStatusCode(), 
nettyResponse.status().OK.code());
+    nettyResponse.status();
+    assertEquals(HttpStatusCode.OK.getStatusCode(), 
HttpResponseStatus.OK.code());
   }
   
   @Test
@@ -1254,6 +150,7 @@ public class ODataNettyHandlerImplTest {
     requestParams.put("contextPath", "/odata.svc");
     handler.processNettyRequest(nettyRequest, nettyResponse, requestParams);
     
-    assertEquals(HttpStatusCode.CREATED.getStatusCode(), 
nettyResponse.status().CREATED.code());
+    nettyResponse.status();
+    assertEquals(HttpStatusCode.CREATED.getStatusCode(), 
HttpResponseStatus.CREATED.code());
   }
 }

Reply via email to