http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
deleted file mode 100644
index eff637f..0000000
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.serializer.json;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.ex.ODataException;
-import org.apache.olingo.commons.api.edm.EdmComplexType;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
-import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
-import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-
-public class ComplexTypeHelper {
-
-  public static EdmComplexType createType() throws ODataException {
-    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
-    EdmProviderImpl edm = new EdmProviderImpl(provider);
-
-    FullQualifiedName baseName = new FullQualifiedName("namespace", 
"BaseTypeName");
-    CsdlComplexType baseComplexType = new CsdlComplexType();
-    List<CsdlProperty> baseProperties = new ArrayList<CsdlProperty>();
-    baseProperties.add(new CsdlProperty().setName("prop1").setType(
-        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    List<CsdlNavigationProperty> baseNavigationProperties = new 
ArrayList<CsdlNavigationProperty>();
-    baseNavigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
-    
baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties)
-        .setNavigationProperties(baseNavigationProperties);
-    when(provider.getComplexType(baseName)).thenReturn(baseComplexType);
-
-    FullQualifiedName name = new FullQualifiedName("namespace", "typeName");
-    CsdlComplexType complexType = new CsdlComplexType().setBaseType(baseName);
-    List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
-    properties.add(new 
CsdlProperty().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    List<CsdlNavigationProperty> navigationProperties = new 
ArrayList<CsdlNavigationProperty>();
-    navigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
-    
complexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(properties)
-        .setNavigationProperties(navigationProperties);
-    when(provider.getComplexType(name)).thenReturn(complexType);
-
-    return new EdmComplexTypeImpl(edm, name, complexType);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java
deleted file mode 100644
index 4be074b..0000000
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.serializer.json;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.ex.ODataException;
-import org.apache.olingo.commons.api.data.ComplexValue;
-import org.apache.olingo.commons.api.data.ContextURL;
-import org.apache.olingo.commons.api.data.Property;
-import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.server.api.serializer.ComplexSerializerOptions;
-import org.junit.Test;
-
-public class ODataJsonSerializerTest {
-  @Test
-  public void testCollectionComplex() throws ODataException, IOException {
-    final List<ComplexValue> col = new ArrayList<ComplexValue>();
-    col.add(getValues(1));
-    col.add(getValues(2));
-    final Property complexCollection = new Property(null, "ComplexCol", 
ValueType.COLLECTION_COMPLEX, col);
-
-    final ODataJsonSerializer serializer = new 
ODataJsonSerializer(ContentType.APPLICATION_JSON);
-    final ComplexSerializerOptions options = ComplexSerializerOptions.with()
-        
.contextURL(ContextURL.with().selectList("ComplexCollection").build()).build();
-    final InputStream in = serializer.complexCollection(null, 
ComplexTypeHelper.createType(),
-        complexCollection, options).getContent();
-    final BufferedReader reader = new BufferedReader(new 
InputStreamReader(in));
-
-    String line;
-    while ((line = reader.readLine()) != null) {
-      if (line.contains("value")) {
-        assertEquals(
-            "{\"@odata.context\":\"$metadata(ComplexCollection)\",\"value\":"
-                + 
"[{\"prop1\":\"test1\",\"prop2\":\"test11\"},{\"prop1\":\"test2\",\"prop2\":\"test22\"}]}",
-            line);
-      }
-    }
-
-  }
-
-  private ComplexValue getValues(final int i) {
-    ComplexValue value = new ComplexValue();
-    value.getValue().add(new Property(null, "prop1", ValueType.PRIMITIVE, 
"test" + i));
-    value.getValue().add(new Property(null, "prop2", ValueType.PRIMITIVE, 
"test" + i + i));
-    return value;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java
index 8f5cb87..febd3eb 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotNull;
 
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.commons.io.IOUtils;
@@ -32,7 +33,6 @@ import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataServerError;
 import org.apache.olingo.server.api.serializer.ODataSerializer;
 import org.apache.olingo.server.api.serializer.SerializerException;
-import org.junit.Before;
 import org.junit.Test;
 
 import com.fasterxml.jackson.databind.JsonNode;
@@ -41,10 +41,9 @@ import com.fasterxml.jackson.databind.node.JsonNodeType;
 
 public class ServerErrorSerializerTest {
 
-  ODataSerializer ser;
+  final ODataSerializer ser;
 
-  @Before
-  public void before() throws Exception {
+  public ServerErrorSerializerTest() throws SerializerException {
     ser = OData.newInstance().createSerializer(ContentType.JSON);
   }
 
@@ -110,10 +109,10 @@ public class ServerErrorSerializerTest {
 
   @Test
   public void verifiedWithJacksonParser() throws Exception {
-    List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>();
-    details.add(new 
ODataErrorDetail().setCode("detailCode").setMessage("detailMessage").setTarget("detailTarget"));
     ODataServerError error =
-        new 
ODataServerError().setCode("Code").setMessage("Message").setTarget("Target").setDetails(details);
+        new 
ODataServerError().setCode("Code").setMessage("Message").setTarget("Target")
+            .setDetails(Collections.singletonList(
+                new 
ODataErrorDetail().setCode("detailCode").setMessage("detailMessage").setTarget("detailTarget")));
     InputStream stream = ser.error(error).getContent();
     JsonNode tree = new ObjectMapper().readTree(stream);
     assertNotNull(tree);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
index 6cf2048..ee53bc3 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
@@ -23,8 +23,6 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
 
 import org.apache.olingo.commons.api.data.ContextURL;
 import org.apache.olingo.commons.api.data.ContextURL.Suffix;
@@ -33,23 +31,18 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
-import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
-import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmString;
+import org.apache.olingo.server.api.OData;
 import org.junit.Test;
 import org.mockito.Mockito;
 
 public class ContextURLBuilderTest {
 
+  private static final URI serviceRoot = URI.create("http://host/service/";);
+
   @Test
   public void buildServiceDocument() {
-    final ContextURL contextURL = ContextURL.with()
-        .serviceRoot(URI.create("http://host/service/";)).build();
-    assertEquals("http://host/service/$metadata";, 
ContextURLBuilder.create(contextURL).toASCIIString());
+    final ContextURL contextURL = 
ContextURL.with().serviceRoot(serviceRoot).build();
+    assertEquals(serviceRoot + "$metadata", 
ContextURLBuilder.create(contextURL).toASCIIString());
   }
 
   @Test
@@ -62,10 +55,10 @@ public class ContextURLBuilderTest {
   public void buildEntitySet() {
     EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class);
     Mockito.when(entitySet.getName()).thenReturn("Customers");
-    final ContextURL contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    final ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .entitySet(entitySet)
         .build();
-    assertEquals("http://host/service/$metadata#Customers";, 
ContextURLBuilder.create(contextURL).toASCIIString());
+    assertEquals(serviceRoot + "$metadata#Customers", 
ContextURLBuilder.create(contextURL).toASCIIString());
   }
 
   @Test
@@ -74,11 +67,11 @@ public class ContextURLBuilderTest {
     Mockito.when(entitySet.getName()).thenReturn("Customers");
     EdmEntityType derivedType = Mockito.mock(EdmEntityType.class);
     Mockito.when(derivedType.getFullQualifiedName()).thenReturn(new 
FullQualifiedName("Model", "VipCustomer"));
-    final ContextURL contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    final ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .entitySet(entitySet)
         .derived(derivedType)
         .build();
-    assertEquals("http://host/service/$metadata#Customers/Model.VipCustomer";,
+    assertEquals(serviceRoot + "$metadata#Customers/Model.VipCustomer",
         ContextURLBuilder.create(contextURL).toASCIIString());
   }
 
@@ -86,30 +79,30 @@ public class ContextURLBuilderTest {
   public void buildEntitySetWithEntitySuffix() {
     EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class);
     Mockito.when(entitySet.getName()).thenReturn("Customers");
-    final ContextURL contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    final ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .entitySet(entitySet)
         .suffix(Suffix.ENTITY)
         .build();
-    assertEquals("http://host/service/$metadata#Customers/$entity";, 
ContextURLBuilder.create(contextURL)
-        .toASCIIString());
+    assertEquals(serviceRoot + "$metadata#Customers/$entity",
+        ContextURLBuilder.create(contextURL).toASCIIString());
   }
 
   @Test
   public void buildEntity() {
     EdmEntityType entityType = mock(EdmEntityType.class);
-    when(entityType.getFullQualifiedName()).thenReturn(new 
FullQualifiedName("namespace.entityType"));
-    ContextURL contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    when(entityType.getFullQualifiedName()).thenReturn(new 
FullQualifiedName("namespace", "entityType"));
+    ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .type(entityType)
         .build();
-    assertEquals("http://host/service/$metadata#namespace.entityType";, 
ContextURLBuilder.create(contextURL)
-        .toASCIIString());
+    assertEquals(serviceRoot + "$metadata#namespace.entityType",
+        ContextURLBuilder.create(contextURL).toASCIIString());
 
-    contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .type(entityType)
         .asCollection()
         .build();
-    
assertEquals("http://host/service/$metadata#Collection(namespace.entityType)", 
ContextURLBuilder.create(contextURL)
-        .toASCIIString());
+    assertEquals(serviceRoot + "$metadata#Collection(namespace.entityType)",
+        ContextURLBuilder.create(contextURL).toASCIIString());
   }
 
   @Test(expected = IllegalArgumentException.class)
@@ -125,12 +118,12 @@ public class ContextURLBuilderTest {
     Mockito.when(entitySet.getName()).thenReturn("Customers");
     EdmEntityType derivedType = Mockito.mock(EdmEntityType.class);
     Mockito.when(derivedType.getFullQualifiedName()).thenReturn(new 
FullQualifiedName("Model", "VipCustomer"));
-    final ContextURL contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    final ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .entitySet(entitySet)
         .derived(derivedType)
         .suffix(Suffix.ENTITY)
         .build();
-    
assertEquals("http://host/service/$metadata#Customers/Model.VipCustomer/$entity";,
+    assertEquals(serviceRoot + "$metadata#Customers/Model.VipCustomer/$entity",
         ContextURLBuilder.create(contextURL).toASCIIString());
   }
 
@@ -138,72 +131,55 @@ public class ContextURLBuilderTest {
   public void buildProperty() {
     EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class);
     Mockito.when(entitySet.getName()).thenReturn("Customers");
-    ContextURL contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .entitySet(entitySet)
         .keyPath("1")
         .navOrPropertyPath("Name")
         .build();
-    assertEquals("http://host/service/$metadata#Customers(1)/Name",
+    assertEquals(serviceRoot + "$metadata#Customers(1)/Name",
         ContextURLBuilder.create(contextURL).toASCIIString());
 
-    contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .entitySet(entitySet)
         .keyPath("one=1,two='two'")
         .navOrPropertyPath("ComplexName")
         .selectList("Part1")
         .build();
-    
assertEquals("http://host/service/$metadata#Customers(one=1,two='two')/ComplexName(Part1)",
+    assertEquals(serviceRoot + 
"$metadata#Customers(one=1,two='two')/ComplexName(Part1)",
         ContextURLBuilder.create(contextURL).toASCIIString());
   }
 
   @Test
   public void buildPrimitiveType() {
-    EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class);
-    Mockito.when(entitySet.getName()).thenReturn("Customers");
-    ContextURL contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
-        .type(EdmString.getInstance())
+    ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot)
+        
.type(OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String))
         .build();
-    assertEquals("http://host/service/$metadata#Edm.String";,
+    assertEquals(serviceRoot + "$metadata#Edm.String",
         ContextURLBuilder.create(contextURL).toASCIIString());
 
-    contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
-        .type(EdmString.getInstance()).asCollection()
+    contextURL = ContextURL.with().serviceRoot(serviceRoot)
+        
.type(OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String)).asCollection()
         .build();
-    assertEquals("http://host/service/$metadata#Collection(Edm.String)",
+    assertEquals(serviceRoot + "$metadata#Collection(Edm.String)",
         ContextURLBuilder.create(contextURL).toString());
   }
 
   @Test
   public void buildComplexType() throws Exception {
-    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
-    EdmProviderImpl edm = new EdmProviderImpl(provider);
-
-    FullQualifiedName baseName = new FullQualifiedName("namespace", 
"BaseTypeName");
-    CsdlComplexType baseComplexType = new CsdlComplexType();
-    List<CsdlProperty> baseProperties = new ArrayList<CsdlProperty>();
-    baseProperties.add(new CsdlProperty().setName("prop1").setType(
-        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    List<CsdlNavigationProperty> baseNavigationProperties = new 
ArrayList<CsdlNavigationProperty>();
-    baseNavigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
-    
baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties)
-        .setNavigationProperties(baseNavigationProperties);
-    when(provider.getComplexType(baseName)).thenReturn(baseComplexType);
-
-    EdmComplexType baseType = new EdmComplexTypeImpl(edm, baseName, 
baseComplexType);
+    EdmComplexType baseType = mock(EdmComplexType.class);
+    when(baseType.getFullQualifiedName()).thenReturn(new 
FullQualifiedName("namespace", "BaseTypeName"));
 
-    EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class);
-    Mockito.when(entitySet.getName()).thenReturn("Customers");
-    ContextURL contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .type(baseType)
         .build();
-    assertEquals("http://host/service/$metadata#namespace.BaseTypeName";,
+    assertEquals(serviceRoot + "$metadata#namespace.BaseTypeName",
         ContextURLBuilder.create(contextURL).toASCIIString());
 
-    contextURL = 
ContextURL.with().serviceRoot(URI.create("http://host/service/";))
+    contextURL = ContextURL.with().serviceRoot(serviceRoot)
         .type(baseType)
         .asCollection()
         .build();
-    
assertEquals("http://host/service/$metadata#Collection(namespace.BaseTypeName)",
+    assertEquals(serviceRoot + "$metadata#Collection(namespace.BaseTypeName)",
         ContextURLBuilder.create(contextURL).toASCIIString());
   }
 
@@ -220,8 +196,8 @@ public class ContextURLBuilderTest {
 
   @Test(expected = IllegalArgumentException.class)
   public void buildReferenceWithEntitySet() {
-    EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class);
-    Mockito.when(entitySet.getName()).thenReturn("Customers");
+    EdmEntitySet entitySet = mock(EdmEntitySet.class);
+    when(entitySet.getName()).thenReturn("Customers");
     
ContextURLBuilder.create(ContextURL.with().entitySet(entitySet).suffix(Suffix.REFERENCE).build());
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
index e750aad..8c6e4ed 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
@@ -35,7 +35,9 @@ import java.util.List;
 import org.apache.commons.io.IOUtils;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.provider.CsdlAction;
@@ -85,7 +87,6 @@ import 
org.apache.olingo.commons.api.edm.provider.annotation.CsdlUrlRef;
 //CHECKSTYLE:ON
 import org.apache.olingo.commons.api.ex.ODataException;
 import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.edmx.EdmxReference;
@@ -130,33 +131,12 @@ public class MetadataDocumentXmlSerializerTest {
 
     InputStream metadata = 
serializer.metadataDocument(serviceMetadata).getContent();
     assertNotNull(metadata);
-    assertEquals("<?xml version='1.0' encoding='UTF-8'?>" +
-        "<edmx:Edmx Version=\"4.0\" 
xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\";>" +
-        "<edmx:DataServices>" +
-        "<Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\"; 
Namespace=\"MyNamespace\"/>" +
-        "</edmx:DataServices>" +
-        "</edmx:Edmx>",
-        IOUtils.toString(metadata));
-  }
-
-  /** Writes simplest (empty) Schema. */
-  @Test
-  public void writeMetadataWithSimpleSchema() throws Exception {
-    EdmSchema schema = mock(EdmSchema.class);
-    when(schema.getNamespace()).thenReturn("MyNamespace");
-    Edm edm = mock(Edm.class);
-    when(edm.getSchemas()).thenReturn(Arrays.asList(schema));
-    ServiceMetadata serviceMetadata = mock(ServiceMetadata.class);
-    when(serviceMetadata.getEdm()).thenReturn(edm);
-
-    InputStream metadata = 
serializer.metadataDocument(serviceMetadata).getContent();
-    assertNotNull(metadata);
-    assertEquals("<?xml version='1.0' encoding='UTF-8'?>" +
-        "<edmx:Edmx Version=\"4.0\" 
xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\";>" +
-        "<edmx:DataServices>" +
-        "<Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\"; 
Namespace=\"MyNamespace\"/>" +
-        "</edmx:DataServices>" +
-        "</edmx:Edmx>",
+    assertEquals("<?xml version='1.0' encoding='UTF-8'?>"
+        + "<edmx:Edmx Version=\"4.0\" 
xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\";>"
+        + "<edmx:DataServices>"
+        + "<Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\"; 
Namespace=\"MyNamespace\"/>"
+        + "</edmx:DataServices>"
+        + "</edmx:Edmx>",
         IOUtils.toString(metadata));
   }
 
@@ -370,17 +350,38 @@ public class MetadataDocumentXmlSerializerTest {
     List<EdmComplexType> complexTypes = new ArrayList<EdmComplexType>();
 
     FullQualifiedName name = new FullQualifiedName("namespace", "ComplexType");
-    CsdlComplexType complexType = new CsdlComplexType();
-    complexType.setAbstract(true);
-    complexType.setName(name.getName());
-    complexType.setOpenType(true);
-    List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
-
-    properties.add(new 
CsdlProperty().setName("prop1").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    properties.add(new 
CsdlProperty().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-
-    complexType.setProperties(properties);
-    EdmComplexTypeImpl c1 = new EdmComplexTypeImpl(edm, name, complexType);
+    EdmComplexType complexType = mock(EdmComplexType.class);
+    when(complexType.isAbstract()).thenReturn(true);
+    when(complexType.getFullQualifiedName()).thenReturn(name);
+    when(complexType.getName()).thenReturn(name.getName());
+    when(complexType.isOpenType()).thenReturn(true);
+
+    final EdmPrimitiveType stringType = 
OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String);
+    when(complexType.getPropertyNames()).thenReturn(Arrays.asList("prop1", 
"prop2"));
+    EdmProperty prop1 = mock(EdmProperty.class);
+    when(prop1.isPrimitive()).thenReturn(true);
+    when(prop1.getType()).thenReturn(stringType);
+    when(prop1.isNullable()).thenReturn(true);
+    when(prop1.getMaxLength()).thenReturn(null);
+    when(prop1.getPrecision()).thenReturn(null);
+    when(prop1.getScale()).thenReturn(null);
+    when(prop1.isUnicode()).thenReturn(true);
+    when(complexType.getStructuralProperty("prop1")).thenReturn(prop1);
+    EdmProperty prop2 = mock(EdmProperty.class);
+    when(prop2.isPrimitive()).thenReturn(true);
+    when(prop2.getType()).thenReturn(stringType);
+    when(prop2.isNullable()).thenReturn(true);
+    when(prop2.getMaxLength()).thenReturn(null);
+    when(prop2.getPrecision()).thenReturn(null);
+    when(prop2.getScale()).thenReturn(null);
+    when(prop2.isUnicode()).thenReturn(true);
+    when(complexType.getStructuralProperty("prop2")).thenReturn(prop2);
+    complexTypes.add(complexType);
+
+    EdmComplexType c1 = mock(EdmComplexType.class);
+    when(c1.getFullQualifiedName()).thenReturn(new 
FullQualifiedName("namespace", "C1"));
+    when(c1.getName()).thenReturn("C1");
+    when(c1.getBaseType()).thenReturn(complexType);
     complexTypes.add(c1);
 
     when(schema.getComplexTypes()).thenReturn(complexTypes);
@@ -418,20 +419,17 @@ public class MetadataDocumentXmlSerializerTest {
 
     @Override
     public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
-      return Arrays.asList(
-          new CsdlAliasInfo().setAlias("Alias").setNamespace(nameSpace)
-          );
+      return Collections.singletonList(new 
CsdlAliasInfo().setAlias("Alias").setNamespace(nameSpace));
     }
 
     @Override
     public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) 
throws ODataException {
-      if ("ENString".equals(enumTypeName.getName())) {
+      if (nameENString.equals(enumTypeName)) {
         return new CsdlEnumType()
-            .setName("ENString")
+            .setName(nameENString.getName())
             .setFlags(true)
             
.setUnderlyingType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName())
-            .setMembers(Arrays.asList(
-                new CsdlEnumMember().setName("String1").setValue("1")));
+            .setMembers(Collections.singletonList(new 
CsdlEnumMember().setName("String1").setValue("1")));
       }
       return null;
     }
@@ -442,15 +440,14 @@ public class MetadataDocumentXmlSerializerTest {
         return new CsdlEntityType()
             .setName("ETAbstract")
             .setAbstract(true)
-            .setProperties(Arrays.asList(propertyString));
+            .setProperties(Collections.singletonList(propertyString));
 
       } else if (entityTypeName.equals(nameETAbstractBase)) {
         return new CsdlEntityType()
             .setName("ETAbstractBase")
             .setBaseType(nameETAbstract)
-            .setKey(Arrays.asList(new 
CsdlPropertyRef().setName("PropertyInt16")))
-            .setProperties(Arrays.asList(
-                propertyInt16_NotNullable));
+            .setKey(Collections.singletonList(new 
CsdlPropertyRef().setName("PropertyInt16")))
+            
.setProperties(Collections.singletonList(propertyInt16_NotNullable));
       }
       return null;
     }
@@ -468,7 +465,6 @@ public class MetadataDocumentXmlSerializerTest {
             .setName("CTTwoPrimBase")
             .setBaseType(nameCTTwoPrim)
             .setProperties(Arrays.asList(propertyInt16_NotNullable, 
propertyString));
-
       }
       return null;
 
@@ -477,14 +473,11 @@ public class MetadataDocumentXmlSerializerTest {
     @Override
     public List<CsdlAction> getActions(final FullQualifiedName actionName) 
throws ODataException {
       if (actionName.equals(nameUARTPrimParam)) {
-        return Arrays.asList(
+        return Collections.singletonList(
             new CsdlAction().setName("UARTPrimParam")
-                .setParameters(Arrays.asList(
+                .setParameters(Collections.singletonList(
                     new 
CsdlParameter().setName("ParameterInt16").setType(nameInt16)))
-
-                .setReturnType(new CsdlReturnType().setType(nameString))
-            );
-
+                .setReturnType(new CsdlReturnType().setType(nameString)));
       }
       return null;
     }
@@ -492,14 +485,11 @@ public class MetadataDocumentXmlSerializerTest {
     @Override
     public List<CsdlFunction> getFunctions(final FullQualifiedName 
functionName) throws ODataException {
       if (functionName.equals(nameUFNRTInt16)) {
-        return Arrays.asList(
+        return Collections.singletonList(
             new CsdlFunction()
                 .setName("UFNRTInt16")
-                .setParameters(new ArrayList<CsdlParameter>())
-                .setReturnType(
-                    new CsdlReturnType().setType(nameInt16))
-            );
-
+                .setParameters(Collections.<CsdlParameter> emptyList())
+                .setReturnType(new CsdlReturnType().setType(nameInt16)));
       }
       return null;
     }
@@ -511,7 +501,6 @@ public class MetadataDocumentXmlSerializerTest {
         return new CsdlEntitySet()
             .setName("ESAllPrim")
             .setType(nameETAbstractBase);
-
       }
       return null;
     }
@@ -523,7 +512,6 @@ public class MetadataDocumentXmlSerializerTest {
         return new CsdlSingleton()
             .setName("SI")
             .setType(nameETAbstractBase);
-
       }
       return null;
     }
@@ -536,7 +524,6 @@ public class MetadataDocumentXmlSerializerTest {
           return new CsdlActionImport()
               .setName("AIRTPrimParam")
               .setAction(nameUARTPrimParam);
-
         }
       }
       return null;
@@ -552,7 +539,6 @@ public class MetadataDocumentXmlSerializerTest {
               .setName("FINRTInt16")
               .setFunction(nameUFNRTInt16)
               .setIncludeInServiceDocument(true);
-
         }
       }
       return null;
@@ -565,52 +551,42 @@ public class MetadataDocumentXmlSerializerTest {
       schema.setNamespace(nameSpace);
       schema.setAlias("Alias");
       schemas.add(schema);
+
       // EnumTypes
-      List<CsdlEnumType> enumTypes = new ArrayList<CsdlEnumType>();
-      schema.setEnumTypes(enumTypes);
-      enumTypes.add(getEnumType(nameENString));
-      // EntityTypes
-      List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>();
-      schema.setEntityTypes(entityTypes);
+      
schema.setEnumTypes(Collections.singletonList(getEnumType(nameENString)));
 
-      entityTypes.add(getEntityType(nameETAbstract));
-      entityTypes.add(getEntityType(nameETAbstractBase));
+      // EntityTypes
+      schema.setEntityTypes(Arrays.asList(
+          getEntityType(nameETAbstract),
+          getEntityType(nameETAbstractBase)));
 
       // ComplexTypes
-      List<CsdlComplexType> complexType = new ArrayList<CsdlComplexType>();
-      schema.setComplexTypes(complexType);
-      complexType.add(getComplexType(nameCTTwoPrim));
-      complexType.add(getComplexType(nameCTTwoPrimBase));
+      schema.setComplexTypes(Arrays.asList(
+          getComplexType(nameCTTwoPrim),
+          getComplexType(nameCTTwoPrimBase)));
 
       // TypeDefinitions
 
       // Actions
-      List<CsdlAction> actions = new ArrayList<CsdlAction>();
-      schema.setActions(actions);
-      actions.addAll(getActions(nameUARTPrimParam));
+      schema.setActions(getActions(nameUARTPrimParam));
 
       // Functions
-      List<CsdlFunction> functions = new ArrayList<CsdlFunction>();
-      schema.setFunctions(functions);
-
-      functions.addAll(getFunctions(nameUFNRTInt16));
+      schema.setFunctions(getFunctions(nameUFNRTInt16));
 
       // EntityContainer
       schema.setEntityContainer(getEntityContainer());
 
       //Terms
-      List<CsdlTerm> terms = new ArrayList<CsdlTerm>();
-      terms.add(getTerm(new FullQualifiedName("ns.term")));
-      terms.add(getTerm(new FullQualifiedName("namespace.Term1")));
-      terms.add(getTerm(new FullQualifiedName("ns.Term2")));
-      terms.add(getTerm(new FullQualifiedName("ns.Term3")));
-      terms.add(getTerm(new FullQualifiedName("ns.Term4")));
-      schema.setTerms(terms);
-      
+      schema.setTerms(Arrays.asList(
+          getTerm(new FullQualifiedName("ns","term")),
+          getTerm(new FullQualifiedName("namespace", "Term1")),
+          getTerm(new FullQualifiedName("ns", "Term2")),
+          getTerm(new FullQualifiedName("ns", "Term3")),
+          getTerm(new FullQualifiedName("ns", "Term4"))));
+
       // Annotationgroups
-      List<CsdlAnnotations> annotationGroups = new 
ArrayList<CsdlAnnotations>();
-      annotationGroups.add(getAnnotationsGroup(new 
FullQualifiedName("Alias.ETAbstract"), "Tablett"));
-      schema.setAnnotationsGroup(annotationGroups);
+      schema.setAnnotationsGroup(Collections.singletonList(
+          getAnnotationsGroup(new FullQualifiedName("Alias", "ETAbstract"), 
"Tablett")));
 
       return schemas;
     }
@@ -630,24 +606,16 @@ public class MetadataDocumentXmlSerializerTest {
       container.setName("container");
 
       // EntitySets
-      List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
-      container.setEntitySets(entitySets);
-      entitySets.add(getEntitySet(nameContainer, "ESAllPrim"));
+      
container.setEntitySets(Collections.singletonList(getEntitySet(nameContainer, 
"ESAllPrim")));
 
       // Singletons
-      List<CsdlSingleton> singletons = new ArrayList<CsdlSingleton>();
-      container.setSingletons(singletons);
-      singletons.add(getSingleton(nameContainer, "SI"));
+      
container.setSingletons(Collections.singletonList(getSingleton(nameContainer, 
"SI")));
 
       // ActionImports
-      List<CsdlActionImport> actionImports = new ArrayList<CsdlActionImport>();
-      container.setActionImports(actionImports);
-      actionImports.add(getActionImport(nameContainer, "AIRTPrimParam"));
+      
container.setActionImports(Collections.singletonList(getActionImport(nameContainer,
 "AIRTPrimParam")));
 
       // FunctionImports
-      List<CsdlFunctionImport> functionImports = new 
ArrayList<CsdlFunctionImport>();
-      container.setFunctionImports(functionImports);
-      functionImports.add(getFunctionImport(nameContainer, "FINRTInt16"));
+      
container.setFunctionImports(Collections.singletonList(getFunctionImport(nameContainer,
 "FINRTInt16")));
 
       return container;
     }
@@ -659,36 +627,36 @@ public class MetadataDocumentXmlSerializerTest {
 
     @Override
     public CsdlTerm getTerm(FullQualifiedName termName) throws ODataException {
-      if (new FullQualifiedName("ns.term").equals(termName)) {
+      if (new FullQualifiedName("ns", "term").equals(termName)) {
         return new CsdlTerm().setType("Edm.String").setName("term");
-        
-      } else if(new FullQualifiedName("namespace.Term1").equals(termName)){
+
+      } else if(new FullQualifiedName("namespace", "Term1").equals(termName)){
         return new CsdlTerm().setType("Edm.String").setName("Term1");
-        
-      } else if(new FullQualifiedName("ns.Term2").equals(termName)){
+
+      } else if(new FullQualifiedName("ns", "Term2").equals(termName)){
         return new CsdlTerm().setType("Edm.String").setName("Term2")
             
.setNullable(false).setDefaultValue("default").setMaxLength(1).setPrecision(2).setScale(3);
-        
-      } else if(new FullQualifiedName("ns.Term3").equals(termName)){
+
+      } else if(new FullQualifiedName("ns", "Term3").equals(termName)){
         return new CsdlTerm().setType("Edm.String").setName("Term3")
             .setAppliesTo(Arrays.asList("Property", "EntitySet", "Schema"));
-        
-      } else if(new FullQualifiedName("ns.Term4").equals(termName)){
+
+      } else if(new FullQualifiedName("ns", "Term4").equals(termName)){
         return new 
CsdlTerm().setType("Edm.String").setName("Term4").setBaseTerm("namespace.Term1");
-        
+
       }
       return null;
     }
 
     @Override
     public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName, 
String qualifier) throws ODataException {
-      if (new FullQualifiedName("Alias.ETAbstract").equals(targetName) && 
"Tablett".equals(qualifier)) {
+      if (new FullQualifiedName("Alias", "ETAbstract").equals(targetName) && 
"Tablett".equals(qualifier)) {
         CsdlAnnotations annoGroup = new CsdlAnnotations();
         annoGroup.setTarget("Alias.ETAbstract");
         annoGroup.setQualifier("Tablett");
 
-        List<CsdlAnnotation> innerAnnotations = new 
ArrayList<CsdlAnnotation>();
-        innerAnnotations.add(new CsdlAnnotation().setTerm("ns.term"));
+        List<CsdlAnnotation> innerAnnotations = Collections.singletonList(
+            new CsdlAnnotation().setTerm("ns.term"));
 
         List<CsdlAnnotation> annotationsList = new ArrayList<CsdlAnnotation>();
         annoGroup.setAnnotations(annotationsList);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java
index aea1fdb..907228f 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java
@@ -21,8 +21,7 @@ package org.apache.olingo.server.core.serializer.xml;
 import static org.junit.Assert.assertEquals;
 
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Collections;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.olingo.commons.api.ex.ODataErrorDetail;
@@ -31,15 +30,13 @@ import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataServerError;
 import org.apache.olingo.server.api.serializer.ODataSerializer;
 import org.apache.olingo.server.api.serializer.SerializerException;
-import org.junit.Before;
 import org.junit.Test;
 
 public class ServerErrorXmlSerializerTest {
 
-  ODataSerializer ser;
+  final ODataSerializer ser;
 
-  @Before
-  public void before() throws Exception {
+  public ServerErrorXmlSerializerTest() throws SerializerException {
     ser = OData.newInstance().createSerializer(ContentType.APPLICATION_XML);
   }
 
@@ -53,7 +50,7 @@ public class ServerErrorXmlSerializerTest {
         + "<error xmlns=\"http://docs.oasis-open.org/odata/ns/metadata\";>"
         + "<code>0</code>"
         + "<message>ErrorMessage</message>"
-        + "</error>", 
+        + "</error>",
         jsonString);
   }
 
@@ -64,18 +61,15 @@ public class ServerErrorXmlSerializerTest {
 
   @Test
   public void singleDetailNothingSet() throws Exception {
-    ODataErrorDetail detail = new ODataErrorDetail();
-    detail.setCode("detail code");
-    detail.setMessage("detail message");
-    
-    List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>();
-    details.add(detail);
-    
-    ODataServerError error = new ODataServerError().setDetails(details);
-    error.setCode("code");
-    error.setMessage("err message");
-    error.setTarget("target");
-    
+    ODataServerError error = new ODataServerError()
+        .setCode("code")
+        .setMessage("err message")
+        .setTarget("target")
+        .setDetails(Collections.singletonList(
+            new ODataErrorDetail()
+                .setCode("detail code")
+                .setMessage("detail message")));
+
     InputStream stream = ser.error(error).getContent();
     String jsonString = IOUtils.toString(stream);
     assertEquals("<?xml version='1.0' encoding='UTF-8'?>"

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java
index cf56edf..5e3499c 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java
@@ -25,11 +25,13 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmBindingTarget;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
+import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.etag.CustomETagSupport;
 import org.apache.olingo.server.api.etag.PreconditionException;
 import org.apache.olingo.server.api.uri.UriInfo;
@@ -47,7 +49,8 @@ import org.mockito.stubbing.Answer;
 
 public class PreconditionsValidatorTest {
 
-  private static final Edm edm = new EdmProviderImpl(new EdmTechProvider());
+  private static final Edm edm = OData.newInstance().createServiceMetadata(
+      new EdmTechProvider(), Collections.<EdmxReference> emptyList()).getEdm();
 
   // -------------- POSITIVE TESTS 
--------------------------------------------------------------------------------
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
index fbaf085..c5fcfe2 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
@@ -41,12 +41,11 @@ import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ValueType;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.provider.CsdlMapping;
 import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmDate;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmDateTimeOffset;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
 import org.apache.olingo.server.api.deserializer.ODataDeserializer;
@@ -571,13 +570,15 @@ public class ODataJsonDeserializerEntityTest extends 
AbstractODataDeserializerTe
     EdmProperty propertyDate = mock(EdmProperty.class);
     when(propertyDate.getName()).thenReturn("PropertyDate");
     when(propertyDate.getMapping()).thenReturn(mapping);
-    when(propertyDate.getType()).thenReturn(new EdmDate());
+    when(propertyDate.getType()).thenReturn(
+        
OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Date));
     when(entityType.getProperty("PropertyDate")).thenReturn(propertyDate);
 
     EdmProperty propertyDateTimeOffset = mock(EdmProperty.class);
     
when(propertyDateTimeOffset.getName()).thenReturn("PropertyDateTimeOffset");
     when(propertyDateTimeOffset.getMapping()).thenReturn(mapping);
-    when(propertyDateTimeOffset.getType()).thenReturn(new EdmDateTimeOffset());
+    when(propertyDateTimeOffset.getType()).thenReturn(
+        
OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.DateTimeOffset));
     
when(entityType.getProperty("PropertyDateTimeOffset")).thenReturn(propertyDateTimeOffset);
 
     String entityString =

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java
index 8b9431b..a257eaa 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java
@@ -32,12 +32,11 @@ import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntitySet;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmBinary;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmDate;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmDateTimeOffset;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmTimeOfDay;
+import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.deserializer.ODataDeserializer;
 import 
org.apache.olingo.server.core.deserializer.AbstractODataDeserializerTest;
 import org.custommonkey.xmlunit.XMLUnit;
@@ -59,21 +58,9 @@ public class ODataXmlDeserializerTest extends 
AbstractODataDeserializerTest {
     XMLUnit.setCompareUnmatched(false);
   }
 
-  protected byte[] edmBinary(String value) throws EdmPrimitiveTypeException {
-    return EdmBinary.getInstance().valueOfString(value, true, null, null, 
null, true,
-        byte[].class);
-  }
-  protected Object edmDate(String value) throws EdmPrimitiveTypeException {
-    return EdmDate.getInstance().valueOfString(value, true, null, null, null, 
true,
-        EdmDate.getInstance().getDefaultType());
-  }
-  protected Object edmDateTimeOffset(String value) throws 
EdmPrimitiveTypeException {
-    return EdmDateTimeOffset.getInstance().valueOfString(value, true, null, 
null, null, true, 
-        EdmDateTimeOffset.getInstance().getDefaultType());
-  }  
-  protected Object edmTimeOfDay(String value) throws EdmPrimitiveTypeException 
{
-    return EdmTimeOfDay.getInstance().valueOfString(value, true, null, null, 
null, true, 
-        EdmTimeOfDay.getInstance().getDefaultType());
+  protected Object valueOf(final String value, final EdmPrimitiveTypeKind 
kind) throws EdmPrimitiveTypeException {
+    final EdmPrimitiveType type = 
OData.newInstance().createPrimitiveTypeInstance(kind);
+    return type.valueOfString(value, true, null, null, null, true, 
type.getDefaultType());
   }
 
   @Test
@@ -131,14 +118,17 @@ public class ODataXmlDeserializerTest extends 
AbstractODataDeserializerTest {
     Assert.assertEquals(1.79E20F, 
result.getProperty("PropertySingle").asPrimitive());
     Assert.assertEquals(-1.79E19, 
result.getProperty("PropertyDouble").asPrimitive());
     Assert.assertEquals(BigDecimal.valueOf(34), 
result.getProperty("PropertyDecimal").asPrimitive());
-    Assert.assertArrayEquals(edmBinary("ASNFZ4mrze8="), (byte[]) 
result.getProperty("PropertyBinary").asPrimitive());
-    Assert.assertEquals(edmDate("2012-12-03"), 
result.getProperty("PropertyDate").asPrimitive());
-    Assert.assertEquals(edmDateTimeOffset("2012-12-03T07:16:23Z"), 
result.getProperty("PropertyDateTimeOffset")
-        .asPrimitive());
+    Assert.assertArrayEquals((byte[]) valueOf("ASNFZ4mrze8=", 
EdmPrimitiveTypeKind.Binary),
+        (byte[]) result.getProperty("PropertyBinary").asPrimitive());
+    Assert.assertEquals(valueOf("2012-12-03", EdmPrimitiveTypeKind.Date),
+        result.getProperty("PropertyDate").asPrimitive());
+    Assert.assertEquals(valueOf("2012-12-03T07:16:23Z", 
EdmPrimitiveTypeKind.DateTimeOffset),
+        result.getProperty("PropertyDateTimeOffset").asPrimitive());
     Assert.assertEquals(BigDecimal.valueOf(6), 
result.getProperty("PropertyDuration").asPrimitive());
     
Assert.assertEquals(UUID.fromString("01234567-89ab-cdef-0123-456789abcdef"),
         result.getProperty("PropertyGuid").asPrimitive());
-    Assert.assertEquals(edmTimeOfDay("03:26:05"), 
result.getProperty("PropertyTimeOfDay").asPrimitive());
+    Assert.assertEquals(valueOf("03:26:05", EdmPrimitiveTypeKind.TimeOfDay),
+        result.getProperty("PropertyTimeOfDay").asPrimitive());
   }
 
   @Test
@@ -198,14 +188,17 @@ public class ODataXmlDeserializerTest extends 
AbstractODataDeserializerTest {
     Assert.assertEquals(1.79E20F, 
result.getProperty("PropertySingle").asPrimitive());
     Assert.assertEquals(-1.79E19, 
result.getProperty("PropertyDouble").asPrimitive());
     Assert.assertEquals(BigDecimal.valueOf(34), 
result.getProperty("PropertyDecimal").asPrimitive());
-    Assert.assertArrayEquals(edmBinary("ASNFZ4mrze8="), (byte[]) 
result.getProperty("PropertyBinary").asPrimitive());
-    Assert.assertEquals(edmDate("2012-12-03"), 
result.getProperty("PropertyDate").asPrimitive());
-    Assert.assertEquals(edmDateTimeOffset("2012-12-03T07:16:23Z"), 
result.getProperty("PropertyDateTimeOffset")
-        .asPrimitive());
+    Assert.assertArrayEquals((byte[]) valueOf("ASNFZ4mrze8=", 
EdmPrimitiveTypeKind.Binary),
+        (byte[]) result.getProperty("PropertyBinary").asPrimitive());
+    Assert.assertEquals(valueOf("2012-12-03", EdmPrimitiveTypeKind.Date),
+        result.getProperty("PropertyDate").asPrimitive());
+    Assert.assertEquals(valueOf("2012-12-03T07:16:23Z", 
EdmPrimitiveTypeKind.DateTimeOffset),
+        result.getProperty("PropertyDateTimeOffset").asPrimitive());
     Assert.assertEquals(BigDecimal.valueOf(6), 
result.getProperty("PropertyDuration").asPrimitive());
     
Assert.assertEquals(UUID.fromString("01234567-89ab-cdef-0123-456789abcdef"),
         result.getProperty("PropertyGuid").asPrimitive());
-    Assert.assertEquals(edmTimeOfDay("03:26:05"), 
result.getProperty("PropertyTimeOfDay").asPrimitive());
+    Assert.assertEquals(valueOf("03:26:05", EdmPrimitiveTypeKind.TimeOfDay),
+        result.getProperty("PropertyTimeOfDay").asPrimitive());
   }  
 
   @Test
@@ -477,9 +470,10 @@ public class ODataXmlDeserializerTest extends 
AbstractODataDeserializerTest {
     Entity inline = navLink.getInlineEntity();
     Assert.assertEquals(1, inline.getProperties().size());
     Assert.assertEquals(2, inline.getNavigationBindings().size());
-    Assert.assertEquals(edmDate("2012-12-03"), 
inline.getProperty("PropertyDate").asPrimitive());
+    Assert.assertEquals(valueOf("2012-12-03", EdmPrimitiveTypeKind.Date),
+        inline.getProperty("PropertyDate").asPrimitive());
   } 
-  
+
   @Test
   public void primitiveProperty() throws Exception {
     final EdmEntitySet edmEntitySet = 
entityContainer.getEntitySet("ESAllPrim");

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
index b655e49..b8e8a07 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
@@ -50,7 +50,6 @@ public class MetadataDocumentTest {
 
     final String metadata = IOUtils.toString(
         
odata.createSerializer(ContentType.APPLICATION_XML).metadataDocument(serviceMetadata).getContent());
-    System.out.println(metadata);
     assertNotNull(metadata);
     assertThat(metadata, containsString("<edmx:Reference Uri=\"" + 
CORE_VOCABULARY + "\">"
             + "<edmx:Include Namespace=\"Org.OData.Core.V1\" Alias=\"Core\"/>" 
+ "</edmx:Reference>"));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java
index 9448b40..dc90901 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java
@@ -22,12 +22,14 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
-import org.apache.olingo.commons.api.ex.ODataRuntimeException;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
+import org.apache.olingo.commons.api.ex.ODataRuntimeException;
+import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.uri.UriInfoAll;
 import org.apache.olingo.server.api.uri.UriInfoBatch;
 import org.apache.olingo.server.api.uri.UriInfoCrossjoin;
@@ -51,13 +53,14 @@ import 
org.apache.olingo.server.core.uri.queryoption.SelectOptionImpl;
 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.apache.olingo.server.core.uri.testutil.EdmTechTestProvider;
+import org.apache.olingo.server.tecsvc.provider.EdmTechProvider;
 import org.apache.olingo.server.tecsvc.provider.EntityTypeProvider;
 import org.junit.Test;
 
 public class UriInfoImplTest {
 
-  Edm edm = new EdmProviderImpl(new EdmTechTestProvider());
+  private static final Edm edm = OData.newInstance().createServiceMetadata(
+      new EdmTechProvider(), Collections.<EdmxReference> emptyList()).getEdm();
 
   @Test
   public void testKind() {
@@ -154,7 +157,7 @@ public class UriInfoImplTest {
     CustomQueryOptionImpl customOption1 = new CustomQueryOptionImpl();
     customOption1.setText("B");
 
-    QueryOptionImpl queryOption = new QueryOptionImpl();
+    QueryOptionImpl queryOption = new CustomQueryOptionImpl();
 
     queryOptions.add(expand.setName(""));
     queryOptions.add(filter.setName(""));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
index cad1458..27b879d 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
@@ -19,40 +19,42 @@
 package org.apache.olingo.server.core.uri;
 
 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.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.Collections;
 
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmActionImport;
+import org.apache.olingo.commons.api.edm.EdmComplexType;
+import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
+import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.EdmType;
-import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl;
-import org.apache.olingo.commons.core.edm.EdmEntitySetImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.apache.olingo.commons.core.edm.EdmSingletonImpl;
-import 
org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
+import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.edmx.EdmxReference;
+import org.apache.olingo.server.api.uri.UriParameter;
 import org.apache.olingo.server.api.uri.UriResourceKind;
 import org.apache.olingo.server.core.uri.queryoption.expression.ExpressionImpl;
 import org.apache.olingo.server.core.uri.queryoption.expression.LiteralImpl;
-import org.apache.olingo.server.core.uri.testutil.EdmTechTestProvider;
 import org.apache.olingo.server.tecsvc.provider.ActionProvider;
 import org.apache.olingo.server.tecsvc.provider.ComplexTypeProvider;
+import org.apache.olingo.server.tecsvc.provider.EdmTechProvider;
 import org.apache.olingo.server.tecsvc.provider.EntityTypeProvider;
 import org.junit.Test;
 
 public class UriResourceImplTest {
 
-  Edm edm = new EdmProviderImpl(new EdmTechTestProvider());
+  private static final Edm edm = OData.newInstance().createServiceMetadata(
+      new EdmTechProvider(), Collections.<EdmxReference> emptyList()).getEdm();
 
   @Test
   public void testUriParameterImpl() {
@@ -88,13 +90,13 @@ public class UriResourceImplTest {
     impl.setActionImport(actionImport);
     assertEquals(actionImport, impl.getActionImport());
     assertEquals(actionImport.getUnboundAction(), impl.getAction());
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     assertEquals("AIRTCTTwoPrimParam", impl.toString());
     assertEquals(actionImport.getUnboundAction().getReturnType().getType(), 
impl.getType());
 
     actionImport = edm.getEntityContainer(null).getActionImport("AIRT");
     impl.setActionImport(actionImport);
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     assertNull(impl.getType());
   }
 
@@ -107,10 +109,10 @@ public class UriResourceImplTest {
     impl.setExpression(expression);
     impl.setLamdaVariable("A");
 
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     assertEquals(expression, impl.getExpression());
     assertEquals("A", impl.getLambdaVariable());
-    
assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean), 
impl.getType());
+    
assertEquals(OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Boolean),
 impl.getType());
     assertEquals("all", impl.toString());
   }
 
@@ -123,10 +125,10 @@ public class UriResourceImplTest {
     impl.setExpression(expression);
     impl.setLamdaVariable("A");
 
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     assertEquals(expression, impl.getExpression());
     assertEquals("A", impl.getLambdaVariable());
-    
assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean), 
impl.getType());
+    
assertEquals(OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Boolean),
 impl.getType());
     assertEquals("any", impl.toString());
   }
 
@@ -141,13 +143,12 @@ public class UriResourceImplTest {
 
     assertEquals(property, impl.getProperty());
     assertEquals(property.getName(), impl.toString());
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     assertEquals(property.getType(), impl.getType());
     assertEquals(property.getType(), impl.getComplexType());
     impl.getComplexType();
 
-    EdmComplexTypeImpl complexTypeImplType =
-        (EdmComplexTypeImpl) 
edm.getComplexType(ComplexTypeProvider.nameCTBasePrimCompNav);
+    EdmComplexType complexTypeImplType = 
edm.getComplexType(ComplexTypeProvider.nameCTBasePrimCompNav);
 
     impl.setTypeFilter(complexTypeImplType);
     assertEquals(complexTypeImplType, impl.getTypeFilter());
@@ -167,7 +168,7 @@ public class UriResourceImplTest {
 
     assertEquals(property, impl.getProperty());
     assertEquals(property.getName(), impl.toString());
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     assertEquals(property.getType(), impl.getType());
   }
 
@@ -183,7 +184,7 @@ public class UriResourceImplTest {
     UriResourceEntitySetImpl impl = new UriResourceEntitySetImpl();
     assertEquals(UriResourceKind.entitySet, impl.getKind());
 
-    EdmEntitySetImpl entitySet = (EdmEntitySetImpl) 
edm.getEntityContainer(null).getEntitySet("ESAllPrim");
+    EdmEntitySet entitySet = 
edm.getEntityContainer(null).getEntitySet("ESAllPrim");
     impl.setEntitSet(entitySet);
 
     assertEquals("ESAllPrim", impl.toString());
@@ -194,9 +195,9 @@ public class UriResourceImplTest {
     impl.getEntityType();
 
     // is Collection
-    assertEquals(true, impl.isCollection());
-    impl.setKeyPredicates(new ArrayList<UriParameterImpl>());
-    assertEquals(false, impl.isCollection());
+    assertTrue(impl.isCollection());
+    impl.setKeyPredicates(Collections.<UriParameter> emptyList());
+    assertFalse(impl.isCollection());
   }
 
   @Test
@@ -207,19 +208,19 @@ public class UriResourceImplTest {
 
     // function
     EdmFunction function = 
edm.getEntityContainer(null).getFunctionImport("FINRTInt16")
-        .getUnboundFunction(new ArrayList<String>());
+        .getUnboundFunction(Collections.<String> emptyList());
     assertNotNull(function);
     impl.setFunction(function);
 
     assertEquals(function, impl.getFunction());
     assertEquals("UFNRTInt16", impl.toString());
     assertEquals(function.getReturnType().getType(), impl.getType());
-    assertEquals(false, impl.isParameterListFilled());
+    assertFalse(impl.isParameterListFilled());
 
     // function import
     impl = new UriResourceFunctionImpl();
     EdmFunctionImport functionImport = 
edm.getEntityContainer(null).getFunctionImport("FINRTInt16");
-    impl.setFunctionImport(functionImport, new ArrayList<UriParameterImpl>());
+    impl.setFunctionImport(functionImport, Collections.<UriParameter> 
emptyList());
     assertEquals(functionImport, impl.getFunctionImport());
     assertEquals("FINRTInt16", impl.toString());
 
@@ -227,37 +228,31 @@ public class UriResourceImplTest {
     impl = new UriResourceFunctionImpl();
     functionImport = 
edm.getEntityContainer(null).getFunctionImport("FICRTCollESTwoKeyNavParam");
     assertNotNull(function);
-    UriParameterImpl parameter = new 
UriParameterImpl().setName("ParameterInt16");
-    impl.setFunctionImport(functionImport, Arrays.asList(parameter));
+    UriParameter parameter = new UriParameterImpl().setName("ParameterInt16");
+    impl.setFunctionImport(functionImport, 
Collections.singletonList(parameter));
     assertEquals("FICRTCollESTwoKeyNavParam", impl.toString());
 
-    
impl.setFunction(functionImport.getUnboundFunction(Arrays.asList("ParameterInt16")));
-    assertEquals(true, impl.isCollection());
-    impl.setKeyPredicates(new ArrayList<UriParameterImpl>());
-    assertEquals(false, impl.isCollection());
+    
impl.setFunction(functionImport.getUnboundFunction(Collections.singletonList("ParameterInt16")));
+    assertTrue(impl.isCollection());
+    impl.setKeyPredicates(Collections.<UriParameter> emptyList());
+    assertFalse(impl.isCollection());
 
     assertEquals(parameter, impl.getParameters().get(0));
-    assertEquals(true, impl.isParameterListFilled());
+    assertTrue(impl.isParameterListFilled());
   }
 
   @Test
   public void testUriResourceImplKeyPred() {
+    final EdmEntityType entityType = 
edm.getEntityType(EntityTypeProvider.nameETTwoKeyNav);
     class Mock extends UriResourceWithKeysImpl {
 
-      EdmType type;
-
       public Mock() {
         super(UriResourceKind.action);
       }
 
       @Override
       public EdmType getType() {
-        return type;
-      }
-
-      public Mock setType(final EdmType type) {
-        this.type = type;
-        return this;
+        return entityType;
       }
 
       @Override
@@ -266,22 +261,15 @@ public class UriResourceImplTest {
       }
 
       @Override
-      public String toString() {
-        return getSegmentValue();
-      }
-
-      @Override
       public String getSegmentValue() {
         return "mock";
       }
     }
 
     Mock impl = new Mock();
-    EdmEntityType entityType = 
edm.getEntityType(EntityTypeProvider.nameETTwoKeyNav);
     EdmEntityType entityTypeBaseColl = 
edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav);
     EdmEntityType entityTypeBaseEntry = 
edm.getEntityType(EntityTypeProvider.nameETTwoBaseTwoKeyNav);
 
-    impl.setType(entityType);
     assertEquals(entityType, impl.getType());
     assertEquals("mock", impl.toString(false));
     assertEquals("mock", impl.toString(true));
@@ -299,7 +287,6 @@ public class UriResourceImplTest {
 
     // set entry
     impl = new Mock();
-    impl.setType(entityType);
     impl.setEntryTypeFilter(entityTypeBaseEntry);
     assertEquals(entityTypeBaseEntry, impl.getTypeFilterOnEntry());
     assertEquals("mock", impl.toString(false));
@@ -307,35 +294,29 @@ public class UriResourceImplTest {
 
     // set collection
     impl = new Mock();
-    impl.setType(entityType);
     impl.setCollectionTypeFilter(entityTypeBaseColl);
     assertEquals(entityTypeBaseColl, impl.getTypeFilterOnCollection());
     assertEquals("mock", impl.toString(false));
     assertEquals("mock/olingo.odata.test1.ETBaseTwoKeyNav", 
impl.toString(true));
 
-    impl = new Mock();
-    UriParameterImpl parameter = new 
UriParameterImpl().setName("ParameterInt16");
-    List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>();
-    keyPredicates.add(parameter);
-
-    impl.setKeyPredicates(keyPredicates);
+    impl.setKeyPredicates(
+        Collections.singletonList(
+            (UriParameter) new UriParameterImpl().setName("ParameterInt16")));
     assertNotNull(null, impl.getKeyPredicates());
-
   }
 
   @Test
   public void testUriResourceImplTyped() {
+    final EdmEntityType entityType = 
edm.getEntityType(EntityTypeProvider.nameETTwoKeyNav);
     class Mock extends UriResourceTypedImpl {
 
-      EdmType type;
-
       public Mock() {
         super(UriResourceKind.action);
       }
 
       @Override
       public EdmType getType() {
-        return type;
+        return entityType;
       }
 
       @Override
@@ -343,39 +324,23 @@ public class UriResourceImplTest {
         return false;
       }
 
-      public Mock setType(final EdmType type) {
-        this.type = type;
-        return this;
-      }
-      
       @Override
       public String getSegmentValue() {
         return "mock";
       }
-
-      @Override
-      public String toString() {
-        return getSegmentValue();
-      }
-
     }
 
     Mock impl = new Mock();
-    EdmEntityType entityType = 
edm.getEntityType(EntityTypeProvider.nameETTwoKeyNav);
     EdmEntityType entityTypeBaseColl = 
edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav);
     edm.getEntityType(EntityTypeProvider.nameETTwoBaseTwoKeyNav);
 
-    impl.setType(entityType);
-    assertEquals("mock", impl.toString());
     assertEquals("mock", impl.toString(true));
     assertEquals("mock", impl.toString(false));
 
     impl.setTypeFilter(entityTypeBaseColl);
     assertEquals(entityTypeBaseColl, impl.getTypeFilter());
-    assertEquals("mock", impl.toString());
     assertEquals("mock/olingo.odata.test1.ETBaseTwoKeyNav", 
impl.toString(true));
     assertEquals("mock", impl.toString(false));
-    //
   }
 
   @Test
@@ -389,15 +354,12 @@ public class UriResourceImplTest {
     impl.setType(entityType);
     assertEquals(entityType, impl.getType());
 
-    UriParameterImpl parameter = new 
UriParameterImpl().setName("ParameterInt16");
-    List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>();
-    keyPredicates.add(parameter);
-
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     impl.setCollection(true);
-    assertEquals(true, impl.isCollection());
-    impl.setKeyPredicates(keyPredicates);
-    assertEquals(false, impl.isCollection());
+    assertTrue(impl.isCollection());
+    impl.setKeyPredicates(Collections.singletonList(
+        (UriParameter) new UriParameterImpl().setName("ParameterInt16")));
+    assertFalse(impl.isCollection());
   }
 
   @Test
@@ -415,13 +377,10 @@ public class UriResourceImplTest {
     assertEquals("NavPropertyETKeyNavMany", impl.toString());
     assertEquals(property.getType(), impl.getType());
 
-    UriParameterImpl parameter = new 
UriParameterImpl().setName("ParameterInt16");
-    List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>();
-    keyPredicates.add(parameter);
-
-    assertEquals(true, impl.isCollection());
-    impl.setKeyPredicates(keyPredicates);
-    assertEquals(false, impl.isCollection());
+    assertTrue(impl.isCollection());
+    impl.setKeyPredicates(Collections.singletonList(
+        (UriParameter) new UriParameterImpl().setName("ParameterInt16")));
+    assertFalse(impl.isCollection());
   }
 
   @Test
@@ -442,15 +401,12 @@ public class UriResourceImplTest {
     impl.setType(entityType);
     assertEquals(entityType, impl.getType());
 
-    UriParameterImpl parameter = new 
UriParameterImpl().setName("ParameterInt16");
-    List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>();
-    keyPredicates.add(parameter);
-
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     impl.setCollection(true);
-    assertEquals(true, impl.isCollection());
-    impl.setKeyPredicates(keyPredicates);
-    assertEquals(false, impl.isCollection());
+    assertTrue(impl.isCollection());
+    impl.setKeyPredicates(Collections.singletonList(
+        (UriParameter) new UriParameterImpl().setName("ParameterInt16")));
+    assertFalse(impl.isCollection());
   }
 
   @Test
@@ -458,7 +414,7 @@ public class UriResourceImplTest {
     UriResourceSingletonImpl impl = new UriResourceSingletonImpl();
     assertEquals(UriResourceKind.singleton, impl.getKind());
 
-    EdmSingletonImpl singleton = (EdmSingletonImpl) 
edm.getEntityContainer(null).getSingleton("SINav");
+    EdmSingleton singleton = 
edm.getEntityContainer(null).getSingleton("SINav");
     EdmEntityType entityTypeBaseColl = 
edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav);
     impl.setSingleton(singleton);
 
@@ -473,7 +429,7 @@ public class UriResourceImplTest {
     assertEquals(entityTypeBaseColl, impl.getEntityTypeFilter());
 
     // is Collection
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
   }
 
   @Test
@@ -495,9 +451,9 @@ public class UriResourceImplTest {
     assertEquals("A", impl.toString());
     assertEquals(entityType, impl.getType());
     assertEquals("A", impl.getVariableName());
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     impl.setCollection(true);
-    assertEquals(true, impl.isCollection());
+    assertTrue(impl.isCollection());
   }
 
   @Test
@@ -510,15 +466,11 @@ public class UriResourceImplTest {
     assertEquals("olingo.odata.test1.ETTwoKeyNav", impl.toString());
     assertEquals(entityType, impl.getType());
 
-    UriParameterImpl parameter = new 
UriParameterImpl().setName("ParameterInt16");
-    List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>();
-    keyPredicates.add(parameter);
-
-    assertEquals(false, impl.isCollection());
+    assertFalse(impl.isCollection());
     impl.setCollection(true);
-    assertEquals(true, impl.isCollection());
-    impl.setKeyPredicates(keyPredicates);
-    assertEquals(false, impl.isCollection());
-
+    assertTrue(impl.isCollection());
+    impl.setKeyPredicates(Collections.singletonList(
+        (UriParameter) new UriParameterImpl().setName("ParameterInt16")));
+    assertFalse(impl.isCollection());
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java
index 3299a92..b24f379 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java
@@ -23,7 +23,14 @@ import java.util.Arrays;
 import java.util.Collections;
 
 import org.apache.olingo.commons.api.edm.Edm;
+import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+import org.apache.olingo.commons.api.edm.EdmEntitySet;
+import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
+import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmProperty;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataApplicationException;
@@ -36,17 +43,18 @@ import 
org.apache.olingo.server.api.uri.queryoption.expression.MethodKind;
 import org.apache.olingo.server.core.uri.parser.UriParserException;
 import 
org.apache.olingo.server.core.uri.parser.UriParserSemanticException.MessageKeys;
 import org.apache.olingo.server.core.uri.parser.UriParserSyntaxException;
-import org.apache.olingo.server.core.uri.testutil.EdmTechTestProvider;
 import org.apache.olingo.server.core.uri.testutil.FilterValidator;
 import org.apache.olingo.server.core.uri.testutil.TestUriValidator;
 import org.apache.olingo.server.core.uri.validator.UriValidationException;
 import org.apache.olingo.server.tecsvc.provider.ComplexTypeProvider;
 import org.apache.olingo.server.tecsvc.provider.ContainerProvider;
+import org.apache.olingo.server.tecsvc.provider.EdmTechProvider;
 import org.apache.olingo.server.tecsvc.provider.EntityTypeProvider;
 import org.apache.olingo.server.tecsvc.provider.EnumTypeProvider;
 import org.apache.olingo.server.tecsvc.provider.PropertyProvider;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 public class TestFullResourcePath {
 
@@ -55,7 +63,7 @@ public class TestFullResourcePath {
   private final FilterValidator testFilter;
 
   public TestFullResourcePath() {
-    final Edm edm = oData.createServiceMetadata(new EdmTechTestProvider(), 
Collections.<EdmxReference> emptyList())
+    final Edm edm = oData.createServiceMetadata(new EdmTechProvider(), 
Collections.<EdmxReference> emptyList())
         .getEdm();
     testUri = new TestUriValidator().setEdm(edm);
     testFilter = new FilterValidator().setEdm(edm);
@@ -5542,15 +5550,42 @@ public class TestFullResourcePath {
   
   @Test
   public void navPropertySameNameAsEntitySet() throws Exception {
-    testUri.run("ESNavProp(1)/ESNavProp(2)/ESNavProp(3)/ESNavProp")
+    final String namespace = "namespace";
+    final String entityTypeName = "ETNavProp";
+    final FullQualifiedName nameETNavProp = new FullQualifiedName(namespace, 
entityTypeName);
+    final String entitySetName = "ESNavProp";
+    final String keyPropertyName = "a";
+    EdmProperty keyProperty = Mockito.mock(EdmProperty.class);
+    
Mockito.when(keyProperty.getType()).thenReturn(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Byte));
+    EdmKeyPropertyRef keyPropertyRef = Mockito.mock(EdmKeyPropertyRef.class);
+    Mockito.when(keyPropertyRef.getName()).thenReturn(keyPropertyName);
+    Mockito.when(keyPropertyRef.getProperty()).thenReturn(keyProperty);
+    EdmNavigationProperty navProperty = 
Mockito.mock(EdmNavigationProperty.class);
+    Mockito.when(navProperty.getName()).thenReturn(entitySetName);
+    Mockito.when(navProperty.isCollection()).thenReturn(true);
+    EdmEntityType entityType = Mockito.mock(EdmEntityType.class);
+    Mockito.when(entityType.getFullQualifiedName()).thenReturn(nameETNavProp);
+    
Mockito.when(entityType.getKeyPredicateNames()).thenReturn(Collections.singletonList(keyPropertyName));
+    
Mockito.when(entityType.getKeyPropertyRefs()).thenReturn(Collections.singletonList(keyPropertyRef));
+    
Mockito.when(entityType.getProperty(entitySetName)).thenReturn(navProperty);
+    Mockito.when(navProperty.getType()).thenReturn(entityType);
+    EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class);
+    Mockito.when(entitySet.getName()).thenReturn(entitySetName);
+    Mockito.when(entitySet.getEntityType()).thenReturn(entityType);
+    EdmEntityContainer container = Mockito.mock(EdmEntityContainer.class);
+    Mockito.when(container.getEntitySet(entitySetName)).thenReturn(entitySet);
+    Edm mockedEdm = Mockito.mock(Edm.class);
+    Mockito.when(mockedEdm.getEntityContainer(null)).thenReturn(container);
+    new TestUriValidator().setEdm(mockedEdm)
+        .run("ESNavProp(1)/ESNavProp(2)/ESNavProp(3)/ESNavProp")
         .goPath()
-        .at(0).isEntitySet("ESNavProp")
-        .at(0).isKeyPredicate(0, "a", "1")
-        .at(1).isNavProperty("ESNavProp", EdmTechTestProvider.nameETNavProp, 
false)
-        .at(1).isKeyPredicate(0, "a", "2")
-        .at(2).isNavProperty("ESNavProp", EdmTechTestProvider.nameETNavProp, 
false)
-        .at(2).isKeyPredicate(0, "a", "3")
-        .at(3).isNavProperty("ESNavProp", EdmTechTestProvider.nameETNavProp, 
true);
+        .at(0).isEntitySet(entitySetName)
+        .at(0).isKeyPredicate(0, keyPropertyName, "1")
+        .at(1).isNavProperty(entitySetName, nameETNavProp, false)
+        .at(1).isKeyPredicate(0, keyPropertyName, "2")
+        .at(2).isNavProperty(entitySetName, nameETNavProp, false)
+        .at(2).isKeyPredicate(0, keyPropertyName, "3")
+        .at(3).isNavProperty(entitySetName, nameETNavProp, true);
   }
 
   @Test
@@ -5617,26 +5652,26 @@ public class TestFullResourcePath {
     
     testUri.run("ESAllPrim", "$filter=" + Short.MIN_VALUE + " eq " + 
Short.MAX_VALUE)
     .goFilter().isBinary(BinaryOperatorKind.EQ)
-      .left().isLiteral("" + Short.MIN_VALUE)
+      .left().isLiteral(Short.toString(Short.MIN_VALUE))
       
.isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int16))
       .root()
-      .right().isLiteral("" + Short.MAX_VALUE)
+      .right().isLiteral(Short.toString(Short.MAX_VALUE))
       
.isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int16));
 
     testUri.run("ESAllPrim", "$filter=" + Integer.MIN_VALUE + " eq " + 
Integer.MAX_VALUE)
     .goFilter().isBinary(BinaryOperatorKind.EQ)
-      .left().isLiteral("" + Integer.MIN_VALUE)
+      .left().isLiteral(Integer.toString(Integer.MIN_VALUE))
       
.isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int32))
       .root()
-      .right().isLiteral("" + Integer.MAX_VALUE)
+      .right().isLiteral(Integer.toString(Integer.MAX_VALUE))
       
.isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int32));
-    
+
     testUri.run("ESAllPrim", "$filter=" + Long.MIN_VALUE + " eq " + 
Long.MAX_VALUE)
     .goFilter().isBinary(BinaryOperatorKind.EQ)
-      .left().isLiteral("" + Long.MIN_VALUE)
+      .left().isLiteral(Long.toString(Long.MIN_VALUE))
       
.isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int64))
       .root()
-      .right().isLiteral("" + Long.MAX_VALUE)
+      .right().isLiteral(Long.toString(Long.MAX_VALUE))
       
.isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int64));
   }
 

Reply via email to