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

[1/8] olingo-odata4 git commit: [OLINGO-431] Delete unnecessary v4 in package name

Repository: olingo-odata4
Updated Branches:
  refs/heads/master 1f9a28d3e -> 752bfad36


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/northwind-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/northwind-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/northwind-metadata.xml
deleted file mode 100644
index f65815d..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/northwind-metadata.xml
+++ /dev/null
@@ -1,471 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
-  <edmx:DataServices>
-    <Schema Namespace="NorthwindModel" xmlns="http://docs.oasis-open.org/odata/ns/edm">
-      <EntityType Name="Category">
-        <Key>
-          <PropertyRef Name="CategoryID" />
-        </Key>
-        <Property Name="CategoryID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
-        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
-        <Property Name="Description" Type="Edm.String" MaxLength="max" />
-        <Property Name="Picture" Type="Edm.Binary" MaxLength="max" />
-        <NavigationProperty Name="Products" Type="Collection(NorthwindModel.Product)" Partner="Category" />
-      </EntityType>
-      <EntityType Name="CustomerDemographic">
-        <Key>
-          <PropertyRef Name="CustomerTypeID" />
-        </Key>
-        <Property Name="CustomerTypeID" Type="Edm.String" Nullable="false" MaxLength="10" />
-        <Property Name="CustomerDesc" Type="Edm.String" MaxLength="max" />
-        <NavigationProperty Name="Customers" Type="Collection(NorthwindModel.Customer)" Partner="CustomerDemographics" />
-      </EntityType>
-      <EntityType Name="Customer">
-        <Key>
-          <PropertyRef Name="CustomerID" />
-        </Key>
-        <Property Name="CustomerID" Type="Edm.String" Nullable="false" MaxLength="5" />
-        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="ContactName" Type="Edm.String" MaxLength="30" />
-        <Property Name="ContactTitle" Type="Edm.String" MaxLength="30" />
-        <Property Name="Address" Type="Edm.String" MaxLength="60" />
-        <Property Name="City" Type="Edm.String" MaxLength="15" />
-        <Property Name="Region" Type="Edm.String" MaxLength="15" />
-        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
-        <Property Name="Country" Type="Edm.String" MaxLength="15" />
-        <Property Name="Phone" Type="Edm.String" MaxLength="24" />
-        <Property Name="Fax" Type="Edm.String" MaxLength="24" />
-        <NavigationProperty Name="Orders" Type="Collection(NorthwindModel.Order)" Partner="Customer" />
-        <NavigationProperty Name="CustomerDemographics" Type="Collection(NorthwindModel.CustomerDemographic)" Partner="Customers" />
-      </EntityType>
-      <EntityType Name="Employee">
-        <Key>
-          <PropertyRef Name="EmployeeID" />
-        </Key>
-        <Property Name="EmployeeID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
-        <Property Name="LastName" Type="Edm.String" Nullable="false" MaxLength="20" />
-        <Property Name="FirstName" Type="Edm.String" Nullable="false" MaxLength="10" />
-        <Property Name="Title" Type="Edm.String" MaxLength="30" />
-        <Property Name="TitleOfCourtesy" Type="Edm.String" MaxLength="25" />
-        <Property Name="BirthDate" Type="Edm.DateTimeOffset" />
-        <Property Name="HireDate" Type="Edm.DateTimeOffset" />
-        <Property Name="Address" Type="Edm.String" MaxLength="60" />
-        <Property Name="City" Type="Edm.String" MaxLength="15" />
-        <Property Name="Region" Type="Edm.String" MaxLength="15" />
-        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
-        <Property Name="Country" Type="Edm.String" MaxLength="15" />
-        <Property Name="HomePhone" Type="Edm.String" MaxLength="24" />
-        <Property Name="Extension" Type="Edm.String" MaxLength="4" />
-        <Property Name="Photo" Type="Edm.Binary" MaxLength="max" />
-        <Property Name="Notes" Type="Edm.String" MaxLength="max" />
-        <Property Name="ReportsTo" Type="Edm.Int32" />
-        <Property Name="PhotoPath" Type="Edm.String" MaxLength="255" />
-        <NavigationProperty Name="Employees1" Type="Collection(NorthwindModel.Employee)" Partner="Employee1" />
-        <NavigationProperty Name="Employee1" Type="NorthwindModel.Employee" Partner="Employees1">
-          <ReferentialConstraint Property="ReportsTo" ReferencedProperty="EmployeeID" />
-        </NavigationProperty>
-        <NavigationProperty Name="Orders" Type="Collection(NorthwindModel.Order)" Partner="Employee" />
-        <NavigationProperty Name="Territories" Type="Collection(NorthwindModel.Territory)" Partner="Employees" />
-      </EntityType>
-      <EntityType Name="Order_Detail">
-        <Key>
-          <PropertyRef Name="OrderID" />
-          <PropertyRef Name="ProductID" />
-        </Key>
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4" />
-        <Property Name="Quantity" Type="Edm.Int16" Nullable="false" />
-        <Property Name="Discount" Type="Edm.Single" Nullable="false" />
-        <NavigationProperty Name="Order" Type="NorthwindModel.Order" Nullable="false" Partner="Order_Details">
-          <ReferentialConstraint Property="OrderID" ReferencedProperty="OrderID" />
-        </NavigationProperty>
-        <NavigationProperty Name="Product" Type="NorthwindModel.Product" Nullable="false" Partner="Order_Details">
-          <ReferentialConstraint Property="ProductID" ReferencedProperty="ProductID" />
-        </NavigationProperty>
-      </EntityType>
-      <EntityType Name="Order">
-        <Key>
-          <PropertyRef Name="OrderID" />
-        </Key>
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
-        <Property Name="CustomerID" Type="Edm.String" MaxLength="5" />
-        <Property Name="EmployeeID" Type="Edm.Int32" />
-        <Property Name="OrderDate" Type="Edm.DateTimeOffset" />
-        <Property Name="RequiredDate" Type="Edm.DateTimeOffset" />
-        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
-        <Property Name="ShipVia" Type="Edm.Int32" />
-        <Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4" />
-        <Property Name="ShipName" Type="Edm.String" MaxLength="40" />
-        <Property Name="ShipAddress" Type="Edm.String" MaxLength="60" />
-        <Property Name="ShipCity" Type="Edm.String" MaxLength="15" />
-        <Property Name="ShipRegion" Type="Edm.String" MaxLength="15" />
-        <Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" />
-        <Property Name="ShipCountry" Type="Edm.String" MaxLength="15" />
-        <NavigationProperty Name="Customer" Type="NorthwindModel.Customer" Partner="Orders">
-          <ReferentialConstraint Property="CustomerID" ReferencedProperty="CustomerID" />
-        </NavigationProperty>
-        <NavigationProperty Name="Employee" Type="NorthwindModel.Employee" Partner="Orders">
-          <ReferentialConstraint Property="EmployeeID" ReferencedProperty="EmployeeID" />
-        </NavigationProperty>
-        <NavigationProperty Name="Order_Details" Type="Collection(NorthwindModel.Order_Detail)" Partner="Order" />
-        <NavigationProperty Name="Shipper" Type="NorthwindModel.Shipper" Partner="Orders">
-          <ReferentialConstraint Property="ShipVia" ReferencedProperty="ShipperID" />
-        </NavigationProperty>
-      </EntityType>
-      <EntityType Name="Product">
-        <Key>
-          <PropertyRef Name="ProductID" />
-        </Key>
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
-        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="SupplierID" Type="Edm.Int32" />
-        <Property Name="CategoryID" Type="Edm.Int32" />
-        <Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" />
-        <Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
-        <Property Name="UnitsInStock" Type="Edm.Int16" />
-        <Property Name="UnitsOnOrder" Type="Edm.Int16" />
-        <Property Name="ReorderLevel" Type="Edm.Int16" />
-        <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false" />
-        <NavigationProperty Name="Category" Type="NorthwindModel.Category" Partner="Products">
-          <ReferentialConstraint Property="CategoryID" ReferencedProperty="CategoryID" />
-        </NavigationProperty>
-        <NavigationProperty Name="Order_Details" Type="Collection(NorthwindModel.Order_Detail)" Partner="Product" />
-        <NavigationProperty Name="Supplier" Type="NorthwindModel.Supplier" Partner="Products">
-          <ReferentialConstraint Property="SupplierID" ReferencedProperty="SupplierID" />
-        </NavigationProperty>
-      </EntityType>
-      <EntityType Name="Region">
-        <Key>
-          <PropertyRef Name="RegionID" />
-        </Key>
-        <Property Name="RegionID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="RegionDescription" Type="Edm.String" Nullable="false" MaxLength="50" />
-        <NavigationProperty Name="Territories" Type="Collection(NorthwindModel.Territory)" Partner="Region" />
-      </EntityType>
-      <EntityType Name="Shipper">
-        <Key>
-          <PropertyRef Name="ShipperID" />
-        </Key>
-        <Property Name="ShipperID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
-        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="Phone" Type="Edm.String" MaxLength="24" />
-        <NavigationProperty Name="Orders" Type="Collection(NorthwindModel.Order)" Partner="Shipper" />
-      </EntityType>
-      <EntityType Name="Supplier">
-        <Key>
-          <PropertyRef Name="SupplierID" />
-        </Key>
-        <Property Name="SupplierID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
-        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="ContactName" Type="Edm.String" MaxLength="30" />
-        <Property Name="ContactTitle" Type="Edm.String" MaxLength="30" />
-        <Property Name="Address" Type="Edm.String" MaxLength="60" />
-        <Property Name="City" Type="Edm.String" MaxLength="15" />
-        <Property Name="Region" Type="Edm.String" MaxLength="15" />
-        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
-        <Property Name="Country" Type="Edm.String" MaxLength="15" />
-        <Property Name="Phone" Type="Edm.String" MaxLength="24" />
-        <Property Name="Fax" Type="Edm.String" MaxLength="24" />
-        <Property Name="HomePage" Type="Edm.String" MaxLength="max" />
-        <NavigationProperty Name="Products" Type="Collection(NorthwindModel.Product)" Partner="Supplier" />
-      </EntityType>
-      <EntityType Name="Territory">
-        <Key>
-          <PropertyRef Name="TerritoryID" />
-        </Key>
-        <Property Name="TerritoryID" Type="Edm.String" Nullable="false" MaxLength="20" />
-        <Property Name="TerritoryDescription" Type="Edm.String" Nullable="false" MaxLength="50" />
-        <Property Name="RegionID" Type="Edm.Int32" Nullable="false" />
-        <NavigationProperty Name="Region" Type="NorthwindModel.Region" Nullable="false" Partner="Territories">
-          <ReferentialConstraint Property="RegionID" ReferencedProperty="RegionID" />
-        </NavigationProperty>
-        <NavigationProperty Name="Employees" Type="Collection(NorthwindModel.Employee)" Partner="Territories" />
-      </EntityType>
-      <EntityType Name="Alphabetical_list_of_product">
-        <Key>
-          <PropertyRef Name="CategoryName" />
-          <PropertyRef Name="Discontinued" />
-          <PropertyRef Name="ProductID" />
-          <PropertyRef Name="ProductName" />
-        </Key>
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="SupplierID" Type="Edm.Int32" />
-        <Property Name="CategoryID" Type="Edm.Int32" />
-        <Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" />
-        <Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
-        <Property Name="UnitsInStock" Type="Edm.Int16" />
-        <Property Name="UnitsOnOrder" Type="Edm.Int16" />
-        <Property Name="ReorderLevel" Type="Edm.Int16" />
-        <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false" />
-        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
-      </EntityType>
-      <EntityType Name="Category_Sales_for_1997">
-        <Key>
-          <PropertyRef Name="CategoryName" />
-        </Key>
-        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
-        <Property Name="CategorySales" Type="Edm.Decimal" Precision="19" Scale="4" />
-      </EntityType>
-      <EntityType Name="Current_Product_List">
-        <Key>
-          <PropertyRef Name="ProductID" />
-          <PropertyRef Name="ProductName" />
-        </Key>
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
-        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
-      </EntityType>
-      <EntityType Name="Customer_and_Suppliers_by_City">
-        <Key>
-          <PropertyRef Name="CompanyName" />
-          <PropertyRef Name="Relationship" />
-        </Key>
-        <Property Name="City" Type="Edm.String" MaxLength="15" />
-        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="ContactName" Type="Edm.String" MaxLength="30" />
-        <Property Name="Relationship" Type="Edm.String" Nullable="false" MaxLength="9" Unicode="false" />
-      </EntityType>
-      <EntityType Name="Invoice">
-        <Key>
-          <PropertyRef Name="CustomerName" />
-          <PropertyRef Name="Discount" />
-          <PropertyRef Name="OrderID" />
-          <PropertyRef Name="ProductID" />
-          <PropertyRef Name="ProductName" />
-          <PropertyRef Name="Quantity" />
-          <PropertyRef Name="Salesperson" />
-          <PropertyRef Name="ShipperName" />
-          <PropertyRef Name="UnitPrice" />
-        </Key>
-        <Property Name="ShipName" Type="Edm.String" MaxLength="40" />
-        <Property Name="ShipAddress" Type="Edm.String" MaxLength="60" />
-        <Property Name="ShipCity" Type="Edm.String" MaxLength="15" />
-        <Property Name="ShipRegion" Type="Edm.String" MaxLength="15" />
-        <Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" />
-        <Property Name="ShipCountry" Type="Edm.String" MaxLength="15" />
-        <Property Name="CustomerID" Type="Edm.String" MaxLength="5" />
-        <Property Name="CustomerName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="Address" Type="Edm.String" MaxLength="60" />
-        <Property Name="City" Type="Edm.String" MaxLength="15" />
-        <Property Name="Region" Type="Edm.String" MaxLength="15" />
-        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
-        <Property Name="Country" Type="Edm.String" MaxLength="15" />
-        <Property Name="Salesperson" Type="Edm.String" Nullable="false" MaxLength="31" />
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="OrderDate" Type="Edm.DateTimeOffset" />
-        <Property Name="RequiredDate" Type="Edm.DateTimeOffset" />
-        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
-        <Property Name="ShipperName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4" />
-        <Property Name="Quantity" Type="Edm.Int16" Nullable="false" />
-        <Property Name="Discount" Type="Edm.Single" Nullable="false" />
-        <Property Name="ExtendedPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
-        <Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4" />
-      </EntityType>
-      <EntityType Name="Order_Details_Extended">
-        <Key>
-          <PropertyRef Name="Discount" />
-          <PropertyRef Name="OrderID" />
-          <PropertyRef Name="ProductID" />
-          <PropertyRef Name="ProductName" />
-          <PropertyRef Name="Quantity" />
-          <PropertyRef Name="UnitPrice" />
-        </Key>
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4" />
-        <Property Name="Quantity" Type="Edm.Int16" Nullable="false" />
-        <Property Name="Discount" Type="Edm.Single" Nullable="false" />
-        <Property Name="ExtendedPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
-      </EntityType>
-      <EntityType Name="Order_Subtotal">
-        <Key>
-          <PropertyRef Name="OrderID" />
-        </Key>
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4" />
-      </EntityType>
-      <EntityType Name="Orders_Qry">
-        <Key>
-          <PropertyRef Name="CompanyName" />
-          <PropertyRef Name="OrderID" />
-        </Key>
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="CustomerID" Type="Edm.String" MaxLength="5" />
-        <Property Name="EmployeeID" Type="Edm.Int32" />
-        <Property Name="OrderDate" Type="Edm.DateTimeOffset" />
-        <Property Name="RequiredDate" Type="Edm.DateTimeOffset" />
-        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
-        <Property Name="ShipVia" Type="Edm.Int32" />
-        <Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4" />
-        <Property Name="ShipName" Type="Edm.String" MaxLength="40" />
-        <Property Name="ShipAddress" Type="Edm.String" MaxLength="60" />
-        <Property Name="ShipCity" Type="Edm.String" MaxLength="15" />
-        <Property Name="ShipRegion" Type="Edm.String" MaxLength="15" />
-        <Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" />
-        <Property Name="ShipCountry" Type="Edm.String" MaxLength="15" />
-        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="Address" Type="Edm.String" MaxLength="60" />
-        <Property Name="City" Type="Edm.String" MaxLength="15" />
-        <Property Name="Region" Type="Edm.String" MaxLength="15" />
-        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
-        <Property Name="Country" Type="Edm.String" MaxLength="15" />
-      </EntityType>
-      <EntityType Name="Product_Sales_for_1997">
-        <Key>
-          <PropertyRef Name="CategoryName" />
-          <PropertyRef Name="ProductName" />
-        </Key>
-        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
-        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="ProductSales" Type="Edm.Decimal" Precision="19" Scale="4" />
-      </EntityType>
-      <EntityType Name="Products_Above_Average_Price">
-        <Key>
-          <PropertyRef Name="ProductName" />
-        </Key>
-        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
-      </EntityType>
-      <EntityType Name="Products_by_Category">
-        <Key>
-          <PropertyRef Name="CategoryName" />
-          <PropertyRef Name="Discontinued" />
-          <PropertyRef Name="ProductName" />
-        </Key>
-        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
-        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" />
-        <Property Name="UnitsInStock" Type="Edm.Int16" />
-        <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false" />
-      </EntityType>
-      <EntityType Name="Sales_by_Category">
-        <Key>
-          <PropertyRef Name="CategoryID" />
-          <PropertyRef Name="CategoryName" />
-          <PropertyRef Name="ProductName" />
-        </Key>
-        <Property Name="CategoryID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
-        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="ProductSales" Type="Edm.Decimal" Precision="19" Scale="4" />
-      </EntityType>
-      <EntityType Name="Sales_Totals_by_Amount">
-        <Key>
-          <PropertyRef Name="CompanyName" />
-          <PropertyRef Name="OrderID" />
-        </Key>
-        <Property Name="SaleAmount" Type="Edm.Decimal" Precision="19" Scale="4" />
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
-        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
-      </EntityType>
-      <EntityType Name="Summary_of_Sales_by_Quarter">
-        <Key>
-          <PropertyRef Name="OrderID" />
-        </Key>
-        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4" />
-      </EntityType>
-      <EntityType Name="Summary_of_Sales_by_Year">
-        <Key>
-          <PropertyRef Name="OrderID" />
-        </Key>
-        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
-        <Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4" />
-      </EntityType>
-      <Annotations Target="ODataWebExperimental.Northwind.Model.NorthwindEntities">
-        <Annotation Term="Com.Microsoft.OData.Service.Conventions.V1.UrlConventions" String="KeyAsSegment" />
-      </Annotations>
-    </Schema>
-    <Schema Namespace="ODataWebExperimental.Northwind.Model" xmlns="http://docs.oasis-open.org/odata/ns/edm">
-      <EntityContainer Name="NorthwindEntities" p4:LazyLoadingEnabled="true" xmlns:p4="http://schemas.microsoft.com/ado/2009/02/edm/annotation">
-        <EntitySet Name="Categories" EntityType="NorthwindModel.Category">
-          <NavigationPropertyBinding Path="Products" Target="Products" />
-        </EntitySet>
-        <EntitySet Name="CustomerDemographics" EntityType="NorthwindModel.CustomerDemographic">
-          <NavigationPropertyBinding Path="Customers" Target="Customers" />
-        </EntitySet>
-        <EntitySet Name="Customers" EntityType="NorthwindModel.Customer">
-          <NavigationPropertyBinding Path="CustomerDemographics" Target="CustomerDemographics" />
-          <NavigationPropertyBinding Path="Orders" Target="Orders" />
-        </EntitySet>
-        <EntitySet Name="Employees" EntityType="NorthwindModel.Employee">
-          <NavigationPropertyBinding Path="Employees1" Target="Employees" />
-          <NavigationPropertyBinding Path="Employee1" Target="Employees" />
-          <NavigationPropertyBinding Path="Orders" Target="Orders" />
-          <NavigationPropertyBinding Path="Territories" Target="Territories" />
-        </EntitySet>
-        <EntitySet Name="Order_Details" EntityType="NorthwindModel.Order_Detail">
-          <NavigationPropertyBinding Path="Order" Target="Orders" />
-          <NavigationPropertyBinding Path="Product" Target="Products" />
-        </EntitySet>
-        <EntitySet Name="Orders" EntityType="NorthwindModel.Order">
-          <NavigationPropertyBinding Path="Customer" Target="Customers" />
-          <NavigationPropertyBinding Path="Employee" Target="Employees" />
-          <NavigationPropertyBinding Path="Order_Details" Target="Order_Details" />
-          <NavigationPropertyBinding Path="Shipper" Target="Shippers" />
-        </EntitySet>
-        <EntitySet Name="Products" EntityType="NorthwindModel.Product">
-          <NavigationPropertyBinding Path="Category" Target="Categories" />
-          <NavigationPropertyBinding Path="Order_Details" Target="Order_Details" />
-          <NavigationPropertyBinding Path="Supplier" Target="Suppliers" />
-        </EntitySet>
-        <EntitySet Name="Regions" EntityType="NorthwindModel.Region">
-          <NavigationPropertyBinding Path="Territories" Target="Territories" />
-        </EntitySet>
-        <EntitySet Name="Shippers" EntityType="NorthwindModel.Shipper">
-          <NavigationPropertyBinding Path="Orders" Target="Orders" />
-        </EntitySet>
-        <EntitySet Name="Suppliers" EntityType="NorthwindModel.Supplier">
-          <NavigationPropertyBinding Path="Products" Target="Products" />
-        </EntitySet>
-        <EntitySet Name="Territories" EntityType="NorthwindModel.Territory">
-          <NavigationPropertyBinding Path="Employees" Target="Employees" />
-          <NavigationPropertyBinding Path="Region" Target="Regions" />
-        </EntitySet>
-        <EntitySet Name="Alphabetical_list_of_products" EntityType="NorthwindModel.Alphabetical_list_of_product" />
-        <EntitySet Name="Category_Sales_for_1997" EntityType="NorthwindModel.Category_Sales_for_1997" />
-        <EntitySet Name="Current_Product_Lists" EntityType="NorthwindModel.Current_Product_List" />
-        <EntitySet Name="Customer_and_Suppliers_by_Cities" EntityType="NorthwindModel.Customer_and_Suppliers_by_City" />
-        <EntitySet Name="Invoices" EntityType="NorthwindModel.Invoice" />
-        <EntitySet Name="Order_Details_Extendeds" EntityType="NorthwindModel.Order_Details_Extended" />
-        <EntitySet Name="Order_Subtotals" EntityType="NorthwindModel.Order_Subtotal" />
-        <EntitySet Name="Orders_Qries" EntityType="NorthwindModel.Orders_Qry" />
-        <EntitySet Name="Product_Sales_for_1997" EntityType="NorthwindModel.Product_Sales_for_1997" />
-        <EntitySet Name="Products_Above_Average_Prices" EntityType="NorthwindModel.Products_Above_Average_Price" />
-        <EntitySet Name="Products_by_Categories" EntityType="NorthwindModel.Products_by_Category" />
-        <EntitySet Name="Sales_by_Categories" EntityType="NorthwindModel.Sales_by_Category" />
-        <EntitySet Name="Sales_Totals_by_Amounts" EntityType="NorthwindModel.Sales_Totals_by_Amount" />
-        <EntitySet Name="Summary_of_Sales_by_Quarters" EntityType="NorthwindModel.Summary_of_Sales_by_Quarter" />
-        <EntitySet Name="Summary_of_Sales_by_Years" EntityType="NorthwindModel.Summary_of_Sales_by_Year" />
-      </EntityContainer>
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/olingo390.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/olingo390.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/olingo390.json
deleted file mode 100644
index 47543aa..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/olingo390.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "@odata.type": "#Microsoft.Exchange.Services.OData.Model.Message",
-  "ToRecipients@odata.type": "#Collection(Microsoft.Exchange.Services.OData.Model.Recipient)",
-  "ToRecipients": [{
-      "@odata.type": "#Microsoft.Exchange.Services.OData.Model.Recipient",
-      "Name@odata.type": "String",
-      "Name": "challen_olingo_client",
-      "Address@odata.type": "String",
-      "Address": "challenh@microsoft.com"
-    }],
-  "Body": {
-    "@odata.type": "#Microsoft.Exchange.Services.OData.Model.ItemBody",
-    "Content@odata.type": "String",
-    "Content": "this is a simple email body content",
-    "ContentType@odata.type": "#Microsoft.Exchange.Services.OData.Model.BodyType",
-    "ContentType": "text"
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/serviceDocument.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/serviceDocument.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/serviceDocument.json
deleted file mode 100644
index f07594d..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/serviceDocument.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-  "@odata.context": "http://host/service/$metadata",
-  "@odata.metadataEtag": "W/\"MjAxMy0wNS0xM1QxNDo1NFo=\"",
-  "value": [
-    {
-      "name": "Orders",
-      "kind": "EntitySet",
-      "url": "Orders"
-    },
-    {
-      "name": "Order Details",
-      "url": "OrderItems"
-    },
-    {
-      "name": "TopProducts",
-      "kind": "FunctionImport",
-      "url": "TopProducts"
-    },
-    {
-      "name": "Contoso",
-      "kind": "Singleton",
-      "url": "Contoso"
-    },
-    {
-      "name": "Human Resources",
-      "kind": "ServiceDocument",
-      "url": "http://host/HR/"
-    }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/serviceDocument.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/serviceDocument.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/serviceDocument.xml
deleted file mode 100644
index 4450ef9..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/serviceDocument.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<app:service xmlns:app="http://www.w3.org/2007/app"
-             xmlns:atom="http://www.w3.org/2005/Atom"
-             xmlns:metadata="http://docs.oasis-open.org/odata/ns/metadata"
-             xml:base="http://host/service/"
-             metadata:context="$metadata"
-             metadata:metadata-etag="W/&quot;MjAxMy0wNS0xM1QxNDo1NFo=&quot;">
-  <app:workspace>
-    <atom:title type="text">Data</atom:title>
-    <app:collection href="Orders">
-      <atom:title type="text">Orders</atom:title>
-    </app:collection>
-    <app:collection href="OrderItems">
-      <atom:title type="text">Order Details</atom:title>
-    </app:collection>
-    <metadata:function-import href="TopProducts">
-      <atom:title>TopProducts</atom:title>
-    </metadata:function-import>
-    <metadata:singleton href="Contoso">
-      <atom:title>Contoso Ltd.</atom:title>
-    </metadata:singleton>
-    <metadata:service-document href="http://host/HR/">
-      <atom:title>Human Resources</atom:title>
-    </metadata:service-document>
-  </app:workspace>
-</app:service>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/staticservice-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/staticservice-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/staticservice-metadata.xml
deleted file mode 100644
index 4bb360c..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/staticservice-metadata.xml
+++ /dev/null
@@ -1,462 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
-  <edmx:DataServices>
-    <Schema Namespace="Microsoft.Test.OData.Services.ODataWCFService" xmlns="http://docs.oasis-open.org/odata/ns/edm">
-      <Term Name="IsBoss" Type="Edm.Boolean"/>
-      <ComplexType Name="Address">
-        <Property Name="Street" Type="Edm.String" Nullable="false"/>
-        <Property Name="City" Type="Edm.String" Nullable="false"/>
-        <Property Name="PostalCode" Type="Edm.String" Nullable="false"/>
-      </ComplexType>
-      <ComplexType Name="HomeAddress" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Address">
-        <Property Name="FamilyName" Type="Edm.String"/>
-      </ComplexType>
-      <ComplexType Name="CompanyAddress" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Address">
-        <Property Name="CompanyName" Type="Edm.String" Nullable="false"/>
-      </ComplexType>
-      <EnumType Name="AccessLevel" IsFlags="true">
-        <Member Name="None" Value="0"/>
-        <Member Name="Read" Value="1"/>
-        <Member Name="Write" Value="2"/>
-        <Member Name="Execute" Value="4"/>
-        <Member Name="ReadWrite" Value="3"/>
-      </EnumType>
-      <EnumType Name="Color">
-        <Member Name="Red" Value="1"/>
-        <Member Name="Green" Value="2"/>
-        <Member Name="Blue" Value="4"/>
-      </EnumType>
-      <EnumType Name="CompanyCategory">
-        <Member Name="IT" Value="0"/>
-        <Member Name="Communication" Value="1"/>
-        <Member Name="Electronics" Value="2"/>
-        <Member Name="Others" Value="4"/>
-      </EnumType>
-      <EntityType Name="Person">
-        <Key>
-          <PropertyRef Name="PersonID"/>
-        </Key>
-        <Property Name="PersonID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="FirstName" Type="Edm.String" Nullable="false"/>
-        <Property Name="LastName" Type="Edm.String" Nullable="false"/>
-        <Property Name="MiddleName" Type="Edm.String"/>
-        <Property Name="HomeAddress" Type="Microsoft.Test.OData.Services.ODataWCFService.Address"/>
-        <Property Name="Home" Type="Edm.GeographyPoint" SRID="4326"/>
-        <Property Name="Numbers" Type="Collection(Edm.String)" Nullable="false"/>
-        <Property Name="Emails" Type="Collection(Edm.String)"/>
-        <NavigationProperty Name="Parent" Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="Customer" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Person">
-        <Property Name="City" Type="Edm.String" Nullable="false"/>
-        <Property Name="Birthday" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <Property Name="TimeBetweenLastTwoOrders" Type="Edm.Duration" Nullable="false"/>
-        <NavigationProperty Name="Orders" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Order)"/>
-        <NavigationProperty Name="Company" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false" Partner="VipCustomer"/>
-      </EntityType>
-      <EntityType Name="Employee" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Person">
-        <Property Name="DateHired" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <Property Name="Office" Type="Edm.GeographyPoint" SRID="4326"/>
-        <NavigationProperty Name="Company" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false" Partner="Employees"/>
-      </EntityType>
-      <EntityType Name="Product">
-        <Key>
-          <PropertyRef Name="ProductID"/>
-        </Key>
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String" Nullable="false"/>
-        <Property Name="QuantityPerUnit" Type="Edm.String" Nullable="false"/>
-        <Property Name="UnitPrice" Type="Edm.Single" Nullable="false"/>
-        <Property Name="QuantityInStock" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false"/>
-        <Property Name="UserAccess" Type="Microsoft.Test.OData.Services.ODataWCFService.AccessLevel"/>
-        <Property Name="SkinColor" Type="Microsoft.Test.OData.Services.ODataWCFService.Color"/>
-        <Property Name="CoverColors" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)" Nullable="false"/>
-        <NavigationProperty Name="Details" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductDetail)">
-          <ReferentialConstraint Property="ProductID" ReferencedProperty="ProductID"/>
-        </NavigationProperty>
-      </EntityType>
-      <EntityType Name="ProductDetail">
-        <Key>
-          <PropertyRef Name="ProductID"/>
-          <PropertyRef Name="ProductDetailID"/>
-        </Key>
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="ProductDetailID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="ProductName" Type="Edm.String" Nullable="false"/>
-        <Property Name="Description" Type="Edm.String" Nullable="false"/>
-        <NavigationProperty Name="RelatedProduct" Type="Microsoft.Test.OData.Services.ODataWCFService.Product"/>
-        <NavigationProperty Name="Reviews" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductReview)">
-          <ReferentialConstraint Property="ProductID" ReferencedProperty="ProductID"/>
-          <ReferentialConstraint Property="ProductDetailID" ReferencedProperty="ProductDetailID"/>
-        </NavigationProperty>
-      </EntityType>
-      <EntityType Name="ProductReview">
-        <Key>
-          <PropertyRef Name="ProductID"/>
-          <PropertyRef Name="ProductDetailID"/>
-          <PropertyRef Name="ReviewTitle"/>
-          <PropertyRef Name="RevisionID"/>
-        </Key>
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="ProductDetailID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="ReviewTitle" Type="Edm.String" Nullable="false"/>
-        <Property Name="RevisionID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Comment" Type="Edm.String" Nullable="false"/>
-        <Property Name="Author" Type="Edm.String" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="Order">
-        <Key>
-          <PropertyRef Name="OrderID"/>
-        </Key>
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="OrderDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <Property Name="ShelfLife" Type="Edm.Duration"/>
-        <Property Name="OrderShelfLifes" Type="Collection(Edm.Duration)"/>
-        <NavigationProperty Name="LoggedInEmployee" Type="Microsoft.Test.OData.Services.ODataWCFService.Employee" Nullable="false"/>
-        <NavigationProperty Name="CustomerForOrder" Type="Microsoft.Test.OData.Services.ODataWCFService.Customer" Nullable="false"/>
-        <NavigationProperty Name="OrderDetails" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.OrderDetail)"/>
-      </EntityType>
-      <EntityType Name="OrderDetail">
-        <Key>
-          <PropertyRef Name="OrderID"/>
-          <PropertyRef Name="ProductID"/>
-        </Key>
-        <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="OrderPlaced" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <Property Name="Quantity" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="UnitPrice" Type="Edm.Single" Nullable="false"/>
-        <NavigationProperty Name="ProductOrdered" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)"/>
-        <NavigationProperty Name="AssociatedOrder" Type="Microsoft.Test.OData.Services.ODataWCFService.Order" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="Department">
-        <Key>
-          <PropertyRef Name="DepartmentID"/>
-        </Key>
-        <Property Name="DepartmentID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String" Nullable="false"/>
-        <Property Name="DepartmentNO" Type="Edm.String"/>
-        <NavigationProperty Name="Company" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false" Partner="Departments"/>
-      </EntityType>
-      <EntityType Name="Company" OpenType="true">
-        <Key>
-          <PropertyRef Name="CompanyID"/>
-        </Key>
-        <Property Name="CompanyID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="CompanyCategory" Type="Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory"/>
-        <Property Name="Revenue" Type="Edm.Int64" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-        <Property Name="Address" Type="Microsoft.Test.OData.Services.ODataWCFService.Address"/>
-        <NavigationProperty Name="Employees" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Employee)" Partner="Company"/>
-        <NavigationProperty Name="VipCustomer" Type="Microsoft.Test.OData.Services.ODataWCFService.Customer" Nullable="false" Partner="Company"/>
-        <NavigationProperty Name="Departments" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Department)" Partner="Company"/>
-        <NavigationProperty Name="CoreDepartment" Type="Microsoft.Test.OData.Services.ODataWCFService.Department" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="PublicCompany" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Company" OpenType="true">
-        <Property Name="StockExchange" Type="Edm.String"/>
-        <NavigationProperty Name="Assets" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Asset)" ContainsTarget="true"/>
-        <NavigationProperty Name="Club" Type="Microsoft.Test.OData.Services.ODataWCFService.Club" Nullable="false" ContainsTarget="true"/>
-        <NavigationProperty Name="LabourUnion" Type="Microsoft.Test.OData.Services.ODataWCFService.LabourUnion" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="Asset">
-        <Key>
-          <PropertyRef Name="AssetID"/>
-        </Key>
-        <Property Name="AssetID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-        <Property Name="Number" Type="Edm.Int32" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="Club">
-        <Key>
-          <PropertyRef Name="ClubID"/>
-        </Key>
-        <Property Name="ClubID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-      </EntityType>
-      <EntityType Name="LabourUnion">
-        <Key>
-          <PropertyRef Name="LabourUnionID"/>
-        </Key>
-        <Property Name="LabourUnionID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-      </EntityType>
-      <Action Name="AddAccessRight" IsBound="true">
-        <Parameter Name="product" Type="Microsoft.Test.OData.Services.ODataWCFService.Product" Nullable="false"/>
-        <Parameter Name="accessRight" Type="Microsoft.Test.OData.Services.ODataWCFService.AccessLevel"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.AccessLevel"/>
-      </Action>
-      <Action Name="IncreaseRevenue" IsBound="true">
-        <Parameter Name="p" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false"/>
-        <Parameter Name="IncreaseValue" Type="Edm.Int64"/>
-        <ReturnType Type="Edm.Int64" Nullable="false"/>
-      </Action>
-      <Action Name="ResetAddress" IsBound="true" EntitySetPath="person">
-        <Parameter Name="person" Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
-        <Parameter Name="addresses" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)" Nullable="false"/>
-        <Parameter Name="index" Type="Edm.Int32" Nullable="false"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
-      </Action>
-      <Action Name="Discount" IsBound="true" EntitySetPath="products">
-        <Parameter Name="products" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)" Nullable="false"/>
-        <Parameter Name="percentage" Type="Edm.Int32" Nullable="false"/>
-        <ReturnType Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)" Nullable="false"/>
-      </Action>
-      <Action Name="Discount">
-        <Parameter Name="percentage" Type="Edm.Int32" Nullable="false"/>
-      </Action>
-      <Action Name="ResetBossEmail">
-        <Parameter Name="emails" Type="Collection(Edm.String)" Nullable="false"/>
-        <ReturnType Type="Collection(Edm.String)" Nullable="false"/>
-      </Action>
-      <Action Name="ResetBossAddress">
-        <Parameter Name="address" Type="Microsoft.Test.OData.Services.ODataWCFService.Address" Nullable="false"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Address" Nullable="false"/>
-      </Action>
-      <Action Name="ResetDataSource"/>
-      <Function Name="GetEmployeesCount" IsBound="true">
-        <Parameter Name="p" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false"/>
-        <ReturnType Type="Edm.Int32" Nullable="false"/>
-      </Function>
-      <Function Name="GetProductDetails" IsBound="true" EntitySetPath="product/Details" IsComposable="true">
-        <Parameter Name="product" Type="Microsoft.Test.OData.Services.ODataWCFService.Product" Nullable="false"/>
-        <Parameter Name="count" Type="Edm.Int32"/>
-        <ReturnType Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductDetail)" Nullable="false"/>
-      </Function>
-      <Function Name="GetRelatedProduct" IsBound="true" EntitySetPath="productDetail/RelatedProduct" IsComposable="true">
-        <Parameter Name="productDetail" Type="Microsoft.Test.OData.Services.ODataWCFService.ProductDetail" Nullable="false"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Product" Nullable="false"/>
-      </Function>
-      <Function Name="GetDefaultColor" IsComposable="true">
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Color"/>
-      </Function>
-      <Function Name="GetPerson" IsComposable="true">
-        <Parameter Name="address" Type="Microsoft.Test.OData.Services.ODataWCFService.Address" Nullable="false"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
-      </Function>
-      <Function Name="GetPerson2" IsComposable="true">
-        <Parameter Name="city" Type="Edm.String" Nullable="false"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
-      </Function>
-      <Function Name="GetAllProducts" IsComposable="true">
-        <ReturnType Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)" Nullable="false"/>
-      </Function>
-      <Function Name="GetBossEmails">
-        <Parameter Name="start" Type="Edm.Int32" Nullable="false"/>
-        <Parameter Name="count" Type="Edm.Int32" Nullable="false"/>
-        <ReturnType Type="Collection(Edm.String)" Nullable="false"/>
-      </Function>
-      <Function Name="GetProductsByAccessLevel">
-        <Parameter Name="accessLevel" Type="Microsoft.Test.OData.Services.ODataWCFService.AccessLevel" Nullable="false"/>
-        <ReturnType Type="Collection(Edm.String)" Nullable="false"/>
-      </Function>
-      <Function Name="GetActualAmount" IsBound="true">
-        <Parameter Name="giftcard" Type="Microsoft.Test.OData.Services.ODataWCFService.GiftCard" Nullable="false"/>
-        <Parameter Name="bonusRate" Type="Edm.Double"/>
-        <ReturnType Type="Edm.Double" Nullable="false"/>
-      </Function>
-      <Function Name="GetDefaultPI" IsBound="true" EntitySetPath="account/MyPaymentInstruments">
-        <Parameter Name="account" Type="Microsoft.Test.OData.Services.ODataWCFService.Account" Nullable="false"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"/>
-      </Function>
-      <Action Name="RefreshDefaultPI" IsBound="true" EntitySetPath="account/MyPaymentInstruments">
-        <Parameter Name="account" Type="Microsoft.Test.OData.Services.ODataWCFService.Account" Nullable="false"/>
-        <Parameter Name="newDate" Type="Edm.DateTimeOffset"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"/>
-      </Action>
-      <Function Name="GetHomeAddress" IsBound="true" IsComposable="true">
-        <Parameter Name="person" Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.HomeAddress" Nullable="false"/>
-      </Function>
-      <Function Name="GetAccountInfo" IsBound="true" IsComposable="true">
-        <Parameter Name="account" Type="Microsoft.Test.OData.Services.ODataWCFService.Account" Nullable="false"/>
-        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.AccountInfo" Nullable="false"/>
-      </Function>
-      <ComplexType Name="AccountInfo" OpenType="true">
-        <Property Name="FirstName" Type="Edm.String" Nullable="false"/>
-        <Property Name="LastName" Type="Edm.String" Nullable="false"/>
-      </ComplexType>
-      <EntityType Name="Account">
-        <Key>
-          <PropertyRef Name="AccountID"/>
-        </Key>
-        <Property Name="AccountID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Country" Type="Edm.String" Nullable="false"/>
-        <Property Name="AccountInfo" Type="Microsoft.Test.OData.Services.ODataWCFService.AccountInfo"/>
-        <NavigationProperty Name="MyGiftCard" Type="Microsoft.Test.OData.Services.ODataWCFService.GiftCard" ContainsTarget="true"/>
-        <NavigationProperty Name="MyPaymentInstruments" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument)" ContainsTarget="true"/>
-        <NavigationProperty Name="ActiveSubscriptions" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Subscription)" ContainsTarget="true"/>
-        <NavigationProperty Name="AvailableSubscriptionTemplatess" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Subscription)"/>
-      </EntityType>
-      <EntityType Name="GiftCard">
-        <Key>
-          <PropertyRef Name="GiftCardID"/>
-        </Key>
-        <Property Name="GiftCardID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="GiftCardNO" Type="Edm.String" Nullable="false"/>
-        <Property Name="Amount" Type="Edm.Double" Nullable="false"/>
-        <Property Name="ExperationDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <Property Name="OwnerName" Type="Edm.String"/>
-      </EntityType>
-      <EntityType Name="PaymentInstrument">
-        <Key>
-          <PropertyRef Name="PaymentInstrumentID"/>
-        </Key>
-        <Property Name="PaymentInstrumentID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="FriendlyName" Type="Edm.String" Nullable="false"/>
-        <Property Name="CreatedDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <NavigationProperty Name="TheStoredPI" Type="Microsoft.Test.OData.Services.ODataWCFService.StoredPI" Nullable="false"/>
-        <NavigationProperty Name="BillingStatements" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Statement)" ContainsTarget="true"/>
-        <NavigationProperty Name="BackupStoredPI" Type="Microsoft.Test.OData.Services.ODataWCFService.StoredPI" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="CreditCardPI" BaseType="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument">
-        <Property Name="CardNumber" Type="Edm.String" Nullable="false"/>
-        <Property Name="CVV" Type="Edm.String" Nullable="false"/>
-        <Property Name="HolderName" Type="Edm.String" Nullable="false"/>
-        <Property Name="Balance" Type="Edm.Double" Nullable="false"/>
-        <Property Name="ExperationDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <NavigationProperty Name="CreditRecords" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.CreditRecord)" ContainsTarget="true"/>
-      </EntityType>
-      <EntityType Name="StoredPI">
-        <Key>
-          <PropertyRef Name="StoredPIID"/>
-        </Key>
-        <Property Name="StoredPIID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="PIName" Type="Edm.String" Nullable="false"/>
-        <Property Name="PIType" Type="Edm.String" Nullable="false"/>
-        <Property Name="CreatedDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="Statement">
-        <Key>
-          <PropertyRef Name="StatementID"/>
-        </Key>
-        <Property Name="StatementID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="TransactionType" Type="Edm.String" Nullable="false"/>
-        <Property Name="TransactionDescription" Type="Edm.String" Nullable="false"/>
-        <Property Name="Amount" Type="Edm.Double" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="CreditRecord">
-        <Key>
-          <PropertyRef Name="CreditRecordID"/>
-        </Key>
-        <Property Name="CreditRecordID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="IsGood" Type="Edm.Boolean" Nullable="false"/>
-        <Property Name="Reason" Type="Edm.String" Nullable="false"/>
-        <Property Name="CreatedDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="Subscription">
-        <Key>
-          <PropertyRef Name="SubscriptionID"/>
-        </Key>
-        <Property Name="SubscriptionID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="TemplateGuid" Type="Edm.String" Nullable="false"/>
-        <Property Name="Title" Type="Edm.String" Nullable="false"/>
-        <Property Name="Category" Type="Edm.String" Nullable="false"/>
-        <Property Name="CreatedDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-      </EntityType>
-      <EntityContainer Name="InMemoryEntities">
-        <EntitySet Name="People" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Person">
-          <NavigationPropertyBinding Path="Parent" Target="People"/>
-        </EntitySet>
-        <Singleton Name="Boss" Type="Microsoft.Test.OData.Services.ODataWCFService.Person">
-          <NavigationPropertyBinding Path="Parent" Target="People"/>
-        </Singleton>
-        <EntitySet Name="Customers" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Customer">
-          <NavigationPropertyBinding Path="Orders" Target="Orders"/>
-          <NavigationPropertyBinding Path="Parent" Target="People"/>
-        </EntitySet>
-        <Singleton Name="VipCustomer" Type="Microsoft.Test.OData.Services.ODataWCFService.Customer">
-          <NavigationPropertyBinding Path="Orders" Target="Orders"/>
-          <NavigationPropertyBinding Path="Parent" Target="People"/>
-          <NavigationPropertyBinding Path="Company" Target="Company"/>
-        </Singleton>
-        <EntitySet Name="Employees" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Employee">
-          <NavigationPropertyBinding Path="Parent" Target="People"/>
-          <NavigationPropertyBinding Path="Company" Target="Company"/>
-        </EntitySet>
-        <EntitySet Name="Products" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Product">
-          <NavigationPropertyBinding Path="Details" Target="ProductDetails"/>
-        </EntitySet>
-        <EntitySet Name="ProductDetails" EntityType="Microsoft.Test.OData.Services.ODataWCFService.ProductDetail">
-          <NavigationPropertyBinding Path="RelatedProduct" Target="Products"/>
-          <NavigationPropertyBinding Path="Reviews" Target="ProductReviews"/>
-        </EntitySet>
-        <EntitySet Name="ProductReviews" EntityType="Microsoft.Test.OData.Services.ODataWCFService.ProductReview"/>
-        <EntitySet Name="Orders" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Order">
-          <NavigationPropertyBinding Path="LoggedInEmployee" Target="Employees"/>
-          <NavigationPropertyBinding Path="CustomerForOrder" Target="Customers"/>
-          <NavigationPropertyBinding Path="OrderDetails" Target="OrderDetails"/>
-          <Annotation Term="Core.ChangeTracking">
-            <Record>
-              <PropertyValue Property="Supported" Bool="true"/>
-              <PropertyValue Property="FilterableProperties">
-                <Collection>
-                  <PropertyPath>OrderID</PropertyPath>
-                </Collection>
-              </PropertyValue>
-              <PropertyValue Property="ExpandableProperties">
-                <Collection>
-                  <PropertyPath>OrderDetails</PropertyPath>
-                </Collection>
-              </PropertyValue>
-            </Record>
-          </Annotation>
-        </EntitySet>
-        <EntitySet Name="OrderDetails" EntityType="Microsoft.Test.OData.Services.ODataWCFService.OrderDetail">
-          <NavigationPropertyBinding Path="AssociatedOrder" Target="Orders"/>
-          <NavigationPropertyBinding Path="ProductOrdered" Target="Products"/>
-        </EntitySet>
-        <EntitySet Name="Departments" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Department">
-          <NavigationPropertyBinding Path="Company" Target="Company"/>
-        </EntitySet>
-        <Singleton Name="Company" Type="Microsoft.Test.OData.Services.ODataWCFService.Company">
-          <NavigationPropertyBinding Path="Employees" Target="Employees"/>
-          <NavigationPropertyBinding Path="VipCustomer" Target="VipCustomer"/>
-          <NavigationPropertyBinding Path="Departments" Target="Departments"/>
-          <NavigationPropertyBinding Path="CoreDepartment" Target="Departments"/>
-        </Singleton>
-        <Singleton Name="PublicCompany" Type="Microsoft.Test.OData.Services.ODataWCFService.Company">
-          <NavigationPropertyBinding Path="Microsoft.Test.OData.Services.ODataWCFService.PublicCompany/LabourUnion" Target="LabourUnion"/>
-        </Singleton>
-        <Singleton Name="LabourUnion" Type="Microsoft.Test.OData.Services.ODataWCFService.LabourUnion"/>
-        <ActionImport Name="Discount" Action="Microsoft.Test.OData.Services.ODataWCFService.Discount"/>
-        <ActionImport Name="ResetBossEmail" Action="Microsoft.Test.OData.Services.ODataWCFService.ResetBossEmail"/>
-        <ActionImport Name="ResetBossAddress" Action="Microsoft.Test.OData.Services.ODataWCFService.ResetBossAddress"/>
-        <ActionImport Name="ResetDataSource" Action="Microsoft.Test.OData.Services.ODataWCFService.ResetDataSource"/>
-        <FunctionImport Name="GetDefaultColor" Function="Microsoft.Test.OData.Services.ODataWCFService.GetDefaultColor" IncludeInServiceDocument="true"/>
-        <FunctionImport Name="GetPerson" Function="Microsoft.Test.OData.Services.ODataWCFService.GetPerson" EntitySet="People" IncludeInServiceDocument="true"/>
-        <FunctionImport Name="GetPerson2" Function="Microsoft.Test.OData.Services.ODataWCFService.GetPerson2" EntitySet="People" IncludeInServiceDocument="true"/>
-        <FunctionImport Name="GetAllProducts" Function="Microsoft.Test.OData.Services.ODataWCFService.GetAllProducts" EntitySet="Products" IncludeInServiceDocument="true"/>
-        <FunctionImport Name="GetBossEmails" Function="Microsoft.Test.OData.Services.ODataWCFService.GetBossEmails" IncludeInServiceDocument="true"/>
-        <FunctionImport Name="GetProductsByAccessLevel" Function="Microsoft.Test.OData.Services.ODataWCFService.GetProductsByAccessLevel" IncludeInServiceDocument="true"/>
-        <EntitySet Name="Accounts" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Account">
-          <NavigationPropertyBinding Path="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument/TheStoredPI" Target="StoredPIs"/>
-          <NavigationPropertyBinding Path="AvailableSubscriptionTemplatess" Target="SubscriptionTemplates"/>
-          <NavigationPropertyBinding Path="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument/BackupStoredPI" Target="DefaultStoredPI"/>
-        </EntitySet>
-        <EntitySet Name="StoredPIs" EntityType="Microsoft.Test.OData.Services.ODataWCFService.StoredPI"/>
-        <EntitySet Name="SubscriptionTemplates" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Subscription"/>
-        <Singleton Name="DefaultStoredPI" Type="Microsoft.Test.OData.Services.ODataWCFService.StoredPI"/>
-      </EntityContainer>
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>
\ No newline at end of file


[3/8] olingo-odata4 git commit: [OLINGO-431] Delete unnecessary v4 in package name

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Accounts_101_expand_MyPaymentInstruments.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Accounts_101_expand_MyPaymentInstruments.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Accounts_101_expand_MyPaymentInstruments.json
deleted file mode 100644
index 776d578..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Accounts_101_expand_MyPaymentInstruments.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Accounts/$entity",
-  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Account",
-  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)",
-  "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)",
-  "AccountID": 101,
-  "Country": "US",
-  "AccountInfo": {
-    "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
-    "FirstName": "Alex",
-    "LastName": "Green",
-    "MiddleName": "Hood"
-  },
-  "MyPaymentInstruments@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Accounts(101)/MyPaymentInstruments",
-  "MyPaymentInstruments@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments/$ref",
-  "MyPaymentInstruments@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments",
-  "MyPaymentInstruments": [{
-      "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
-      "@odata.id": "Accounts(101)/MyPaymentInstruments(101901)",
-      "@odata.editLink": "Accounts(101)/MyPaymentInstruments(101901)",
-      "PaymentInstrumentID": 101901,
-      "FriendlyName": "101 first PI",
-      "CreatedDate@odata.type": "#DateTimeOffset",
-      "CreatedDate": "2012-11-01T00:00:00Z",
-      "TheStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/TheStoredPI/$ref",
-      "TheStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/TheStoredPI",
-      "BillingStatements@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/BillingStatements/$ref",
-      "BillingStatements@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/BillingStatements",
-      "BackupStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/BackupStoredPI/$ref",
-      "BackupStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/BackupStoredPI"
-    }, {
-      "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
-      "@odata.id": "Accounts(101)/MyPaymentInstruments(101902)",
-      "@odata.editLink": "Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
-      "PaymentInstrumentID": 101902,
-      "FriendlyName": "101 frist credit PI",
-      "CreatedDate@odata.type": "#DateTimeOffset",
-      "CreatedDate": "2012-11-01T00:00:00Z",
-      "CardNumber": "6000000000000000",
-      "CVV": "234",
-      "HolderName": "Alex",
-      "Balance": 100.0,
-      "ExperationDate@odata.type": "#DateTimeOffset",
-      "ExperationDate": "2022-11-01T00:00:00Z",
-      "TheStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/TheStoredPI/$ref",
-      "TheStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/TheStoredPI",
-      "BillingStatements@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BillingStatements/$ref",
-      "BillingStatements@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BillingStatements",
-      "BackupStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BackupStoredPI/$ref",
-      "BackupStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BackupStoredPI",
-      "CreditRecords@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/CreditRecords/$ref",
-      "CreditRecords@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/CreditRecords"
-    }, {
-      "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
-      "@odata.id": "Accounts(101)/MyPaymentInstruments(101903)",
-      "@odata.editLink": "Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
-      "PaymentInstrumentID": 101903,
-      "FriendlyName": "101 second credit PI",
-      "CreatedDate@odata.type": "#DateTimeOffset",
-      "CreatedDate": "2012-11-01T00:00:00Z",
-      "CardNumber": "8000000000000000",
-      "CVV": "012",
-      "HolderName": "James",
-      "Balance": 300.0,
-      "ExperationDate@odata.type": "#DateTimeOffset",
-      "ExperationDate": "2022-10-02T00:00:00Z",
-      "TheStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/TheStoredPI/$ref",
-      "TheStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/TheStoredPI",
-      "BillingStatements@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BillingStatements/$ref",
-      "BillingStatements@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BillingStatements",
-      "BackupStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BackupStoredPI/$ref",
-      "BackupStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BackupStoredPI",
-      "CreditRecords@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/CreditRecords/$ref",
-      "CreditRecords@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/CreditRecords"
-    }],
-  "MyGiftCard@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyGiftCard/$ref",
-  "MyGiftCard@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyGiftCard",
-  "ActiveSubscriptions@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/ActiveSubscriptions/$ref",
-  "ActiveSubscriptions@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/ActiveSubscriptions",
-  "AvailableSubscriptionTemplatess@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/AvailableSubscriptionTemplatess/$ref",
-  "AvailableSubscriptionTemplatess@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/AvailableSubscriptionTemplatess",
-  "#Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI": {
-    "title": "Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI",
-    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI"
-  },
-  "#Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI": {
-    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI",
-    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI"
-  },
-  "#Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo": {
-    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo",
-    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo"
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Accounts_101_expand_MyPaymentInstruments.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Accounts_101_expand_MyPaymentInstruments.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Accounts_101_expand_MyPaymentInstruments.xml
deleted file mode 100644
index 75ec28d..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Accounts_101_expand_MyPaymentInstruments.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<entry xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
-       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml" 
-       m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Accounts/$entity">
-  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)</id>
-  <category term="#Microsoft.Test.OData.Services.ODataWCFService.Account" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
-  <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)" />
-  <link rel="http://docs.oasis-open.org/odata/ns/related/MyGiftCard" type="application/atom+xml;type=entry" title="MyGiftCard" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyGiftCard" />
-  <link rel="http://docs.oasis-open.org/odata/ns/related/MyPaymentInstruments" type="application/atom+xml;type=feed" title="MyPaymentInstruments" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments">
-    <m:inline>
-      <feed>
-        <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/MyPaymentInstruments</id>
-        <title />
-        <updated>2014-03-31T09:46:15Z</updated>
-        <entry>
-          <category term="#Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/TheStoredPI" type="application/atom+xml;type=entry" title="TheStoredPI" href="potato" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/BillingStatements" type="application/atom+xml;type=feed" title="BillingStatements" href="potato" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/BackupStoredPI" type="application/atom+xml;type=entry" title="BackupStoredPI" href="potato" />
-          <id />
-          <title />
-          <updated>2014-03-31T09:46:15Z</updated>
-          <author>
-            <name />
-          </author>
-          <content type="application/xml">
-            <m:properties>
-              <d:PaymentInstrumentID m:type="Int32">101901</d:PaymentInstrumentID>
-              <d:FriendlyName>101 first PI</d:FriendlyName>
-              <d:CreatedDate m:type="DateTimeOffset">2012-11-01T00:00:00Z</d:CreatedDate>
-            </m:properties>
-          </content>
-        </entry>
-        <entry>
-          <category term="#Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/TheStoredPI" type="application/atom+xml;type=entry" title="TheStoredPI" href="potato" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/BillingStatements" type="application/atom+xml;type=feed" title="BillingStatements" href="potato" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/BackupStoredPI" type="application/atom+xml;type=entry" title="BackupStoredPI" href="potato" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/CreditRecords" type="application/atom+xml;type=feed" title="CreditRecords" href="potato" />
-          <id />
-          <title />
-          <updated>2014-03-31T09:46:15Z</updated>
-          <author>
-            <name />
-          </author>
-          <content type="application/xml">
-            <m:properties>
-              <d:PaymentInstrumentID m:type="Int32">101902</d:PaymentInstrumentID>
-              <d:FriendlyName>101 frist credit PI</d:FriendlyName>
-              <d:CreatedDate m:type="DateTimeOffset">2012-11-01T00:00:00Z</d:CreatedDate>
-              <d:CardNumber>6000000000000000</d:CardNumber>
-              <d:CVV>234</d:CVV>
-              <d:HolderName>Alex</d:HolderName>
-              <d:Balance m:type="Double">100</d:Balance>
-              <d:ExperationDate m:type="DateTimeOffset">2022-11-01T00:00:00Z</d:ExperationDate>
-            </m:properties>
-          </content>
-        </entry>
-        <entry>
-          <category term="#Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/TheStoredPI" type="application/atom+xml;type=entry" title="TheStoredPI" href="potato" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/BillingStatements" type="application/atom+xml;type=feed" title="BillingStatements" href="potato" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/BackupStoredPI" type="application/atom+xml;type=entry" title="BackupStoredPI" href="potato" />
-          <link rel="http://docs.oasis-open.org/odata/ns/related/CreditRecords" type="application/atom+xml;type=feed" title="CreditRecords" href="potato" />
-          <id />
-          <title />
-          <updated>2014-03-31T09:46:15Z</updated>
-          <author>
-            <name />
-          </author>
-          <content type="application/xml">
-            <m:properties>
-              <d:PaymentInstrumentID m:type="Int32">101903</d:PaymentInstrumentID>
-              <d:FriendlyName>101 second credit PI</d:FriendlyName>
-              <d:CreatedDate m:type="DateTimeOffset">2012-11-01T00:00:00Z</d:CreatedDate>
-              <d:CardNumber>8000000000000000</d:CardNumber>
-              <d:CVV>012</d:CVV>
-              <d:HolderName>James</d:HolderName>
-              <d:Balance m:type="Double">300</d:Balance>
-              <d:ExperationDate m:type="DateTimeOffset">2022-10-02T00:00:00Z</d:ExperationDate>
-            </m:properties>
-          </content>
-        </entry>
-      </feed>
-    </m:inline>
-  </link>
-  <link rel="http://docs.oasis-open.org/odata/ns/related/ActiveSubscriptions" type="application/atom+xml;type=feed" title="ActiveSubscriptions" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/ActiveSubscriptions" />
-  <link rel="http://docs.oasis-open.org/odata/ns/related/AvailableSubscriptionTemplatess" type="application/atom+xml;type=feed" title="AvailableSubscriptionTemplatess" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/AvailableSubscriptionTemplatess" />
-  <title />
-  <updated>2014-03-31T09:46:15Z</updated>
-  <author>
-    <name />
-  </author>
-  <content type="application/xml">
-    <m:properties>
-      <d:AccountID m:type="Int32">101</d:AccountID>
-      <d:Country>US</d:Country>
-      <d:AccountInfo m:type="#Microsoft.Test.OData.Services.ODataWCFService.AccountInfo">
-        <d:FirstName>Alex</d:FirstName>
-        <d:LastName>Green</d:LastName>
-        <d:MiddleName>Hood</d:MiddleName>
-      </d:AccountInfo>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json
deleted file mode 100644
index eceecbb..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "@odata.context": "http://services.odata.org/V4/OData/OData.svc/$metadata#Advertisements/$entity",
-  "@odata.type": "#ODataDemo.Advertisement",
-  "@odata.id": "http://services.odata.org/V4/OData/OData.svc/Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)",
-  "@odata.editLink": "Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)",
-  "@odata.mediaEditLink": "Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value",
-  "@odata.mediaContentType": "*/*",
-  "@odata.mediaEtag": "\"8zOOKKvgOtptr4gt8IrnapX3jds=\"",
-  "ID@odata.type": "#Guid",
-  "ID": "f89dee73-af9f-4cd4-b330-db93c25ff3c7",
-  "Name": "Old School Lemonade Store, Retro Style",
-  "AirDate@odata.type": "#DateTimeOffset",
-  "AirDate": "2012-11-07T00:00:00Z",
-  "FeaturedProduct@odata.associationLink": "Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/FeaturedProduct/$ref",
-  "FeaturedProduct@odata.navigationLink": "Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/FeaturedProduct"
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml
deleted file mode 100644
index 068cb53..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<entry xml:base="http://services.odata.org/V4/OData/OData.svc/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
-       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml" 
-       m:context="http://services.odata.org/V4/OData/OData.svc/$metadata#Advertisements/$entity">
-  <id>http://services.odata.org/V4/OData/OData.svc/Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)</id>
-  <category term="#ODataDemo.Advertisement" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
-  <link rel="edit" title="Advertisement" href="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)" />
-  <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/FeaturedProduct" type="application/xml" title="FeaturedProduct" href="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/FeaturedProduct/$ref" />
-  <link rel="http://docs.oasis-open.org/odata/ns/related/FeaturedProduct" type="application/atom+xml;type=entry" title="FeaturedProduct" href="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/FeaturedProduct" />
-  <title />
-  <updated>2014-03-31T10:24:52Z</updated>
-  <author>
-    <name />
-  </author>
-  <link rel="edit-media" title="Advertisement" href="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value" m:etag="&quot;8zOOKKvgOtptr4gt8IrnapX3jds=&quot;" />
-  <content type="*/*" src="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value" />
-  <m:properties>
-    <d:ID m:type="Guid">f89dee73-af9f-4cd4-b330-db93c25ff3c7</d:ID>
-    <d:Name>Old School Lemonade Store, Retro Style</d:Name>
-    <d:AirDate m:type="DateTimeOffset">2012-11-07T00:00:00Z</d:AirDate>
-  </m:properties>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customer.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customer.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customer.json
deleted file mode 100644
index 938297c..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customer.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  "@odata.context": "http://localhost:9080/stub/StaticService/V40/Static.svc/$metadata#People/$entity",
-  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Customer",
-  "PersonID@odata.type": "Int32",
-  "PersonID": 976,
-  "FirstName@odata.type": "String",
-  "FirstName": "Test",
-  "LastName@odata.type": "String",
-  "LastName": "Test",
-  "HomeAddress": {
-    "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
-    "Street@odata.type": "String",
-    "Street": "V.le Gabriele D'Annunzio",
-    "City@odata.type": "String",
-    "City": "Pescara",
-    "PostalCode@odata.type": "String",
-    "PostalCode": "65127",
-    "CompanyName@odata.type": "String",
-    "CompanyName": "Tirasa"
-  },
-  "Numbers@odata.type": "#Collection(String)",
-  "Numbers": [],
-  "Emails@odata.type": "#Collection(String)",
-  "Emails": [],
-  "City@odata.type": "String",
-  "City": "Pescara",
-  "Birthday@odata.type": "DateTimeOffset",
-  "Birthday": "1977-09-08T02:00:00+02:00",
-  "TimeBetweenLastTwoOrders@odata.type": "Duration",
-  "TimeBetweenLastTwoOrders": "PT0.0000002S",
-  "MiddleName@odata.type": "String",
-  "MiddleName": null,
-  "Home@odata.type": "String",
-  "Home": null,
-  "@odata.editLink": "http://localhost:9080/stub/StaticService/V40/Static.svc/People(976)",
-  "Parent@odata.navigationLink": "People(976)/Parent"
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customer.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customer.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customer.xml
deleted file mode 100644
index f012a4d..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customer.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!--
-
-    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.
-
--->
-<entry xmlns="http://www.w3.org/2005/Atom" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:gml="http://www.opengis.net/gml" xmlns:georss="http://www.georss.org/georss" m:context="http://localhost:9080/stub/StaticService/V40/Static.svc/$metadata#People/$entity" xml:base="http://localhost:9080/stub/StaticService/V40/Static.svc/">
-  <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="#Microsoft.Test.OData.Services.ODataWCFService.Customer"/>
-  <link rel="edit" title="People" href="http://localhost:9080/stub/StaticService/V40/Static.svc/People(976)"/>
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" title="Parent" href="People(976)/Parent" type="application/atom+xml;type=entry"/>
-  <content type="application/xml">
-    <m:properties>
-      <d:PersonID m:type="Int32">976</d:PersonID>
-      <d:FirstName>Test</d:FirstName>
-      <d:LastName>Test</d:LastName>
-      <d:HomeAddress m:type="#Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress">
-        <d:Street>V.le Gabriele D'Annunzio</d:Street>
-        <d:City>Pescara</d:City>
-        <d:PostalCode>65127</d:PostalCode>
-        <d:CompanyName>Tirasa</d:CompanyName>
-      </d:HomeAddress>
-      <d:Numbers m:type="#Collection(String)"/>
-      <d:Emails m:type="#Collection(String)"/>
-      <d:City>Pescara</d:City>
-      <d:Birthday m:type="DateTimeOffset">1977-09-08T02:00:00+02:00</d:Birthday>
-      <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000002S</d:TimeBetweenLastTwoOrders>
-      <d:MiddleName m:null="true"/>
-      <d:Home m:null="true"/>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customers.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customers.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customers.json
deleted file mode 100644
index c37d5a5..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customers.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Customers",
-  "@odata.count": 2,
-  "value": [{
-      "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)",
-      "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)",
-      "PersonID": 1,
-      "FirstName": "Bob",
-      "LastName": "Cat",
-      "MiddleName": null,
-      "HomeAddress": {
-        "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.HomeAddress",
-        "Street": "1 Microsoft Way",
-        "City": "London",
-        "PostalCode": "98052",
-        "FamilyName": "Cats"
-      },
-      "Home": {
-        "type": "Point",
-        "coordinates": [23.1, 32.1],
-        "crs": {
-          "type": "name",
-          "properties": {
-            "name": "EPSG:4326"
-          }
-        }
-      },
-      "Numbers": ["111-111-1111"],
-      "Emails": ["abc@abc.com"],
-      "City": "London",
-      "Birthday": "1957-04-03T00:00:00Z",
-      "TimeBetweenLastTwoOrders": "PT0.0000001S"
-    }, {
-      "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)",
-      "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)",
-      "PersonID": 2,
-      "FirstName": "Jill",
-      "LastName": "Jones",
-      "MiddleName": null,
-      "HomeAddress": null,
-      "Home": {
-        "type": "Point",
-        "coordinates": [161.8, 15.0],
-        "crs": {
-          "type": "name",
-          "properties": {
-            "name": "EPSG:4326"
-          }
-        }
-      },
-      "Numbers": [],
-      "Emails": [],
-      "City": "Sydney",
-      "Birthday": "1983-01-15T00:00:00Z",
-      "TimeBetweenLastTwoOrders": "PT0.0000002S"
-    }]
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customers.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customers.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customers.xml
deleted file mode 100644
index a0adedd..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Customers.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<feed xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" 
-      xmlns="http://www.w3.org/2005/Atom" 
-      xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
-      xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
-      xmlns:georss="http://www.georss.org/georss" 
-      xmlns:gml="http://www.opengis.net/gml" 
-      m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Customers">
-  <m:count>2</m:count>
-  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers</id>
-  <title/>
-  <updated>2014-03-31T09:35:14Z</updated>
-  <entry>
-    <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)</id>
-    <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
-    <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)"/>
-    <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent"/>
-    <link rel="http://docs.oasis-open.org/odata/ns/related/Orders"
-	   type="application/atom+xml;type=feed" title="Orders">
-	   <m:inline><feed><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders"/></feed></m:inline></link>
-    <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Company"/>
-    <title/>
-    <updated>2014-03-31T09:35:14Z</updated>
-    <author>
-      <name/>
-    </author>
-    <content type="application/xml">
-      <m:properties>
-        <d:PersonID m:type="Int32">1</d:PersonID>
-        <d:FirstName>Bob</d:FirstName>
-        <d:LastName>Cat</d:LastName>
-        <d:MiddleName m:null="true"/>
-        <d:HomeAddress m:type="#Microsoft.Test.OData.Services.ODataWCFService.HomeAddress">
-          <d:Street>1 Microsoft Way</d:Street>
-          <d:City>London</d:City>
-          <d:PostalCode>98052</d:PostalCode>
-          <d:FamilyName>Cats</d:FamilyName>
-        </d:HomeAddress>
-        <d:Home m:type="GeographyPoint">
-          <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-            <gml:pos>32.1 23.1</gml:pos>
-          </gml:Point>
-        </d:Home>
-        <d:Numbers m:type="#Collection(String)">
-          <m:element>111-111-1111</m:element>
-        </d:Numbers>
-        <d:Emails m:type="#Collection(String)">
-          <m:element>abc@abc.com</m:element>
-        </d:Emails>
-        <d:City>London</d:City>
-        <d:Birthday m:type="DateTimeOffset">1957-04-03T00:00:00Z</d:Birthday>
-        <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000001S</d:TimeBetweenLastTwoOrders>
-      </m:properties>
-    </content>
-  </entry>
-  <entry>
-    <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)</id>
-    <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
-    <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)"/>
-    <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Parent"/>
-    <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" 
-      title="Orders">
-      <m:inline><feed><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Orders"/></feed></m:inline>
-      </link>
-    <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Company"/>
-    <title/>
-    <updated>2014-03-31T09:35:14Z</updated>
-    <author>
-      <name/>
-    </author>
-    <content type="application/xml">
-      <m:properties>
-        <d:PersonID m:type="Int32">2</d:PersonID>
-        <d:FirstName>Jill</d:FirstName>
-        <d:LastName>Jones</d:LastName>
-        <d:MiddleName m:null="true"/>
-        <d:HomeAddress m:null="true"/>
-        <d:Home m:type="GeographyPoint">
-          <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-            <gml:pos>15.0 161.8</gml:pos>
-          </gml:Point>
-        </d:Home>
-        <d:Numbers m:type="#Collection(String)"/>
-        <d:Emails m:type="#Collection(String)"/>
-        <d:City>Sydney</d:City>
-        <d:Birthday m:type="DateTimeOffset">1983-01-15T00:00:00Z</d:Birthday>
-        <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000002S</d:TimeBetweenLastTwoOrders>
-      </m:properties>
-    </content>
-  </entry>
-</feed>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Employees_3_HomeAddress.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Employees_3_HomeAddress.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Employees_3_HomeAddress.json
deleted file mode 100644
index 8748df3..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Employees_3_HomeAddress.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Employees(3)/HomeAddress",
-  "Street": "1 Microsoft Way",
-  "City": "Sydney",
-  "PostalCode": "98052"
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Employees_3_HomeAddress.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Employees_3_HomeAddress.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Employees_3_HomeAddress.xml
deleted file mode 100644
index 5029af5..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Employees_3_HomeAddress.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<m:value xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
-         xmlns:georss="http://www.georss.org/georss" 
-         xmlns:gml="http://www.opengis.net/gml" 
-         m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Employees(3)/HomeAddress" 
-         m:type="#Microsoft.Test.OData.Services.ODataWCFService.Address" 
-         xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">
-  <d:Street>1 Microsoft Way</d:Street>
-  <d:City>Sydney</d:City>
-  <d:PostalCode>98052</d:PostalCode>
-</m:value>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Metadata-With-Capabilities.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Metadata-With-Capabilities.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Metadata-With-Capabilities.xml
deleted file mode 100644
index 64999ad..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Metadata-With-Capabilities.xml
+++ /dev/null
@@ -1,323 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-  <edmx:DataServices>
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Org.OData.Capabilities.V1" Alias="Capabilities">
-      <Annotation Term="Core.Description">
-        <String>
-          The Capabilities vocabulary aims to provide a way for service authors to describe
-          certain capabilities of an OData Service.
-        </String>
-      </Annotation>
-      <Annotation Term="Core.LongDescription">
-        <String>
-          There are some capabilities which are strongly recommended for services to support even
-          though they are optional. Support for $top and $skip is a good example as
-          supporting these query options helps with performance of a service and are essential. Such
-          capabilities are assumed to be default capabilities of an OData service even in
-          the case that a capabilities annotation doesn’t exist. Capabilities annotations are
-          mainly expected to be used to explicitly specify that a service doesn’t support such
-          capabilities. Capabilities annotations can as well be used to declaratively
-          specify the support of such capabilities.
-
-          On the other hand, there are some capabilities that a service may choose to support or
-          not support and in varying degrees. $filter and $orderby are such good examples.
-          This vocabulary aims to define terms to specify support or no support for such
-          capabilities.
-
-          A service is assumed to support by default the following capabilities even though an
-          annotation doesn’t exist:
-          - Countability ($count, $inlinecount)
-          - Client pageability ($top, $skip)
-          - Expandability ($expand)
-          - Indexability by key
-          - Batch support ($batch)
-          - Navigability of navigation properties
-
-          A service is expected to support the following capabilities. If not supported, the
-          service is expected to call out the restrictions using annotations:
-          - Filterability ($filter)
-          - Sortability ($orderby)
-          - Queryability of top level entity sets
-          - Query functions
-
-          A client cannot assume that a service supports certain capabilities. A client can try, but
-          it needs to be prepared to handle an error in case the following capabilities are not
-          supported:
-          - Insertability
-          - Updatability
-          - Deletability
-        </String>
-      </Annotation>
-
-      <!-- Conformance Level -->
-
-      <Term Name="ConformanceLevel" Type="Capabilities.ConformanceLevelType" AppliesTo="EntityContainer" />
-      <EnumType Name="ConformanceLevelType">
-        <Member Name="Minimal" />
-        <Member Name="Intermediate" />
-        <Member Name="Advanced" />
-      </EnumType>
-
-      <!-- Request Capabilities -->
-
-      <Term Name="SupportedFormats" Type="Collection(Edm.String)">
-        <Annotation Term="Core.Description" String="Media types of supported formats, including format parameters" />
-        <Annotation Term="Core.IsMediaType" />
-      </Term>
-
-      <Term Name="AcceptableEncodings" Type="Collection(Edm.String)" AppliesTo="EntityContainer">
-        <Annotation Term="Core.Description" String="List of acceptable compression methods for ($batch) requests, e.g. gzip" />
-      </Term>
-
-      <!-- Supported Preferences -->
-
-      <Term Name="AsynchronousRequestsSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
-        <Annotation Term="Core.Description" String="Service supports the asynchronous request preference" />
-      </Term>
-
-      <Term Name="BatchContinueOnErrorSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
-        <Annotation Term="Core.Description" String="Service supports the continue on error preference" />
-      </Term>
-
-      <Term Name="IsolationSupported" Type="Capabilities.IsolationLevel" AppliesTo="EntityContainer">
-        <Annotation Term="Core.Description" String="Supported odata.isolation levels" />
-      </Term>
-      <EnumType Name="IsolationLevel" IsFlags="true">
-        <Member Name="Snapshot" Value="1" />
-      </EnumType>
-
-      <Term Name="CallbackSupported" Type="Capabilities.CallbackType" AppliesTo="EntityContainer EntitySet">
-        <Annotation Term="Core.Description" String="Supports callbacks for the specified protocols" />
-      </Term>
-      <Term Name="CrossJoinSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
-        <Annotation Term="Core.Description" String="Supports cross joins for the entity sets in this container" />
-      </Term>
-      <ComplexType Name="CallbackType">
-        <Property Name="CallbackProtocols" Type="Collection(Capabilities.CallbackProtocol)" />
-        <Annotation Term="Core.Description"
-          String="A non-empty collection lists the full set of supported protocols. A empty collection means 'only HTTP is supported'" />
-      </ComplexType>
-      <ComplexType Name="CallbackProtocol">
-        <Property Name="Id" Type="Edm.String">
-          <Annotation Term="Core.Description" String="Protcol Identifier" />
-        </Property>
-        <Property Name="UrlTemplate" Type="Edm.String">
-          <Annotation Term="Core.Description"
-            String="URL Template including parameters. Parameters are enclosed in curly braces {} as defined in RFC6570" />
-        </Property>
-        <Property Name="DocumentationUrl" Type="Edm.String" Nullable="true">
-          <Annotation Term="Core.Description" String="Human readable description of the meaning of the URL Template parameters" />
-          <Annotation Term="Core.IsURL" />
-        </Property>
-      </ComplexType>
-
-      <Term Name="ChangeTracking" Type="Capabilities.ChangeTrackingType" AppliesTo="EntityContainer EntitySet">
-        <Annotation Term="Core.Description" String="Change tracking capabilities of this service or entity set" />
-      </Term>
-      <ComplexType Name="ChangeTrackingType">
-        <Property Name="Supported" Type="Edm.Boolean" DefaultValue="true">
-          <Annotation Term="Core.Description" String="This entity set supports the odata.track-changes preference" />
-        </Property>
-        <Property Name="FilterableProperties" Type="Collection(Edm.PropertyPath)">
-          <Annotation Term="Core.Description" String="Change tracking supports filters on these properties" />
-        </Property>
-        <Property Name="ExpandableProperties" Type="Collection(Edm.NavigationPropertyPath)">
-          <Annotation Term="Core.Description" String="Change tracking supports these properties expanded" />
-        </Property>
-      </ComplexType>
-
-      <!--Query Capabilities -->
-
-      <Term Name="CountRestrictions" Type="Capabilities.CountRestrictionsType" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Restrictions on /$count path suffix and $count=true system query option" />
-      </Term>
-      <ComplexType Name="CountRestrictionsType">
-        <Property Name="Countable" Type="Edm.Boolean" DefaultValue="true">
-          <Annotation Term="Core.Description" String="Entities can be counted" />
-        </Property>
-        <Property Name="NonCountableProperties" Type="Collection(Edm.PropertyPath)">
-          <Annotation Term="Core.Description" String="These collection properties do not allow /$count segments" />
-        </Property>
-        <Property Name="NonCountableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
-          <Annotation Term="Core.Description" String="These navigation properties do not allow /$count segments" />
-        </Property>
-      </ComplexType>
-
-      <Term Name="NavigationRestrictions" Type="Capabilities.NavigationRestrictionsType" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Restrictions on navigating properties according to OData URL conventions" />
-      </Term>
-      <ComplexType Name="NavigationRestrictionsType">
-        <Property Name="Navigability" Type="Capabilities.NavigationType">
-          <Annotation Term="Core.Description" String="Supported Navigability" />
-        </Property>
-        <Property Name="RestrictedProperties" Type="Collection(Capabilities.NavigationPropertyRestriction)" />
-      </ComplexType>
-      <ComplexType Name="NavigationPropertyRestriction">
-        <Property Name="NavigationProperty" Type="Edm.NavigationPropertyPath">
-          <Annotation Term="Core.Description" String="Navigation properties can be navigated to a single level" />
-        </Property>
-        <Property Name="Navigability" Type="Capabilities.NavigationType">
-          <Annotation Term="Core.Description" String="Navigation properties can be navigated to a single level" />
-        </Property>
-      </ComplexType>
-      <EnumType Name="NavigationType">
-        <Member Name="Recursive">
-          <Annotation Term="Core.Description" String="Navigation properties can be recursively navigated" />
-        </Member>
-        <Member Name="Single">
-          <Annotation Term="Core.Description" String="Navigation properties can be navigated to a single level" />
-        </Member>
-        <Member Name="None">
-          <Annotation Term="Core.Description" String="Navigation properties are not navigable" />
-        </Member>
-      </EnumType>
-
-      <Term Name="IndexableByKey" Type="Core.Tag" DefaultValue="true" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Supports key values according to OData URL conventions" />
-      </Term>
-
-      <Term Name="TopSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Supports $top" />
-      </Term>
-      <Term Name="SkipSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Supports $skip" />
-      </Term>
-
-      <Term Name="BatchSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
-        <Annotation Term="Core.Description" String="Supports $batch requests" />
-      </Term>
-
-      <Term Name="FilterFunctions" Type="Collection(Edm.String)" AppliesTo="EntityContainer EntitySet">
-        <Annotation Term="Core.Description" String="List of functions supported in $filter" />
-      </Term>
-
-      <Term Name="FilterRestrictions" Type="Capabilities.FilterRestrictionsType" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Restrictions on $filter expressions" />
-      </Term>
-      <ComplexType Name="FilterRestrictionsType">
-        <Property Name="Filterable" Type="Edm.Boolean" DefaultValue="true">
-          <Annotation Term="Core.Description" String="$filter is supported" />
-        </Property>
-        <Property Name="RequiresFilter" Type="Edm.Boolean" Nullable="true">
-          <Annotation Term="Core.Description" String="$filter is required" />
-        </Property>
-        <Property Name="RequiredProperties" Type="Collection(Edm.PropertyPath)">
-          <Annotation Term="Core.Description"
-            String="These properties must be specified in the $filter clause (properties of derived types are not allowed here)" />
-        </Property>
-        <Property Name="NonFilterableProperties" Type="Collection(Edm.PropertyPath)">
-          <Annotation Term="Core.Description" String="These properties cannot be used in $filter expressions" />
-        </Property>
-      </ComplexType>
-
-      <Term Name="SortRestrictions" Type="Capabilities.SortRestrictionsType" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Restrictions on $orderby expressions" />
-      </Term>
-      <ComplexType Name="SortRestrictionsType">
-        <Property Name="Sortable" Type="Edm.Boolean" DefaultValue="true">
-          <Annotation Term="Core.Description" String="$orderby is supported" />
-        </Property>
-        <Property Name="AscendingOnlyProperties" Type="Collection(Edm.PropertyPath)">
-          <Annotation Term="Core.Description" String="These properties can only be used for sorting in Ascending order" />
-        </Property>
-        <Property Name="DescendingOnlyProperties" Type="Collection(Edm.PropertyPath)">
-          <Annotation Term="Core.Description" String="These properties can only be used for sorting in Descending order" />
-        </Property>
-        <Property Name="NonSortableProperties" Type="Collection(Edm.PropertyPath)">
-          <Annotation Term="Core.Description" String="These properties cannot be used in $orderby expressions" />
-        </Property>
-      </ComplexType>
-
-      <Term Name="ExpandRestrictions" Type="Capabilities.ExpandRestrictionsType" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Restrictions on $expand expressions" />
-      </Term>
-      <ComplexType Name="ExpandRestrictionsType">
-        <Property Name="Expandable" Type="Edm.Boolean" DefaultValue="true">
-          <Annotation Term="Core.Description" String="$expand is supported" />
-        </Property>
-        <Property Name="NonExpandableProperties" Type="Collection(Edm.NavigationPropertyPath)">
-          <Annotation Term="Core.Description" String="These properties cannot be used in $expand expressions" />
-        </Property>
-      </ComplexType>
-
-      <Term Name="SearchRestrictions" Type="Capabilities.SearchRestrictionsType" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Restrictions on $search expressions" />
-      </Term>
-      <ComplexType Name="SearchRestrictionsType">
-        <Property Name="Searchable" Type="Edm.Boolean" DefaultValue="true">
-          <Annotation Term="Core.Description" String="$search is supported" />
-        </Property>
-        <Property Name="UnsupportedExpressions" Type="Capabilities.SearchExpressions" DefaultValue="none">
-          <Annotation Term="Core.Description" String="Expressions supported in $search" />
-        </Property>
-      </ComplexType>
-      <EnumType Name="SearchExpressions" IsFlags="true">
-        <Member Name="none" Value="0" />
-        <Member Name="AND" Value="1" />
-        <Member Name="OR" Value="2" />
-        <Member Name="NOT" Value="4" />
-        <Member Name="phrase" Value="8" />
-        <Member Name="group" Value="16" />
-      </EnumType>
-
-      <!-- Data Modification Capabilities -->
-
-      <Term Name="InsertRestrictions" Type="Capabilities.InsertRestrictionsType" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Restrictions on insert operations" />
-      </Term>
-      <ComplexType Name="InsertRestrictionsType">
-        <Property Name="Insertable" Type="Edm.Boolean" DefaultValue="true">
-          <Annotation Term="Core.Description" String="Entities can be inserted" />
-        </Property>
-        <Property Name="NonInsertableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
-          <Annotation Term="Core.Description" String="These navigation properties do not allow deep inserts" />
-        </Property>
-      </ComplexType>
-
-      <Term Name="UpdateRestrictions" Type="Capabilities.UpdateRestrictionsType" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Restrictions on update operations" />
-      </Term>
-      <ComplexType Name="UpdateRestrictionsType">
-        <Property Name="Updatable" Type="Edm.Boolean" DefaultValue="true">
-          <Annotation Term="Core.Description" String="Entities can be updated" />
-        </Property>
-        <Property Name="NonUpdatableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
-          <Annotation Term="Core.Description" String="These navigation properties do not allow rebinding" />
-        </Property>
-      </ComplexType>
-
-      <Term Name="DeleteRestrictions" Type="Capabilities.DeleteRestrictionsType" AppliesTo="EntitySet">
-        <Annotation Term="Core.Description" String="Restrictions on delete operations" />
-      </Term>
-      <ComplexType Name="DeleteRestrictionsType">
-        <Property Name="Deletable" Type="Edm.Boolean" DefaultValue="true">
-          <Annotation Term="Core.Description" String="Entities can be deleted" />
-        </Property>
-        <Property Name="NonDeletableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
-          <Annotation Term="Core.Description" String="These navigation properties do not allow DeleteLink requests" />
-        </Property>
-      </ComplexType>
-
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/PersonDetails_1.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/PersonDetails_1.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/PersonDetails_1.json
deleted file mode 100644
index c8b62d3..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/PersonDetails_1.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "@odata.context": "http://services.odata.org/V4/OData/OData.svc/$metadata#PersonDetails/$entity",
-  "@odata.type": "#ODataDemo.PersonDetail",
-  "@odata.id": "http://services.odata.org/V4/OData/OData.svc/PersonDetails(1)",
-  "@odata.editLink": "PersonDetails(1)",
-  "PersonID": 1,
-  "Age@odata.type": "#Byte",
-  "Age": 24,
-  "Gender": true,
-  "Phone": "(208) 555-8097",
-  "Address": {
-    "@odata.type": "#ODataDemo.Address",
-    "Street": "187 Suffolk Ln.",
-    "City": "Boise",
-    "State": "ID",
-    "ZipCode": "83720",
-    "Country": "USA"
-  },
-  "Photo@odata.mediaEditLink": "PersonDetails(1)/Photo",
-  "Person@odata.associationLink": "PersonDetails(1)/Person/$ref",
-  "Person@odata.navigationLink": "PersonDetails(1)/Person"
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/PersonDetails_1.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/PersonDetails_1.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/PersonDetails_1.xml
deleted file mode 100644
index e7fce12..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/PersonDetails_1.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<entry xml:base="http://services.odata.org/V4/OData/OData.svc/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
-       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml" 
-       m:context="http://services.odata.org/V4/OData/OData.svc/$metadata#PersonDetails/$entity">
-  <id>http://services.odata.org/V4/OData/OData.svc/PersonDetails(1)</id>
-  <category term="#ODataDemo.PersonDetail" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
-  <link rel="edit" title="PersonDetail" href="PersonDetails(1)" />
-  <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Person" type="application/xml" title="Person" href="PersonDetails(1)/Person/$ref" />
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Person" type="application/atom+xml;type=entry" title="Person" href="PersonDetails(1)/Person" />
-  <title />
-  <updated>2014-03-31T10:28:24Z</updated>
-  <author>
-    <name />
-  </author>
-  <link rel="http://docs.oasis-open.org/odata/ns/edit-media/Photo" title="Photo" href="PersonDetails(1)/Photo" />
-  <content type="application/xml">
-    <m:properties>
-      <d:PersonID m:type="Int32">1</d:PersonID>
-      <d:Age m:type="Byte">24</d:Age>
-      <d:Gender m:type="Boolean">true</d:Gender>
-      <d:Phone>(208) 555-8097</d:Phone>
-      <d:Address m:type="#ODataDemo.Address">
-        <d:Street>187 Suffolk Ln.</d:Street>
-        <d:City>Boise</d:City>
-        <d:State>ID</d:State>
-        <d:ZipCode>83720</d:ZipCode>
-        <d:Country>USA</d:Country>
-      </d:Address>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5.json
deleted file mode 100644
index 0545d78..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products/$entity",
-  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Product",
-  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)",
-  "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)",
-  "ProductID": 5,
-  "Name": "Cheetos",
-  "QuantityPerUnit": "100g Bag",
-  "UnitPrice@odata.type": "#Single",
-  "UnitPrice": 3.24,
-  "QuantityInStock": 100,
-  "Discontinued": true,
-  "UserAccess@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
-  "UserAccess": "None",
-  "SkinColor@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Color",
-  "SkinColor": "Red",
-  "CoverColors@odata.type": "#Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)",
-  "CoverColors": ["Green", "Blue", "Blue"],
-  "Details@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Details/$ref",
-  "Details@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Details",
-  "#Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight": {
-    "title": "Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight",
-    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight"
-  },
-  "#Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails": {
-    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails",
-    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails"
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5.xml
deleted file mode 100644
index 409799e..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<entry xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products/$entity">
-  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)</id>
-  <category term="#Microsoft.Test.OData.Services.ODataWCFService.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
-  <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)" />
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Details" type="application/atom+xml;type=feed" title="Details"><m:inline><feed><ref xmlns="http://docs.oasis-open.org/odata/ns/metadata" id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Details"/></feed></m:inline></link>
-  <title />
-  <updated>2014-03-28T11:24:49Z</updated>
-  <author>
-    <name />
-  </author>
-  <content type="application/xml">
-    <m:properties>
-      <d:ProductID m:type="Int32">5</d:ProductID>
-      <d:Name>Cheetos</d:Name>
-      <d:QuantityPerUnit>100g Bag</d:QuantityPerUnit>
-      <d:UnitPrice m:type="Single">3.24</d:UnitPrice>
-      <d:QuantityInStock m:type="Int32">100</d:QuantityInStock>
-      <d:Discontinued m:type="Boolean">true</d:Discontinued>
-      <d:UserAccess m:type="#Microsoft.Test.OData.Services.ODataWCFService.AccessLevel">None</d:UserAccess>
-      <d:SkinColor m:type="#Microsoft.Test.OData.Services.ODataWCFService.Color">Red</d:SkinColor>
-      <d:CoverColors m:type="#Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)">
-        <m:element>Green</m:element>
-        <m:element>Blue</m:element>
-        <m:element>Blue</m:element>
-      </d:CoverColors>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_CoverColors.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_CoverColors.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_CoverColors.json
deleted file mode 100644
index 96bf22a..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_CoverColors.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products(5)/CoverColors",
-  "@odata.type": "#Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)",
-  "value": ["Green", "Blue", "Blue"]
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_CoverColors.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_CoverColors.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_CoverColors.xml
deleted file mode 100644
index 0dab08c..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_CoverColors.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<m:value xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
-         xmlns:georss="http://www.georss.org/georss" 
-         xmlns:gml="http://www.opengis.net/gml" 
-         m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products(5)/CoverColors" m:type="#Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)" 
-         xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">
-  <m:element>Green</m:element>
-  <m:element>Blue</m:element>
-  <m:element>Blue</m:element>
-</m:value>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_SkinColor.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_SkinColor.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_SkinColor.json
deleted file mode 100644
index b5e26da..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_SkinColor.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products(5)/SkinColor",
-  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Color",
-  "value": "Red"
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_SkinColor.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_SkinColor.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_SkinColor.xml
deleted file mode 100644
index be392fd..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/Products_5_SkinColor.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<m:value xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
-         xmlns:georss="http://www.georss.org/georss" 
-         xmlns:gml="http://www.opengis.net/gml" 
-         m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products(5)/SkinColor" 
-         m:type="#Microsoft.Test.OData.Services.ODataWCFService.Color" 
-         xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">Red</m:value>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/VipCustomer.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/VipCustomer.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/VipCustomer.json
deleted file mode 100644
index 5f3f697..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/VipCustomer.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#VipCustomer",
-  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Customer",
-  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer",
-  "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer",
-  "PersonID": 1,
-  "FirstName": "Bob",
-  "LastName": "Cat",
-  "MiddleName": "Vat",
-  "HomeAddress": {
-    "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Address",
-    "Street": "1 Microsoft Way",
-    "City": "London",
-    "PostalCode": "98052"
-  },
-  "Home@odata.type": "#GeographyPoint",
-  "Home": {
-    "type": "Point",
-    "coordinates": [23.1, 32.1],
-    "crs": {
-      "type": "name",
-      "properties": {
-        "name": "EPSG:4326"
-      }
-    }
-  },
-  "Numbers@odata.type": "#Collection(String)",
-  "Numbers": ["111-111-1111"],
-  "Emails@odata.type": "#Collection(String)",
-  "Emails": ["abc@abc.com"],
-  "City": "London",
-  "Birthday@odata.type": "#DateTimeOffset",
-  "Birthday": "1957-04-03T00:00:00Z",
-  "TimeBetweenLastTwoOrders@odata.type": "#Duration",
-  "TimeBetweenLastTwoOrders": "PT0.0000001S",
-  "Parent@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Parent/$ref",
-  "Parent@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Parent",
-  "Orders@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Orders/$ref",
-  "Orders@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Orders",
-  "Company@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Company/$ref",
-  "Company@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Company",
-  "#Microsoft.Test.OData.Services.ODataWCFService.ResetAddress": {
-    "title": "Microsoft.Test.OData.Services.ODataWCFService.ResetAddress",
-    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Microsoft.Test.OData.Services.ODataWCFService.ResetAddress"
-  },
-  "#Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress": {
-    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress",
-    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress"
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/VipCustomer.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/VipCustomer.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/VipCustomer.xml
deleted file mode 100644
index cc5c04d..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/VipCustomer.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<entry xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
-       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml" 
-       m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#VipCustomer">
-  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer</id>
-  <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
-  <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer" />
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Parent" />
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" title="Orders"><m:inline><feed><ref xmlns="http://docs.oasis-open.org/odata/ns/metadata" id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Orders"/></feed></m:inline></link>
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Company" />
-  <title />
-  <updated>2014-03-28T13:03:32Z</updated>
-  <author>
-    <name />
-  </author>
-  <m:action metadata="#Microsoft.Test.OData.Services.ODataWCFService.ResetAddress" 
-            target="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Microsoft.Test.OData.Services.ODataWCFService.ResetAddress" 
-            title="Microsoft.Test.OData.Services.ODataWCFService.ResetAddress"/>
-  <m:action metadata="#Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress" 
-            target="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress" 
-            title="Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress"/>
-  <content type="application/xml">
-    <m:properties>
-      <d:PersonID m:type="Int32">1</d:PersonID>
-      <d:FirstName>Bob</d:FirstName>
-      <d:LastName>Cat</d:LastName>
-      <d:MiddleName>Vat</d:MiddleName>
-      <d:HomeAddress m:type="#Microsoft.Test.OData.Services.ODataWCFService.Address">
-        <d:Street>1 Microsoft Way</d:Street>
-        <d:City>London</d:City>
-        <d:PostalCode>98052</d:PostalCode>
-      </d:HomeAddress>
-      <d:Home m:type="GeographyPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pos>32.1 23.1</gml:pos>
-        </gml:Point>
-      </d:Home>
-      <d:Numbers m:type="#Collection(String)">
-        <m:element>111-111-1111</m:element>
-      </d:Numbers>
-      <d:Emails m:type="#Collection(String)">
-        <m:element>abc@abc.com</m:element>
-      </d:Emails>
-      <d:City>London</d:City>
-      <d:Birthday m:type="DateTimeOffset">1957-04-03T00:00:00Z</d:Birthday>
-      <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000001S</d:TimeBetweenLastTwoOrders>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/annotated.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/annotated.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/annotated.json
deleted file mode 100644
index a69884b..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/annotated.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Customers/$entity",
-  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Customer",
-  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)",
-  "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)",
-  "@com.contoso.display.highlight": true,
-  "@com.contoso.PersonalInfo.PhoneNumbers": ["(203)555-1718", "(203)555-1719"],
-  "PersonID": 1,
-  "FirstName": "Bob",
-  "LastName@com.contoso.display.style": {
-    "@odata.type": "#com.contoso.display.styleType",
-    "title": true,
-    "order": 1
-  },
-  "LastName": "Cat",
-  "MiddleName": null,
-  "HomeAddress": {
-    "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.HomeAddress",
-    "Street": "1 Microsoft Way",
-    "City": "London",
-    "PostalCode": "98052",
-    "FamilyName": "Cats"
-  },
-  "Home@odata.type": "#GeographyPoint",
-  "Home": {
-    "type": "Point",
-    "coordinates": [23.1, 32.1],
-    "crs": {
-      "type": "name",
-      "properties": {
-        "name": "EPSG:4326"
-      }
-    }
-  },
-  "Numbers@odata.type": "#Collection(String)",
-  "Numbers": ["111-111-1111", "0-12", "3-10", "bca", "ayz"],
-  "Emails@odata.type": "#Collection(String)",
-  "Emails": ["abc@abc.com"],
-  "City": "London",
-  "Birthday@odata.type": "#DateTimeOffset",
-  "Birthday": "1957-04-03T00:00:00Z",
-  "TimeBetweenLastTwoOrders@odata.type": "#Duration",
-  "TimeBetweenLastTwoOrders": "PT0.0000001S",
-  "Parent@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent/$ref",
-  "Parent@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent",
-  "Orders@com.contoso.display.style": {
-    "@odata.type": "#com.contoso.display.styleType",
-    "order": 2
-  },
-  "Orders@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders/$ref",
-  "Orders@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders",
-  "Company@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Company/$ref",
-  "Company@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Company",
-  "#Microsoft.Test.OData.Services.ODataWCFService.ResetAddress": {
-    "title": "Microsoft.Test.OData.Services.ODataWCFService.ResetAddress",
-    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Microsoft.Test.OData.Services.ODataWCFService.ResetAddress"
-  },
-  "#Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress": {
-    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress",
-    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress"
-  }
-}
\ No newline at end of file


[6/8] olingo-odata4 git commit: [OLINGO-431] Delete unnecessary v4 in package name

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
deleted file mode 100644
index d22bb6f..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
+++ /dev/null
@@ -1,74 +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.client.core.v4;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.client.api.domain.ClientValue;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.junit.Test;
-
-import java.util.Calendar;
-
-import static org.junit.Assert.assertEquals;
-
-public class PrimitiveValueTest extends AbstractTest {
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  @Test
-  public void timeOfDay() throws EdmPrimitiveTypeException {
-    final Calendar expected = Calendar.getInstance();
-    expected.clear();
-    expected.set(2013, 0, 10, 21, 45, 17);
-
-    final ClientValue value = getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.TimeOfDay).setValue(expected).build();
-    assertEquals(EdmPrimitiveTypeKind.TimeOfDay, value.asPrimitive().getTypeKind());
-
-    final Calendar actual = value.asPrimitive().toCastValue(Calendar.class);
-    assertEquals(expected.get(Calendar.HOUR), actual.get(Calendar.HOUR));
-    assertEquals(expected.get(Calendar.MINUTE), actual.get(Calendar.MINUTE));
-    assertEquals(expected.get(Calendar.SECOND), actual.get(Calendar.SECOND));
-
-    assertEquals("21:45:17", value.asPrimitive().toString());
-  }
-
-  @Test
-  public void Date() throws EdmPrimitiveTypeException {
-    final Calendar expected = Calendar.getInstance();
-    expected.clear();
-    expected.set(2013, 0, 10);
-
-    final ClientValue value = getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.Date).setValue(expected).build();
-    assertEquals(EdmPrimitiveTypeKind.Date, value.asPrimitive().getTypeKind());
-
-    final Calendar actual = value.asPrimitive().toCastValue(Calendar.class);
-    assertEquals(expected.get(Calendar.YEAR), actual.get(Calendar.YEAR));
-    assertEquals(expected.get(Calendar.MONTH), actual.get(Calendar.MONTH));
-    assertEquals(expected.get(Calendar.DATE), actual.get(Calendar.DATE));
-
-    assertEquals("2013-01-10", value.asPrimitive().toString());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
deleted file mode 100644
index 0ee5471..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
+++ /dev/null
@@ -1,139 +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.client.core.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.InputStream;
-import java.util.Iterator;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.domain.ClientCollectionValue;
-import org.apache.olingo.client.api.domain.ClientComplexValue;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.domain.ClientValue;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.client.api.serialization.ODataDeserializerException;
-import org.apache.olingo.client.api.serialization.ODataSerializerException;
-import org.junit.Test;
-
-public class PropertyTest extends AbstractTest {
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  private void _enum(final ContentType contentType) throws ODataDeserializerException, ODataSerializerException {
-    final InputStream input = getClass().getResourceAsStream("Products_5_SkinColor." + getSuffix(contentType));
-    final ClientProperty property = getClient().getReader().readProperty(input, contentType);
-    assertNotNull(property);
-    assertTrue(property.hasEnumValue());
-
-    final ClientProperty written = getClient().getReader().readProperty(
-            getClient().getWriter().writeProperty(property, contentType), contentType);
-    // This is needed because type information gets lost with serialization
-    if (contentType.isCompatible(ContentType.APPLICATION_XML)) {
-      final ClientProperty comparable = getClient().getObjectFactory().newEnumProperty(property.getName(),
-              getClient().getObjectFactory().
-              newEnumValue(property.getEnumValue().getTypeName(), written.getEnumValue().getValue()));
-
-      assertEquals(property, comparable);
-    }
-  }
-
-  @Test
-  public void xmlEnum() throws Exception {
-    _enum(ContentType.APPLICATION_XML);
-  }
-
-  @Test
-  public void jsonEnum() throws Exception {
-    _enum(ContentType.JSON);
-  }
-
-  private void complex(final ContentType contentType) throws ODataDeserializerException, ODataSerializerException {
-    final InputStream input = getClass().getResourceAsStream("Employees_3_HomeAddress." + getSuffix(contentType));
-    final ClientProperty property = getClient().getReader().readProperty(input, contentType);
-    assertNotNull(property);
-    assertTrue(property.hasComplexValue());
-    assertEquals(3, property.getComplexValue().size());
-
-    final ClientProperty written = getClient().getReader().readProperty(
-            getClient().getWriter().writeProperty(property, contentType), contentType);
-    // This is needed because type information gets lost with JSON serialization
-    final ClientComplexValue typedValue = getClient().getObjectFactory().
-            newComplexValue(property.getComplexValue().getTypeName());
-    for (final Iterator<ClientProperty> itor = written.getComplexValue().iterator(); itor.hasNext();) {
-      final ClientProperty prop = itor.next();
-      typedValue.add(prop);
-    }
-    final ClientProperty comparable = getClient().getObjectFactory().
-            newComplexProperty(property.getName(), typedValue);
-
-    assertEquals(property, comparable);
-  }
-
-  @Test
-  public void xmlComplex() throws Exception {
-    complex(ContentType.APPLICATION_XML);
-  }
-
-  @Test
-  public void jsonComplex() throws Exception {
-    complex(ContentType.JSON);
-  }
-
-  private void collection(final ContentType contentType) throws ODataDeserializerException, ODataSerializerException {
-    final InputStream input = getClass().getResourceAsStream("Products_5_CoverColors." + getSuffix(contentType));
-    final ClientProperty property = getClient().getReader().readProperty(input, contentType);
-    assertNotNull(property);
-    assertTrue(property.hasCollectionValue());
-    assertEquals(3, property.getCollectionValue().size());
-
-    final ClientProperty written = getClient().getReader().readProperty(
-            getClient().getWriter().writeProperty(property, contentType), contentType);
-    // This is needed because type information gets lost with JSON serialization
-    if(contentType.isCompatible(ContentType.APPLICATION_XML)) {
-      final ClientCollectionValue<ClientValue> typedValue = getClient().getObjectFactory().
-              newCollectionValue(property.getCollectionValue().getTypeName());
-      for (final Iterator<ClientValue> itor = written.getCollectionValue().iterator(); itor.hasNext();) {
-        final ClientValue value = itor.next();
-        typedValue.add(value);
-      }
-      final ClientProperty comparable = getClient().getObjectFactory().
-              newCollectionProperty(property.getName(), typedValue);
-
-      assertEquals(property, comparable);
-    }
-  }
-
-  @Test
-  public void xmlCollection() throws Exception {
-    collection(ContentType.APPLICATION_XML);
-  }
-
-  @Test
-  public void jsonCollection() throws Exception {
-    collection(ContentType.JSON);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
deleted file mode 100644
index 008b165..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
+++ /dev/null
@@ -1,75 +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.client.core.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.data.ServiceDocument;
-import org.apache.olingo.client.api.domain.ClientServiceDocument;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.client.api.serialization.ODataDeserializerException;
-import org.junit.Test;
-
-public class ServiceDocumentTest extends AbstractTest {
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  private String getFileExtension(final ContentType contentType) {
-    return contentType.isCompatible(ContentType.APPLICATION_XML) ? "xml" : "json";
-  }
-
-  private ClientServiceDocument parse(final ContentType contentType) throws ODataDeserializerException {
-    ResWrap<ServiceDocument> service = getClient().getDeserializer(contentType).toServiceDocument(
-        getClass().getResourceAsStream("serviceDocument." + getFileExtension(contentType)));
-
-    assertEquals(URI.create("http://host/service/$metadata"), service.getContextURL());
-    assertEquals("W/\"MjAxMy0wNS0xM1QxNDo1NFo=\"", service.getMetadataETag());
-
-    final ClientServiceDocument serviceDocument = getClient().getBinder().getODataServiceDocument(service.getPayload());
-    assertNotNull(serviceDocument);
-
-    assertTrue(serviceDocument.getEntitySetNames().contains("Order Details"));
-    assertEquals(URI.create("http://host/service/TopProducts"),
-        serviceDocument.getFunctionImportURI("TopProducts"));
-    assertEquals(URI.create("http://host/HR/"),
-        serviceDocument.getRelatedServiceDocumentsURIs().iterator().next());
-
-    return serviceDocument;
-  }
-
-  @Test
-  public void json() throws Exception {
-    parse(ContentType.JSON);
-  }
-
-  @Test
-  public void xml() throws Exception {
-    parse(ContentType.APPLICATION_XML);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Accounts_101_expand_MyPaymentInstruments.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Accounts_101_expand_MyPaymentInstruments.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Accounts_101_expand_MyPaymentInstruments.json
new file mode 100644
index 0000000..776d578
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Accounts_101_expand_MyPaymentInstruments.json
@@ -0,0 +1,94 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Accounts/$entity",
+  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Account",
+  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)",
+  "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)",
+  "AccountID": 101,
+  "Country": "US",
+  "AccountInfo": {
+    "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
+    "FirstName": "Alex",
+    "LastName": "Green",
+    "MiddleName": "Hood"
+  },
+  "MyPaymentInstruments@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Accounts(101)/MyPaymentInstruments",
+  "MyPaymentInstruments@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments/$ref",
+  "MyPaymentInstruments@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments",
+  "MyPaymentInstruments": [{
+      "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
+      "@odata.id": "Accounts(101)/MyPaymentInstruments(101901)",
+      "@odata.editLink": "Accounts(101)/MyPaymentInstruments(101901)",
+      "PaymentInstrumentID": 101901,
+      "FriendlyName": "101 first PI",
+      "CreatedDate@odata.type": "#DateTimeOffset",
+      "CreatedDate": "2012-11-01T00:00:00Z",
+      "TheStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/TheStoredPI/$ref",
+      "TheStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/TheStoredPI",
+      "BillingStatements@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/BillingStatements/$ref",
+      "BillingStatements@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/BillingStatements",
+      "BackupStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/BackupStoredPI/$ref",
+      "BackupStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101901)/BackupStoredPI"
+    }, {
+      "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
+      "@odata.id": "Accounts(101)/MyPaymentInstruments(101902)",
+      "@odata.editLink": "Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
+      "PaymentInstrumentID": 101902,
+      "FriendlyName": "101 frist credit PI",
+      "CreatedDate@odata.type": "#DateTimeOffset",
+      "CreatedDate": "2012-11-01T00:00:00Z",
+      "CardNumber": "6000000000000000",
+      "CVV": "234",
+      "HolderName": "Alex",
+      "Balance": 100.0,
+      "ExperationDate@odata.type": "#DateTimeOffset",
+      "ExperationDate": "2022-11-01T00:00:00Z",
+      "TheStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/TheStoredPI/$ref",
+      "TheStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/TheStoredPI",
+      "BillingStatements@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BillingStatements/$ref",
+      "BillingStatements@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BillingStatements",
+      "BackupStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BackupStoredPI/$ref",
+      "BackupStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BackupStoredPI",
+      "CreditRecords@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/CreditRecords/$ref",
+      "CreditRecords@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101902)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/CreditRecords"
+    }, {
+      "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
+      "@odata.id": "Accounts(101)/MyPaymentInstruments(101903)",
+      "@odata.editLink": "Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
+      "PaymentInstrumentID": 101903,
+      "FriendlyName": "101 second credit PI",
+      "CreatedDate@odata.type": "#DateTimeOffset",
+      "CreatedDate": "2012-11-01T00:00:00Z",
+      "CardNumber": "8000000000000000",
+      "CVV": "012",
+      "HolderName": "James",
+      "Balance": 300.0,
+      "ExperationDate@odata.type": "#DateTimeOffset",
+      "ExperationDate": "2022-10-02T00:00:00Z",
+      "TheStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/TheStoredPI/$ref",
+      "TheStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/TheStoredPI",
+      "BillingStatements@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BillingStatements/$ref",
+      "BillingStatements@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BillingStatements",
+      "BackupStoredPI@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BackupStoredPI/$ref",
+      "BackupStoredPI@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/BackupStoredPI",
+      "CreditRecords@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/CreditRecords/$ref",
+      "CreditRecords@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments(101903)/Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI/CreditRecords"
+    }],
+  "MyGiftCard@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyGiftCard/$ref",
+  "MyGiftCard@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyGiftCard",
+  "ActiveSubscriptions@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/ActiveSubscriptions/$ref",
+  "ActiveSubscriptions@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/ActiveSubscriptions",
+  "AvailableSubscriptionTemplatess@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/AvailableSubscriptionTemplatess/$ref",
+  "AvailableSubscriptionTemplatess@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/AvailableSubscriptionTemplatess",
+  "#Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI": {
+    "title": "Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI",
+    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI"
+  },
+  "#Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI": {
+    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI",
+    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI"
+  },
+  "#Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo": {
+    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo",
+    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo"
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Accounts_101_expand_MyPaymentInstruments.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Accounts_101_expand_MyPaymentInstruments.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Accounts_101_expand_MyPaymentInstruments.xml
new file mode 100644
index 0000000..75ec28d
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Accounts_101_expand_MyPaymentInstruments.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<entry xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" 
+       xmlns="http://www.w3.org/2005/Atom" 
+       xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
+       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
+       xmlns:georss="http://www.georss.org/georss" 
+       xmlns:gml="http://www.opengis.net/gml" 
+       m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Accounts/$entity">
+  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)</id>
+  <category term="#Microsoft.Test.OData.Services.ODataWCFService.Account" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+  <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/MyGiftCard" type="application/atom+xml;type=entry" title="MyGiftCard" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyGiftCard" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/MyPaymentInstruments" type="application/atom+xml;type=feed" title="MyPaymentInstruments" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/MyPaymentInstruments">
+    <m:inline>
+      <feed>
+        <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/MyPaymentInstruments</id>
+        <title />
+        <updated>2014-03-31T09:46:15Z</updated>
+        <entry>
+          <category term="#Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/TheStoredPI" type="application/atom+xml;type=entry" title="TheStoredPI" href="potato" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/BillingStatements" type="application/atom+xml;type=feed" title="BillingStatements" href="potato" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/BackupStoredPI" type="application/atom+xml;type=entry" title="BackupStoredPI" href="potato" />
+          <id />
+          <title />
+          <updated>2014-03-31T09:46:15Z</updated>
+          <author>
+            <name />
+          </author>
+          <content type="application/xml">
+            <m:properties>
+              <d:PaymentInstrumentID m:type="Int32">101901</d:PaymentInstrumentID>
+              <d:FriendlyName>101 first PI</d:FriendlyName>
+              <d:CreatedDate m:type="DateTimeOffset">2012-11-01T00:00:00Z</d:CreatedDate>
+            </m:properties>
+          </content>
+        </entry>
+        <entry>
+          <category term="#Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/TheStoredPI" type="application/atom+xml;type=entry" title="TheStoredPI" href="potato" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/BillingStatements" type="application/atom+xml;type=feed" title="BillingStatements" href="potato" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/BackupStoredPI" type="application/atom+xml;type=entry" title="BackupStoredPI" href="potato" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/CreditRecords" type="application/atom+xml;type=feed" title="CreditRecords" href="potato" />
+          <id />
+          <title />
+          <updated>2014-03-31T09:46:15Z</updated>
+          <author>
+            <name />
+          </author>
+          <content type="application/xml">
+            <m:properties>
+              <d:PaymentInstrumentID m:type="Int32">101902</d:PaymentInstrumentID>
+              <d:FriendlyName>101 frist credit PI</d:FriendlyName>
+              <d:CreatedDate m:type="DateTimeOffset">2012-11-01T00:00:00Z</d:CreatedDate>
+              <d:CardNumber>6000000000000000</d:CardNumber>
+              <d:CVV>234</d:CVV>
+              <d:HolderName>Alex</d:HolderName>
+              <d:Balance m:type="Double">100</d:Balance>
+              <d:ExperationDate m:type="DateTimeOffset">2022-11-01T00:00:00Z</d:ExperationDate>
+            </m:properties>
+          </content>
+        </entry>
+        <entry>
+          <category term="#Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/TheStoredPI" type="application/atom+xml;type=entry" title="TheStoredPI" href="potato" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/BillingStatements" type="application/atom+xml;type=feed" title="BillingStatements" href="potato" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/BackupStoredPI" type="application/atom+xml;type=entry" title="BackupStoredPI" href="potato" />
+          <link rel="http://docs.oasis-open.org/odata/ns/related/CreditRecords" type="application/atom+xml;type=feed" title="CreditRecords" href="potato" />
+          <id />
+          <title />
+          <updated>2014-03-31T09:46:15Z</updated>
+          <author>
+            <name />
+          </author>
+          <content type="application/xml">
+            <m:properties>
+              <d:PaymentInstrumentID m:type="Int32">101903</d:PaymentInstrumentID>
+              <d:FriendlyName>101 second credit PI</d:FriendlyName>
+              <d:CreatedDate m:type="DateTimeOffset">2012-11-01T00:00:00Z</d:CreatedDate>
+              <d:CardNumber>8000000000000000</d:CardNumber>
+              <d:CVV>012</d:CVV>
+              <d:HolderName>James</d:HolderName>
+              <d:Balance m:type="Double">300</d:Balance>
+              <d:ExperationDate m:type="DateTimeOffset">2022-10-02T00:00:00Z</d:ExperationDate>
+            </m:properties>
+          </content>
+        </entry>
+      </feed>
+    </m:inline>
+  </link>
+  <link rel="http://docs.oasis-open.org/odata/ns/related/ActiveSubscriptions" type="application/atom+xml;type=feed" title="ActiveSubscriptions" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/ActiveSubscriptions" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/AvailableSubscriptionTemplatess" type="application/atom+xml;type=feed" title="AvailableSubscriptionTemplatess" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Accounts(101)/AvailableSubscriptionTemplatess" />
+  <title />
+  <updated>2014-03-31T09:46:15Z</updated>
+  <author>
+    <name />
+  </author>
+  <content type="application/xml">
+    <m:properties>
+      <d:AccountID m:type="Int32">101</d:AccountID>
+      <d:Country>US</d:Country>
+      <d:AccountInfo m:type="#Microsoft.Test.OData.Services.ODataWCFService.AccountInfo">
+        <d:FirstName>Alex</d:FirstName>
+        <d:LastName>Green</d:LastName>
+        <d:MiddleName>Hood</d:MiddleName>
+      </d:AccountInfo>
+    </m:properties>
+  </content>
+</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json
new file mode 100644
index 0000000..eceecbb
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json
@@ -0,0 +1,16 @@
+{
+  "@odata.context": "http://services.odata.org/V4/OData/OData.svc/$metadata#Advertisements/$entity",
+  "@odata.type": "#ODataDemo.Advertisement",
+  "@odata.id": "http://services.odata.org/V4/OData/OData.svc/Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)",
+  "@odata.editLink": "Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)",
+  "@odata.mediaEditLink": "Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value",
+  "@odata.mediaContentType": "*/*",
+  "@odata.mediaEtag": "\"8zOOKKvgOtptr4gt8IrnapX3jds=\"",
+  "ID@odata.type": "#Guid",
+  "ID": "f89dee73-af9f-4cd4-b330-db93c25ff3c7",
+  "Name": "Old School Lemonade Store, Retro Style",
+  "AirDate@odata.type": "#DateTimeOffset",
+  "AirDate": "2012-11-07T00:00:00Z",
+  "FeaturedProduct@odata.associationLink": "Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/FeaturedProduct/$ref",
+  "FeaturedProduct@odata.navigationLink": "Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/FeaturedProduct"
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml
new file mode 100644
index 0000000..068cb53
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<entry xml:base="http://services.odata.org/V4/OData/OData.svc/" 
+       xmlns="http://www.w3.org/2005/Atom" 
+       xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
+       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
+       xmlns:georss="http://www.georss.org/georss" 
+       xmlns:gml="http://www.opengis.net/gml" 
+       m:context="http://services.odata.org/V4/OData/OData.svc/$metadata#Advertisements/$entity">
+  <id>http://services.odata.org/V4/OData/OData.svc/Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)</id>
+  <category term="#ODataDemo.Advertisement" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+  <link rel="edit" title="Advertisement" href="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)" />
+  <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/FeaturedProduct" type="application/xml" title="FeaturedProduct" href="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/FeaturedProduct/$ref" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/FeaturedProduct" type="application/atom+xml;type=entry" title="FeaturedProduct" href="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/FeaturedProduct" />
+  <title />
+  <updated>2014-03-31T10:24:52Z</updated>
+  <author>
+    <name />
+  </author>
+  <link rel="edit-media" title="Advertisement" href="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value" m:etag="&quot;8zOOKKvgOtptr4gt8IrnapX3jds=&quot;" />
+  <content type="*/*" src="Advertisements(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value" />
+  <m:properties>
+    <d:ID m:type="Guid">f89dee73-af9f-4cd4-b330-db93c25ff3c7</d:ID>
+    <d:Name>Old School Lemonade Store, Retro Style</d:Name>
+    <d:AirDate m:type="DateTimeOffset">2012-11-07T00:00:00Z</d:AirDate>
+  </m:properties>
+</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customer.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customer.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customer.json
new file mode 100644
index 0000000..938297c
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customer.json
@@ -0,0 +1,37 @@
+{
+  "@odata.context": "http://localhost:9080/stub/StaticService/V40/Static.svc/$metadata#People/$entity",
+  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Customer",
+  "PersonID@odata.type": "Int32",
+  "PersonID": 976,
+  "FirstName@odata.type": "String",
+  "FirstName": "Test",
+  "LastName@odata.type": "String",
+  "LastName": "Test",
+  "HomeAddress": {
+    "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
+    "Street@odata.type": "String",
+    "Street": "V.le Gabriele D'Annunzio",
+    "City@odata.type": "String",
+    "City": "Pescara",
+    "PostalCode@odata.type": "String",
+    "PostalCode": "65127",
+    "CompanyName@odata.type": "String",
+    "CompanyName": "Tirasa"
+  },
+  "Numbers@odata.type": "#Collection(String)",
+  "Numbers": [],
+  "Emails@odata.type": "#Collection(String)",
+  "Emails": [],
+  "City@odata.type": "String",
+  "City": "Pescara",
+  "Birthday@odata.type": "DateTimeOffset",
+  "Birthday": "1977-09-08T02:00:00+02:00",
+  "TimeBetweenLastTwoOrders@odata.type": "Duration",
+  "TimeBetweenLastTwoOrders": "PT0.0000002S",
+  "MiddleName@odata.type": "String",
+  "MiddleName": null,
+  "Home@odata.type": "String",
+  "Home": null,
+  "@odata.editLink": "http://localhost:9080/stub/StaticService/V40/Static.svc/People(976)",
+  "Parent@odata.navigationLink": "People(976)/Parent"
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customer.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customer.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customer.xml
new file mode 100644
index 0000000..f012a4d
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customer.xml
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+
+    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.
+
+-->
+<entry xmlns="http://www.w3.org/2005/Atom" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:gml="http://www.opengis.net/gml" xmlns:georss="http://www.georss.org/georss" m:context="http://localhost:9080/stub/StaticService/V40/Static.svc/$metadata#People/$entity" xml:base="http://localhost:9080/stub/StaticService/V40/Static.svc/">
+  <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="#Microsoft.Test.OData.Services.ODataWCFService.Customer"/>
+  <link rel="edit" title="People" href="http://localhost:9080/stub/StaticService/V40/Static.svc/People(976)"/>
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" title="Parent" href="People(976)/Parent" type="application/atom+xml;type=entry"/>
+  <content type="application/xml">
+    <m:properties>
+      <d:PersonID m:type="Int32">976</d:PersonID>
+      <d:FirstName>Test</d:FirstName>
+      <d:LastName>Test</d:LastName>
+      <d:HomeAddress m:type="#Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress">
+        <d:Street>V.le Gabriele D'Annunzio</d:Street>
+        <d:City>Pescara</d:City>
+        <d:PostalCode>65127</d:PostalCode>
+        <d:CompanyName>Tirasa</d:CompanyName>
+      </d:HomeAddress>
+      <d:Numbers m:type="#Collection(String)"/>
+      <d:Emails m:type="#Collection(String)"/>
+      <d:City>Pescara</d:City>
+      <d:Birthday m:type="DateTimeOffset">1977-09-08T02:00:00+02:00</d:Birthday>
+      <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000002S</d:TimeBetweenLastTwoOrders>
+      <d:MiddleName m:null="true"/>
+      <d:Home m:null="true"/>
+    </m:properties>
+  </content>
+</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.json
new file mode 100644
index 0000000..c37d5a5
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.json
@@ -0,0 +1,57 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Customers",
+  "@odata.count": 2,
+  "value": [{
+      "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)",
+      "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)",
+      "PersonID": 1,
+      "FirstName": "Bob",
+      "LastName": "Cat",
+      "MiddleName": null,
+      "HomeAddress": {
+        "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.HomeAddress",
+        "Street": "1 Microsoft Way",
+        "City": "London",
+        "PostalCode": "98052",
+        "FamilyName": "Cats"
+      },
+      "Home": {
+        "type": "Point",
+        "coordinates": [23.1, 32.1],
+        "crs": {
+          "type": "name",
+          "properties": {
+            "name": "EPSG:4326"
+          }
+        }
+      },
+      "Numbers": ["111-111-1111"],
+      "Emails": ["abc@abc.com"],
+      "City": "London",
+      "Birthday": "1957-04-03T00:00:00Z",
+      "TimeBetweenLastTwoOrders": "PT0.0000001S"
+    }, {
+      "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)",
+      "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)",
+      "PersonID": 2,
+      "FirstName": "Jill",
+      "LastName": "Jones",
+      "MiddleName": null,
+      "HomeAddress": null,
+      "Home": {
+        "type": "Point",
+        "coordinates": [161.8, 15.0],
+        "crs": {
+          "type": "name",
+          "properties": {
+            "name": "EPSG:4326"
+          }
+        }
+      },
+      "Numbers": [],
+      "Emails": [],
+      "City": "Sydney",
+      "Birthday": "1983-01-15T00:00:00Z",
+      "TimeBetweenLastTwoOrders": "PT0.0000002S"
+    }]
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.xml
new file mode 100644
index 0000000..a0adedd
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Customers.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<feed xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" 
+      xmlns="http://www.w3.org/2005/Atom" 
+      xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
+      xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
+      xmlns:georss="http://www.georss.org/georss" 
+      xmlns:gml="http://www.opengis.net/gml" 
+      m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Customers">
+  <m:count>2</m:count>
+  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers</id>
+  <title/>
+  <updated>2014-03-31T09:35:14Z</updated>
+  <entry>
+    <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)</id>
+    <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
+    <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)"/>
+    <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent"/>
+    <link rel="http://docs.oasis-open.org/odata/ns/related/Orders"
+	   type="application/atom+xml;type=feed" title="Orders">
+	   <m:inline><feed><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders"/></feed></m:inline></link>
+    <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Company"/>
+    <title/>
+    <updated>2014-03-31T09:35:14Z</updated>
+    <author>
+      <name/>
+    </author>
+    <content type="application/xml">
+      <m:properties>
+        <d:PersonID m:type="Int32">1</d:PersonID>
+        <d:FirstName>Bob</d:FirstName>
+        <d:LastName>Cat</d:LastName>
+        <d:MiddleName m:null="true"/>
+        <d:HomeAddress m:type="#Microsoft.Test.OData.Services.ODataWCFService.HomeAddress">
+          <d:Street>1 Microsoft Way</d:Street>
+          <d:City>London</d:City>
+          <d:PostalCode>98052</d:PostalCode>
+          <d:FamilyName>Cats</d:FamilyName>
+        </d:HomeAddress>
+        <d:Home m:type="GeographyPoint">
+          <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
+            <gml:pos>32.1 23.1</gml:pos>
+          </gml:Point>
+        </d:Home>
+        <d:Numbers m:type="#Collection(String)">
+          <m:element>111-111-1111</m:element>
+        </d:Numbers>
+        <d:Emails m:type="#Collection(String)">
+          <m:element>abc@abc.com</m:element>
+        </d:Emails>
+        <d:City>London</d:City>
+        <d:Birthday m:type="DateTimeOffset">1957-04-03T00:00:00Z</d:Birthday>
+        <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000001S</d:TimeBetweenLastTwoOrders>
+      </m:properties>
+    </content>
+  </entry>
+  <entry>
+    <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)</id>
+    <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
+    <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)"/>
+    <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Parent"/>
+    <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" 
+      title="Orders">
+      <m:inline><feed><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Orders"/></feed></m:inline>
+      </link>
+    <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=2)/Company"/>
+    <title/>
+    <updated>2014-03-31T09:35:14Z</updated>
+    <author>
+      <name/>
+    </author>
+    <content type="application/xml">
+      <m:properties>
+        <d:PersonID m:type="Int32">2</d:PersonID>
+        <d:FirstName>Jill</d:FirstName>
+        <d:LastName>Jones</d:LastName>
+        <d:MiddleName m:null="true"/>
+        <d:HomeAddress m:null="true"/>
+        <d:Home m:type="GeographyPoint">
+          <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
+            <gml:pos>15.0 161.8</gml:pos>
+          </gml:Point>
+        </d:Home>
+        <d:Numbers m:type="#Collection(String)"/>
+        <d:Emails m:type="#Collection(String)"/>
+        <d:City>Sydney</d:City>
+        <d:Birthday m:type="DateTimeOffset">1983-01-15T00:00:00Z</d:Birthday>
+        <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000002S</d:TimeBetweenLastTwoOrders>
+      </m:properties>
+    </content>
+  </entry>
+</feed>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Employees_3_HomeAddress.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Employees_3_HomeAddress.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Employees_3_HomeAddress.json
new file mode 100644
index 0000000..8748df3
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Employees_3_HomeAddress.json
@@ -0,0 +1,6 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Employees(3)/HomeAddress",
+  "Street": "1 Microsoft Way",
+  "City": "Sydney",
+  "PostalCode": "98052"
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Employees_3_HomeAddress.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Employees_3_HomeAddress.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Employees_3_HomeAddress.xml
new file mode 100644
index 0000000..5029af5
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Employees_3_HomeAddress.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<m:value xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
+         xmlns:georss="http://www.georss.org/georss" 
+         xmlns:gml="http://www.opengis.net/gml" 
+         m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Employees(3)/HomeAddress" 
+         m:type="#Microsoft.Test.OData.Services.ODataWCFService.Address" 
+         xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">
+  <d:Street>1 Microsoft Way</d:Street>
+  <d:City>Sydney</d:City>
+  <d:PostalCode>98052</d:PostalCode>
+</m:value>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Metadata-With-Capabilities.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Metadata-With-Capabilities.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Metadata-With-Capabilities.xml
new file mode 100644
index 0000000..64999ad
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Metadata-With-Capabilities.xml
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+  <edmx:DataServices>
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Org.OData.Capabilities.V1" Alias="Capabilities">
+      <Annotation Term="Core.Description">
+        <String>
+          The Capabilities vocabulary aims to provide a way for service authors to describe
+          certain capabilities of an OData Service.
+        </String>
+      </Annotation>
+      <Annotation Term="Core.LongDescription">
+        <String>
+          There are some capabilities which are strongly recommended for services to support even
+          though they are optional. Support for $top and $skip is a good example as
+          supporting these query options helps with performance of a service and are essential. Such
+          capabilities are assumed to be default capabilities of an OData service even in
+          the case that a capabilities annotation doesn’t exist. Capabilities annotations are
+          mainly expected to be used to explicitly specify that a service doesn’t support such
+          capabilities. Capabilities annotations can as well be used to declaratively
+          specify the support of such capabilities.
+
+          On the other hand, there are some capabilities that a service may choose to support or
+          not support and in varying degrees. $filter and $orderby are such good examples.
+          This vocabulary aims to define terms to specify support or no support for such
+          capabilities.
+
+          A service is assumed to support by default the following capabilities even though an
+          annotation doesn’t exist:
+          - Countability ($count, $inlinecount)
+          - Client pageability ($top, $skip)
+          - Expandability ($expand)
+          - Indexability by key
+          - Batch support ($batch)
+          - Navigability of navigation properties
+
+          A service is expected to support the following capabilities. If not supported, the
+          service is expected to call out the restrictions using annotations:
+          - Filterability ($filter)
+          - Sortability ($orderby)
+          - Queryability of top level entity sets
+          - Query functions
+
+          A client cannot assume that a service supports certain capabilities. A client can try, but
+          it needs to be prepared to handle an error in case the following capabilities are not
+          supported:
+          - Insertability
+          - Updatability
+          - Deletability
+        </String>
+      </Annotation>
+
+      <!-- Conformance Level -->
+
+      <Term Name="ConformanceLevel" Type="Capabilities.ConformanceLevelType" AppliesTo="EntityContainer" />
+      <EnumType Name="ConformanceLevelType">
+        <Member Name="Minimal" />
+        <Member Name="Intermediate" />
+        <Member Name="Advanced" />
+      </EnumType>
+
+      <!-- Request Capabilities -->
+
+      <Term Name="SupportedFormats" Type="Collection(Edm.String)">
+        <Annotation Term="Core.Description" String="Media types of supported formats, including format parameters" />
+        <Annotation Term="Core.IsMediaType" />
+      </Term>
+
+      <Term Name="AcceptableEncodings" Type="Collection(Edm.String)" AppliesTo="EntityContainer">
+        <Annotation Term="Core.Description" String="List of acceptable compression methods for ($batch) requests, e.g. gzip" />
+      </Term>
+
+      <!-- Supported Preferences -->
+
+      <Term Name="AsynchronousRequestsSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
+        <Annotation Term="Core.Description" String="Service supports the asynchronous request preference" />
+      </Term>
+
+      <Term Name="BatchContinueOnErrorSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
+        <Annotation Term="Core.Description" String="Service supports the continue on error preference" />
+      </Term>
+
+      <Term Name="IsolationSupported" Type="Capabilities.IsolationLevel" AppliesTo="EntityContainer">
+        <Annotation Term="Core.Description" String="Supported odata.isolation levels" />
+      </Term>
+      <EnumType Name="IsolationLevel" IsFlags="true">
+        <Member Name="Snapshot" Value="1" />
+      </EnumType>
+
+      <Term Name="CallbackSupported" Type="Capabilities.CallbackType" AppliesTo="EntityContainer EntitySet">
+        <Annotation Term="Core.Description" String="Supports callbacks for the specified protocols" />
+      </Term>
+      <Term Name="CrossJoinSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
+        <Annotation Term="Core.Description" String="Supports cross joins for the entity sets in this container" />
+      </Term>
+      <ComplexType Name="CallbackType">
+        <Property Name="CallbackProtocols" Type="Collection(Capabilities.CallbackProtocol)" />
+        <Annotation Term="Core.Description"
+          String="A non-empty collection lists the full set of supported protocols. A empty collection means 'only HTTP is supported'" />
+      </ComplexType>
+      <ComplexType Name="CallbackProtocol">
+        <Property Name="Id" Type="Edm.String">
+          <Annotation Term="Core.Description" String="Protcol Identifier" />
+        </Property>
+        <Property Name="UrlTemplate" Type="Edm.String">
+          <Annotation Term="Core.Description"
+            String="URL Template including parameters. Parameters are enclosed in curly braces {} as defined in RFC6570" />
+        </Property>
+        <Property Name="DocumentationUrl" Type="Edm.String" Nullable="true">
+          <Annotation Term="Core.Description" String="Human readable description of the meaning of the URL Template parameters" />
+          <Annotation Term="Core.IsURL" />
+        </Property>
+      </ComplexType>
+
+      <Term Name="ChangeTracking" Type="Capabilities.ChangeTrackingType" AppliesTo="EntityContainer EntitySet">
+        <Annotation Term="Core.Description" String="Change tracking capabilities of this service or entity set" />
+      </Term>
+      <ComplexType Name="ChangeTrackingType">
+        <Property Name="Supported" Type="Edm.Boolean" DefaultValue="true">
+          <Annotation Term="Core.Description" String="This entity set supports the odata.track-changes preference" />
+        </Property>
+        <Property Name="FilterableProperties" Type="Collection(Edm.PropertyPath)">
+          <Annotation Term="Core.Description" String="Change tracking supports filters on these properties" />
+        </Property>
+        <Property Name="ExpandableProperties" Type="Collection(Edm.NavigationPropertyPath)">
+          <Annotation Term="Core.Description" String="Change tracking supports these properties expanded" />
+        </Property>
+      </ComplexType>
+
+      <!--Query Capabilities -->
+
+      <Term Name="CountRestrictions" Type="Capabilities.CountRestrictionsType" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Restrictions on /$count path suffix and $count=true system query option" />
+      </Term>
+      <ComplexType Name="CountRestrictionsType">
+        <Property Name="Countable" Type="Edm.Boolean" DefaultValue="true">
+          <Annotation Term="Core.Description" String="Entities can be counted" />
+        </Property>
+        <Property Name="NonCountableProperties" Type="Collection(Edm.PropertyPath)">
+          <Annotation Term="Core.Description" String="These collection properties do not allow /$count segments" />
+        </Property>
+        <Property Name="NonCountableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
+          <Annotation Term="Core.Description" String="These navigation properties do not allow /$count segments" />
+        </Property>
+      </ComplexType>
+
+      <Term Name="NavigationRestrictions" Type="Capabilities.NavigationRestrictionsType" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Restrictions on navigating properties according to OData URL conventions" />
+      </Term>
+      <ComplexType Name="NavigationRestrictionsType">
+        <Property Name="Navigability" Type="Capabilities.NavigationType">
+          <Annotation Term="Core.Description" String="Supported Navigability" />
+        </Property>
+        <Property Name="RestrictedProperties" Type="Collection(Capabilities.NavigationPropertyRestriction)" />
+      </ComplexType>
+      <ComplexType Name="NavigationPropertyRestriction">
+        <Property Name="NavigationProperty" Type="Edm.NavigationPropertyPath">
+          <Annotation Term="Core.Description" String="Navigation properties can be navigated to a single level" />
+        </Property>
+        <Property Name="Navigability" Type="Capabilities.NavigationType">
+          <Annotation Term="Core.Description" String="Navigation properties can be navigated to a single level" />
+        </Property>
+      </ComplexType>
+      <EnumType Name="NavigationType">
+        <Member Name="Recursive">
+          <Annotation Term="Core.Description" String="Navigation properties can be recursively navigated" />
+        </Member>
+        <Member Name="Single">
+          <Annotation Term="Core.Description" String="Navigation properties can be navigated to a single level" />
+        </Member>
+        <Member Name="None">
+          <Annotation Term="Core.Description" String="Navigation properties are not navigable" />
+        </Member>
+      </EnumType>
+
+      <Term Name="IndexableByKey" Type="Core.Tag" DefaultValue="true" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Supports key values according to OData URL conventions" />
+      </Term>
+
+      <Term Name="TopSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Supports $top" />
+      </Term>
+      <Term Name="SkipSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Supports $skip" />
+      </Term>
+
+      <Term Name="BatchSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
+        <Annotation Term="Core.Description" String="Supports $batch requests" />
+      </Term>
+
+      <Term Name="FilterFunctions" Type="Collection(Edm.String)" AppliesTo="EntityContainer EntitySet">
+        <Annotation Term="Core.Description" String="List of functions supported in $filter" />
+      </Term>
+
+      <Term Name="FilterRestrictions" Type="Capabilities.FilterRestrictionsType" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Restrictions on $filter expressions" />
+      </Term>
+      <ComplexType Name="FilterRestrictionsType">
+        <Property Name="Filterable" Type="Edm.Boolean" DefaultValue="true">
+          <Annotation Term="Core.Description" String="$filter is supported" />
+        </Property>
+        <Property Name="RequiresFilter" Type="Edm.Boolean" Nullable="true">
+          <Annotation Term="Core.Description" String="$filter is required" />
+        </Property>
+        <Property Name="RequiredProperties" Type="Collection(Edm.PropertyPath)">
+          <Annotation Term="Core.Description"
+            String="These properties must be specified in the $filter clause (properties of derived types are not allowed here)" />
+        </Property>
+        <Property Name="NonFilterableProperties" Type="Collection(Edm.PropertyPath)">
+          <Annotation Term="Core.Description" String="These properties cannot be used in $filter expressions" />
+        </Property>
+      </ComplexType>
+
+      <Term Name="SortRestrictions" Type="Capabilities.SortRestrictionsType" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Restrictions on $orderby expressions" />
+      </Term>
+      <ComplexType Name="SortRestrictionsType">
+        <Property Name="Sortable" Type="Edm.Boolean" DefaultValue="true">
+          <Annotation Term="Core.Description" String="$orderby is supported" />
+        </Property>
+        <Property Name="AscendingOnlyProperties" Type="Collection(Edm.PropertyPath)">
+          <Annotation Term="Core.Description" String="These properties can only be used for sorting in Ascending order" />
+        </Property>
+        <Property Name="DescendingOnlyProperties" Type="Collection(Edm.PropertyPath)">
+          <Annotation Term="Core.Description" String="These properties can only be used for sorting in Descending order" />
+        </Property>
+        <Property Name="NonSortableProperties" Type="Collection(Edm.PropertyPath)">
+          <Annotation Term="Core.Description" String="These properties cannot be used in $orderby expressions" />
+        </Property>
+      </ComplexType>
+
+      <Term Name="ExpandRestrictions" Type="Capabilities.ExpandRestrictionsType" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Restrictions on $expand expressions" />
+      </Term>
+      <ComplexType Name="ExpandRestrictionsType">
+        <Property Name="Expandable" Type="Edm.Boolean" DefaultValue="true">
+          <Annotation Term="Core.Description" String="$expand is supported" />
+        </Property>
+        <Property Name="NonExpandableProperties" Type="Collection(Edm.NavigationPropertyPath)">
+          <Annotation Term="Core.Description" String="These properties cannot be used in $expand expressions" />
+        </Property>
+      </ComplexType>
+
+      <Term Name="SearchRestrictions" Type="Capabilities.SearchRestrictionsType" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Restrictions on $search expressions" />
+      </Term>
+      <ComplexType Name="SearchRestrictionsType">
+        <Property Name="Searchable" Type="Edm.Boolean" DefaultValue="true">
+          <Annotation Term="Core.Description" String="$search is supported" />
+        </Property>
+        <Property Name="UnsupportedExpressions" Type="Capabilities.SearchExpressions" DefaultValue="none">
+          <Annotation Term="Core.Description" String="Expressions supported in $search" />
+        </Property>
+      </ComplexType>
+      <EnumType Name="SearchExpressions" IsFlags="true">
+        <Member Name="none" Value="0" />
+        <Member Name="AND" Value="1" />
+        <Member Name="OR" Value="2" />
+        <Member Name="NOT" Value="4" />
+        <Member Name="phrase" Value="8" />
+        <Member Name="group" Value="16" />
+      </EnumType>
+
+      <!-- Data Modification Capabilities -->
+
+      <Term Name="InsertRestrictions" Type="Capabilities.InsertRestrictionsType" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Restrictions on insert operations" />
+      </Term>
+      <ComplexType Name="InsertRestrictionsType">
+        <Property Name="Insertable" Type="Edm.Boolean" DefaultValue="true">
+          <Annotation Term="Core.Description" String="Entities can be inserted" />
+        </Property>
+        <Property Name="NonInsertableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
+          <Annotation Term="Core.Description" String="These navigation properties do not allow deep inserts" />
+        </Property>
+      </ComplexType>
+
+      <Term Name="UpdateRestrictions" Type="Capabilities.UpdateRestrictionsType" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Restrictions on update operations" />
+      </Term>
+      <ComplexType Name="UpdateRestrictionsType">
+        <Property Name="Updatable" Type="Edm.Boolean" DefaultValue="true">
+          <Annotation Term="Core.Description" String="Entities can be updated" />
+        </Property>
+        <Property Name="NonUpdatableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
+          <Annotation Term="Core.Description" String="These navigation properties do not allow rebinding" />
+        </Property>
+      </ComplexType>
+
+      <Term Name="DeleteRestrictions" Type="Capabilities.DeleteRestrictionsType" AppliesTo="EntitySet">
+        <Annotation Term="Core.Description" String="Restrictions on delete operations" />
+      </Term>
+      <ComplexType Name="DeleteRestrictionsType">
+        <Property Name="Deletable" Type="Edm.Boolean" DefaultValue="true">
+          <Annotation Term="Core.Description" String="Entities can be deleted" />
+        </Property>
+        <Property Name="NonDeletableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
+          <Annotation Term="Core.Description" String="These navigation properties do not allow DeleteLink requests" />
+        </Property>
+      </ComplexType>
+
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/PersonDetails_1.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/PersonDetails_1.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/PersonDetails_1.json
new file mode 100644
index 0000000..c8b62d3
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/PersonDetails_1.json
@@ -0,0 +1,22 @@
+{
+  "@odata.context": "http://services.odata.org/V4/OData/OData.svc/$metadata#PersonDetails/$entity",
+  "@odata.type": "#ODataDemo.PersonDetail",
+  "@odata.id": "http://services.odata.org/V4/OData/OData.svc/PersonDetails(1)",
+  "@odata.editLink": "PersonDetails(1)",
+  "PersonID": 1,
+  "Age@odata.type": "#Byte",
+  "Age": 24,
+  "Gender": true,
+  "Phone": "(208) 555-8097",
+  "Address": {
+    "@odata.type": "#ODataDemo.Address",
+    "Street": "187 Suffolk Ln.",
+    "City": "Boise",
+    "State": "ID",
+    "ZipCode": "83720",
+    "Country": "USA"
+  },
+  "Photo@odata.mediaEditLink": "PersonDetails(1)/Photo",
+  "Person@odata.associationLink": "PersonDetails(1)/Person/$ref",
+  "Person@odata.navigationLink": "PersonDetails(1)/Person"
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/PersonDetails_1.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/PersonDetails_1.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/PersonDetails_1.xml
new file mode 100644
index 0000000..e7fce12
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/PersonDetails_1.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<entry xml:base="http://services.odata.org/V4/OData/OData.svc/" 
+       xmlns="http://www.w3.org/2005/Atom" 
+       xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
+       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
+       xmlns:georss="http://www.georss.org/georss" 
+       xmlns:gml="http://www.opengis.net/gml" 
+       m:context="http://services.odata.org/V4/OData/OData.svc/$metadata#PersonDetails/$entity">
+  <id>http://services.odata.org/V4/OData/OData.svc/PersonDetails(1)</id>
+  <category term="#ODataDemo.PersonDetail" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+  <link rel="edit" title="PersonDetail" href="PersonDetails(1)" />
+  <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Person" type="application/xml" title="Person" href="PersonDetails(1)/Person/$ref" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Person" type="application/atom+xml;type=entry" title="Person" href="PersonDetails(1)/Person" />
+  <title />
+  <updated>2014-03-31T10:28:24Z</updated>
+  <author>
+    <name />
+  </author>
+  <link rel="http://docs.oasis-open.org/odata/ns/edit-media/Photo" title="Photo" href="PersonDetails(1)/Photo" />
+  <content type="application/xml">
+    <m:properties>
+      <d:PersonID m:type="Int32">1</d:PersonID>
+      <d:Age m:type="Byte">24</d:Age>
+      <d:Gender m:type="Boolean">true</d:Gender>
+      <d:Phone>(208) 555-8097</d:Phone>
+      <d:Address m:type="#ODataDemo.Address">
+        <d:Street>187 Suffolk Ln.</d:Street>
+        <d:City>Boise</d:City>
+        <d:State>ID</d:State>
+        <d:ZipCode>83720</d:ZipCode>
+        <d:Country>USA</d:Country>
+      </d:Address>
+    </m:properties>
+  </content>
+</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.json
new file mode 100644
index 0000000..0545d78
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.json
@@ -0,0 +1,29 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products/$entity",
+  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Product",
+  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)",
+  "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)",
+  "ProductID": 5,
+  "Name": "Cheetos",
+  "QuantityPerUnit": "100g Bag",
+  "UnitPrice@odata.type": "#Single",
+  "UnitPrice": 3.24,
+  "QuantityInStock": 100,
+  "Discontinued": true,
+  "UserAccess@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
+  "UserAccess": "None",
+  "SkinColor@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Color",
+  "SkinColor": "Red",
+  "CoverColors@odata.type": "#Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)",
+  "CoverColors": ["Green", "Blue", "Blue"],
+  "Details@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Details/$ref",
+  "Details@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Details",
+  "#Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight": {
+    "title": "Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight",
+    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight"
+  },
+  "#Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails": {
+    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails",
+    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails"
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.xml
new file mode 100644
index 0000000..409799e
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<entry xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products/$entity">
+  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)</id>
+  <category term="#Microsoft.Test.OData.Services.ODataWCFService.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+  <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Details" type="application/atom+xml;type=feed" title="Details"><m:inline><feed><ref xmlns="http://docs.oasis-open.org/odata/ns/metadata" id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Products(5)/Details"/></feed></m:inline></link>
+  <title />
+  <updated>2014-03-28T11:24:49Z</updated>
+  <author>
+    <name />
+  </author>
+  <content type="application/xml">
+    <m:properties>
+      <d:ProductID m:type="Int32">5</d:ProductID>
+      <d:Name>Cheetos</d:Name>
+      <d:QuantityPerUnit>100g Bag</d:QuantityPerUnit>
+      <d:UnitPrice m:type="Single">3.24</d:UnitPrice>
+      <d:QuantityInStock m:type="Int32">100</d:QuantityInStock>
+      <d:Discontinued m:type="Boolean">true</d:Discontinued>
+      <d:UserAccess m:type="#Microsoft.Test.OData.Services.ODataWCFService.AccessLevel">None</d:UserAccess>
+      <d:SkinColor m:type="#Microsoft.Test.OData.Services.ODataWCFService.Color">Red</d:SkinColor>
+      <d:CoverColors m:type="#Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)">
+        <m:element>Green</m:element>
+        <m:element>Blue</m:element>
+        <m:element>Blue</m:element>
+      </d:CoverColors>
+    </m:properties>
+  </content>
+</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_CoverColors.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_CoverColors.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_CoverColors.json
new file mode 100644
index 0000000..96bf22a
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_CoverColors.json
@@ -0,0 +1,5 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products(5)/CoverColors",
+  "@odata.type": "#Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)",
+  "value": ["Green", "Blue", "Blue"]
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_CoverColors.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_CoverColors.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_CoverColors.xml
new file mode 100644
index 0000000..0dab08c
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_CoverColors.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<m:value xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
+         xmlns:georss="http://www.georss.org/georss" 
+         xmlns:gml="http://www.opengis.net/gml" 
+         m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products(5)/CoverColors" m:type="#Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)" 
+         xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">
+  <m:element>Green</m:element>
+  <m:element>Blue</m:element>
+  <m:element>Blue</m:element>
+</m:value>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_SkinColor.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_SkinColor.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_SkinColor.json
new file mode 100644
index 0000000..b5e26da
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_SkinColor.json
@@ -0,0 +1,5 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products(5)/SkinColor",
+  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Color",
+  "value": "Red"
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_SkinColor.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_SkinColor.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_SkinColor.xml
new file mode 100644
index 0000000..be392fd
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/Products_5_SkinColor.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<m:value xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
+         xmlns:georss="http://www.georss.org/georss" 
+         xmlns:gml="http://www.opengis.net/gml" 
+         m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products(5)/SkinColor" 
+         m:type="#Microsoft.Test.OData.Services.ODataWCFService.Color" 
+         xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">Red</m:value>
\ No newline at end of file


[5/8] olingo-odata4 git commit: [OLINGO-431] Delete unnecessary v4 in package name

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.json
new file mode 100644
index 0000000..5f3f697
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.json
@@ -0,0 +1,50 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#VipCustomer",
+  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Customer",
+  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer",
+  "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer",
+  "PersonID": 1,
+  "FirstName": "Bob",
+  "LastName": "Cat",
+  "MiddleName": "Vat",
+  "HomeAddress": {
+    "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Address",
+    "Street": "1 Microsoft Way",
+    "City": "London",
+    "PostalCode": "98052"
+  },
+  "Home@odata.type": "#GeographyPoint",
+  "Home": {
+    "type": "Point",
+    "coordinates": [23.1, 32.1],
+    "crs": {
+      "type": "name",
+      "properties": {
+        "name": "EPSG:4326"
+      }
+    }
+  },
+  "Numbers@odata.type": "#Collection(String)",
+  "Numbers": ["111-111-1111"],
+  "Emails@odata.type": "#Collection(String)",
+  "Emails": ["abc@abc.com"],
+  "City": "London",
+  "Birthday@odata.type": "#DateTimeOffset",
+  "Birthday": "1957-04-03T00:00:00Z",
+  "TimeBetweenLastTwoOrders@odata.type": "#Duration",
+  "TimeBetweenLastTwoOrders": "PT0.0000001S",
+  "Parent@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Parent/$ref",
+  "Parent@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Parent",
+  "Orders@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Orders/$ref",
+  "Orders@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Orders",
+  "Company@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Company/$ref",
+  "Company@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Company",
+  "#Microsoft.Test.OData.Services.ODataWCFService.ResetAddress": {
+    "title": "Microsoft.Test.OData.Services.ODataWCFService.ResetAddress",
+    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Microsoft.Test.OData.Services.ODataWCFService.ResetAddress"
+  },
+  "#Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress": {
+    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress",
+    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress"
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.xml
new file mode 100644
index 0000000..cc5c04d
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/VipCustomer.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<entry xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" 
+       xmlns="http://www.w3.org/2005/Atom" 
+       xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
+       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
+       xmlns:georss="http://www.georss.org/georss" 
+       xmlns:gml="http://www.opengis.net/gml" 
+       m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#VipCustomer">
+  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer</id>
+  <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+  <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Parent" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" title="Orders"><m:inline><feed><ref xmlns="http://docs.oasis-open.org/odata/ns/metadata" id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Orders"/></feed></m:inline></link>
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Company" />
+  <title />
+  <updated>2014-03-28T13:03:32Z</updated>
+  <author>
+    <name />
+  </author>
+  <m:action metadata="#Microsoft.Test.OData.Services.ODataWCFService.ResetAddress" 
+            target="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Microsoft.Test.OData.Services.ODataWCFService.ResetAddress" 
+            title="Microsoft.Test.OData.Services.ODataWCFService.ResetAddress"/>
+  <m:action metadata="#Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress" 
+            target="http://odatae2etest.azurewebsites.net/javatest/DefaultService/VipCustomer/Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress" 
+            title="Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress"/>
+  <content type="application/xml">
+    <m:properties>
+      <d:PersonID m:type="Int32">1</d:PersonID>
+      <d:FirstName>Bob</d:FirstName>
+      <d:LastName>Cat</d:LastName>
+      <d:MiddleName>Vat</d:MiddleName>
+      <d:HomeAddress m:type="#Microsoft.Test.OData.Services.ODataWCFService.Address">
+        <d:Street>1 Microsoft Way</d:Street>
+        <d:City>London</d:City>
+        <d:PostalCode>98052</d:PostalCode>
+      </d:HomeAddress>
+      <d:Home m:type="GeographyPoint">
+        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
+          <gml:pos>32.1 23.1</gml:pos>
+        </gml:Point>
+      </d:Home>
+      <d:Numbers m:type="#Collection(String)">
+        <m:element>111-111-1111</m:element>
+      </d:Numbers>
+      <d:Emails m:type="#Collection(String)">
+        <m:element>abc@abc.com</m:element>
+      </d:Emails>
+      <d:City>London</d:City>
+      <d:Birthday m:type="DateTimeOffset">1957-04-03T00:00:00Z</d:Birthday>
+      <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000001S</d:TimeBetweenLastTwoOrders>
+    </m:properties>
+  </content>
+</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.json
new file mode 100644
index 0000000..a69884b
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.json
@@ -0,0 +1,62 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Customers/$entity",
+  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Customer",
+  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)",
+  "@odata.editLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)",
+  "@com.contoso.display.highlight": true,
+  "@com.contoso.PersonalInfo.PhoneNumbers": ["(203)555-1718", "(203)555-1719"],
+  "PersonID": 1,
+  "FirstName": "Bob",
+  "LastName@com.contoso.display.style": {
+    "@odata.type": "#com.contoso.display.styleType",
+    "title": true,
+    "order": 1
+  },
+  "LastName": "Cat",
+  "MiddleName": null,
+  "HomeAddress": {
+    "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.HomeAddress",
+    "Street": "1 Microsoft Way",
+    "City": "London",
+    "PostalCode": "98052",
+    "FamilyName": "Cats"
+  },
+  "Home@odata.type": "#GeographyPoint",
+  "Home": {
+    "type": "Point",
+    "coordinates": [23.1, 32.1],
+    "crs": {
+      "type": "name",
+      "properties": {
+        "name": "EPSG:4326"
+      }
+    }
+  },
+  "Numbers@odata.type": "#Collection(String)",
+  "Numbers": ["111-111-1111", "0-12", "3-10", "bca", "ayz"],
+  "Emails@odata.type": "#Collection(String)",
+  "Emails": ["abc@abc.com"],
+  "City": "London",
+  "Birthday@odata.type": "#DateTimeOffset",
+  "Birthday": "1957-04-03T00:00:00Z",
+  "TimeBetweenLastTwoOrders@odata.type": "#Duration",
+  "TimeBetweenLastTwoOrders": "PT0.0000001S",
+  "Parent@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent/$ref",
+  "Parent@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent",
+  "Orders@com.contoso.display.style": {
+    "@odata.type": "#com.contoso.display.styleType",
+    "order": 2
+  },
+  "Orders@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders/$ref",
+  "Orders@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders",
+  "Company@odata.associationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Company/$ref",
+  "Company@odata.navigationLink": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Company",
+  "#Microsoft.Test.OData.Services.ODataWCFService.ResetAddress": {
+    "title": "Microsoft.Test.OData.Services.ODataWCFService.ResetAddress",
+    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Microsoft.Test.OData.Services.ODataWCFService.ResetAddress"
+  },
+  "#Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress": {
+    "title": "Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress",
+    "target": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.xml
new file mode 100644
index 0000000..a3b06a9
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/annotated.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<entry xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products/$entity">
+  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)</id>
+  <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
+  <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)"/>
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent"/>
+	<link rel="http://docs.oasis-open.org/odata/ns/related/Orders"
+		type="application/atom+xml;type=feed" title="Orders">
+		<m:inline><feed><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders"/></feed></m:inline>
+    <m:annotation term="com.contoso.display.style" m:type="#com.contoso.display.styleType">
+      <d:order m:type="Int32">2</d:order>
+    </m:annotation>
+  </link>
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Company"/>
+  <title/>
+  <updated>2014-03-31T09:35:14Z</updated>
+  <author>
+    <name/>
+  </author>
+  <content type="application/xml">
+    <m:properties>
+      <d:PersonID m:type="Int32">1</d:PersonID>
+      <d:FirstName>Bob</d:FirstName>
+      <d:LastName>Cat</d:LastName>
+      <m:annotation term="com.contoso.display.style" target="LastName" m:type="#com.contoso.display.styleType">
+        <d:title m:type="Boolean">true</d:title>
+        <d:order m:type="Int32">1</d:order>
+      </m:annotation>      
+      <d:MiddleName m:null="true"/>
+      <d:HomeAddress m:type="#Microsoft.Test.OData.Services.ODataWCFService.HomeAddress">
+        <d:Street>1 Microsoft Way</d:Street>
+        <d:City>London</d:City>
+        <d:PostalCode>98052</d:PostalCode>
+        <d:FamilyName>Cats</d:FamilyName>
+      </d:HomeAddress>
+      <d:Home m:type="GeographyPoint">
+        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
+          <gml:pos>32.1 23.1</gml:pos>
+        </gml:Point>
+      </d:Home>
+      <d:Numbers m:type="#Collection(String)">
+        <m:element>111-111-1111</m:element>
+      </d:Numbers>
+      <d:Emails m:type="#Collection(String)">
+        <m:element>abc@abc.com</m:element>
+      </d:Emails>
+      <d:City>London</d:City>
+      <d:Birthday m:type="DateTimeOffset">1957-04-03T00:00:00Z</d:Birthday>
+      <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000001S</d:TimeBetweenLastTwoOrders>
+    </m:properties>
+  </content>
+  <m:annotation term="com.contoso.display.highlight" m:type="Boolean">true</m:annotation>
+  <m:annotation term="com.contoso.PersonalInfo.PhoneNumbers" m:type="#Collection(String)">
+    <m:element>(203)555-1718</m:element>
+    <m:element>(203)555-1719</m:element>
+  </m:annotation>  
+</entry>
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/atom_cleanup.xsl
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/atom_cleanup.xsl b/lib/client-core/src/test/resources/org/apache/olingo/client/core/atom_cleanup.xsl
new file mode 100644
index 0000000..f80a315
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/atom_cleanup.xsl
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns="http://www.w3.org/2005/Atom"
+                xmlns:atom="http://www.w3.org/2005/Atom"
+                xmlns:m="http://docs.oasis-open.org/odata/ns/metadata"
+                version="1.0">
+
+  <xsl:template match="atom:updated"/>
+  <xsl:template match="atom:author"/>
+  <xsl:template match="atom:summary"/>
+  <xsl:template match="atom:title">
+    <xsl:if test="string-length(.) &gt; 0">
+      <title type="{@type}">
+        <xsl:apply-templates/>
+      </title>
+    </xsl:if>
+  </xsl:template>
+  <xsl:template match="atom:link[@rel = 'self' or @rel = 'edit' or @rel = 'edit-media']"/>
+  
+  <xsl:template match="m:action"/>
+
+  <xsl:template match="@*[name() = 'm:etag' or name() = 'm:context' or name() = 'm:metadata-etag']"/>
+
+  <xsl:template match="node()|@*">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+</xsl:stylesheet>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.json
new file mode 100644
index 0000000..7646ee8
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.json
@@ -0,0 +1,11 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Collection($ref)",
+  "value": [
+    {
+      "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=5)"
+    },
+    {
+      "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=6)"
+    }
+  ]
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.xml
new file mode 100644
index 0000000..9534270
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/collectionOfEntityReferences.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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.
+-->
+<feed xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
+      m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Collection($ref)" 
+      xmlns="http://www.w3.org/2005/Atom">
+  <m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=5)"/>
+  <m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=6)"/>
+</feed>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/crossjoin.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/crossjoin.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/crossjoin.json
new file mode 100644
index 0000000..248ae34
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/crossjoin.json
@@ -0,0 +1,18 @@
+{
+  "@odata.context": "http://host/service/$metadata#Collection(Edm.ComplexType)",
+  "value":
+          [
+            {
+              "Products@odata.navigationLink": "Products(0)",
+              "Sales@odata.navigationLink": "Sales(42)"
+            },
+            {
+              "Products@odata.navigationLink": "Products(0)",
+              "Sales@odata.navigationLink": "Sales(57)"
+            },
+            {
+              "Products@odata.navigationLink": "Products(99)",
+              "Sales@odata.navigationLink": "Sales(21)"
+            }
+          ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/delta.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/delta.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/delta.json
new file mode 100644
index 0000000..d8e8f54
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/delta.json
@@ -0,0 +1,39 @@
+{
+  "@odata.context": "http://host/service/$metadata#Customers/$delta",
+  "@odata.count": 5,
+  "value":
+          [
+            {
+              "@odata.id": "Customers('BOTTM')'",
+              "ContactName": "Susan Halvenstern"
+            },
+            {
+              "@odata.context": "#Customers/$deletedLink",
+              "source": "Customers('ALFKI')",
+              "relationship": "Orders",
+              "target": "Orders(10643)"
+            },
+            {
+              "@odata.context": "#Customers/$link",
+              "source": "Customers('BOTTM')",
+              "relationship": "Orders",
+              "target": "Orders(10645)"
+            },
+            {
+              "@odata.context": "#Orders/$entity",
+              "@odata.id": "Orders(10643)",
+              "ShippingAddress": {
+                "Street": "23 Tsawassen Blvd.",
+                "City": " Tsawassen ",
+                "Region": "BC",
+                "PostalCode": "T2F 8M4"
+              }
+            },
+            {
+              "@odata.context": "#Customers/$deletedEntity",
+              "id": "Customers('ANTON')",
+              "reason": "deleted"
+            }
+          ],
+  "@odata.deltaLink": "Customers?$expand=Orders&$deltatoken=8015"
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/delta.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/delta.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/delta.xml
new file mode 100644
index 0000000..df65b49
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/delta.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<feed xml:base="http://host/service/"
+      xmlns:data="http://docs.oasis-open.org/odata/ns/data"
+      xmlns:metadata="http://docs.oasis-open.org/odata/ns/metadata"
+      xmlns="http://www.w3.org/2005/Atom"
+      xmlns:at="http://purl.org/atompub/tombstones/1.0"
+      metadata:context="$metadata#Customers/$delta">
+  <title type="text">Customers</title>
+  <id>http://host/service/Customers</id>
+  <updated>2012-11-27T15:38:25Z</updated>
+  <metadata:count>5</metadata:count>
+  <entry>
+    <id>http://host/service/Customers('BOTTM')</id>
+    <title type="text" />
+    <updated>2012-11-17T15:38:22Z</updated>
+    <author>
+      <name />
+    </author>
+    <link rel="edit" title="Customer" href="Customers('BOTTM')"/>
+    <category term="#Model.Customer"
+          scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
+    <content type="application/xml">
+      <metadata:properties>
+        <data:ContactName>Susan Halvenstern</data:ContactName>
+      </metadata:properties>
+    </content>
+  </entry>
+  <metadata:deleted-link
+    metadata:context="$metadata#Customers/$deleted-link"
+    source="http://host/service/Customers('ALFKI')"
+    relationship="Orders"
+    target="http://host/service/Orders(10643)"/>
+  <metadata:link
+    metadata:context="$metadata#Customers/$link"
+    source="http://host/service/Customers('BOTTM')"
+    relationship="Orders"
+    target="http://host/service/Orders(10645)"/>
+  <entry metadata:context="$metadata#Orders/$entity">
+    <id>http://host/service/Orders(10643)</id>
+    <title type="text" />
+    <updated>2012-11-27T15:38:24Z</updated>
+    <author>
+      <name/>
+    </author>
+    <link rel="edit" title="Order" href="Orders(10643)" />
+    <category term="#Model.Order"
+          scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+    <content type="application/xml">
+      <metadata:properties>
+        <data:ShippingAddress>
+          <data:Street>23 Tsawassen Blvd.</data:Street>
+          <data:City>Tsawassen</data:City>
+          <data:Region>BC</data:Region>
+          <data:PostalCode>T2F 8M4</data:PostalCode>
+        </data:ShippingAddress>
+      </metadata:properties>
+    </content>
+  </entry>
+  <at:deleted-entry
+    metadata:context="$metadata#Customers/$deleted-entry"
+    ref="http://host/service/Customers('ANTON')"
+    when="2012-11-27T15:38:25Z"
+    metadata:reason="deleted"/>
+  <link
+    rel="http://docs.oasis-open.org/odata/ns/delta"
+    href="http://host/service/Customers?$expand=Orders&amp;$deltatoken=8015"/>
+</feed>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/demo-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/demo-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/demo-metadata.xml
new file mode 100644
index 0000000..1f75859
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/demo-metadata.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
+  <edmx:DataServices>
+    <Schema Namespace="ODataDemo" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+      <EntityType Name="Product">
+        <Key>
+          <PropertyRef Name="ID"/>
+        </Key>
+        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+        <Property Name="Description" Type="Edm.String"/>
+        <Property Name="ReleaseDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <Property Name="DiscontinuedDate" Type="Edm.DateTimeOffset"/>
+        <Property Name="Rating" Type="Edm.Int16" Nullable="false"/>
+        <Property Name="Price" Type="Edm.Double" Nullable="false"/>
+        <NavigationProperty Name="Categories" Type="Collection(ODataDemo.Category)" Partner="Products"/>
+        <NavigationProperty Name="Supplier" Type="ODataDemo.Supplier" Partner="Products"/>
+        <NavigationProperty Name="ProductDetail" Type="ODataDemo.ProductDetail" Partner="Product"/>
+      </EntityType>
+      <EntityType Name="FeaturedProduct" BaseType="ODataDemo.Product">
+        <NavigationProperty Name="Advertisement" Type="ODataDemo.Advertisement" Partner="FeaturedProduct"/>
+      </EntityType>
+      <EntityType Name="ProductDetail">
+        <Key>
+          <PropertyRef Name="ProductID"/>
+        </Key>
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Details" Type="Edm.String"/>
+        <NavigationProperty Name="Product" Type="ODataDemo.Product" Partner="ProductDetail"/>
+      </EntityType>
+      <EntityType Name="Category" OpenType="true">
+        <Key>
+          <PropertyRef Name="ID"/>
+        </Key>
+        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+        <NavigationProperty Name="Products" Type="Collection(ODataDemo.Product)" Partner="Categories"/>
+      </EntityType>
+      <EntityType Name="Supplier">
+        <Key>
+          <PropertyRef Name="ID"/>
+        </Key>
+        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+        <Property Name="Address" Type="ODataDemo.Address"/>
+        <Property Name="Location" Type="Edm.GeographyPoint" SRID="Variable"/>
+        <Property Name="Concurrency" Type="Edm.Int32" ConcurrencyMode="Fixed" Nullable="false"/>
+        <NavigationProperty Name="Products" Type="Collection(ODataDemo.Product)" Partner="Supplier"/>
+      </EntityType>
+      <ComplexType Name="Address">
+        <Property Name="Street" Type="Edm.String"/>
+        <Property Name="City" Type="Edm.String"/>
+        <Property Name="State" Type="Edm.String"/>
+        <Property Name="ZipCode" Type="Edm.String"/>
+        <Property Name="Country" Type="Edm.String"/>
+      </ComplexType>
+      <EntityType Name="Person">
+        <Key>
+          <PropertyRef Name="ID"/>
+        </Key>
+        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+        <NavigationProperty Name="PersonDetail" Type="ODataDemo.PersonDetail" Partner="Person"/>
+      </EntityType>
+      <EntityType Name="Customer" BaseType="ODataDemo.Person">
+        <Property Name="TotalExpense" Type="Edm.Decimal" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="Employee" BaseType="ODataDemo.Person">
+        <Property Name="EmployeeID" Type="Edm.Int64" Nullable="false"/>
+        <Property Name="HireDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <Property Name="Salary" Type="Edm.Single" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="PersonDetail">
+        <Key>
+          <PropertyRef Name="PersonID"/>
+        </Key>
+        <Property Name="PersonID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Age" Type="Edm.Byte" Nullable="false"/>
+        <Property Name="Gender" Type="Edm.Boolean" Nullable="false"/>
+        <Property Name="Phone" Type="Edm.String"/>
+        <Property Name="Address" Type="ODataDemo.Address"/>
+        <Property Name="Photo" Type="Edm.Stream" Nullable="false"/>
+        <NavigationProperty Name="Person" Type="ODataDemo.Person" Partner="PersonDetail"/>
+      </EntityType>
+      <EntityType Name="Advertisement" HasStream="true">
+        <Key>
+          <PropertyRef Name="ID"/>
+        </Key>
+        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+        <Property Name="AirDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <NavigationProperty Name="FeaturedProduct" Type="ODataDemo.FeaturedProduct" Partner="Advertisement"/>
+      </EntityType>
+      <EntityContainer Name="DemoService">
+        <EntitySet Name="Products" EntityType="ODataDemo.Product">
+          <NavigationPropertyBinding Path="ODataDemo.FeaturedProduct/Advertisement" Target="Advertisements"/>
+          <NavigationPropertyBinding Path="Categories" Target="Categories"/>
+          <NavigationPropertyBinding Path="Supplier" Target="Suppliers"/>
+          <NavigationPropertyBinding Path="ProductDetail" Target="ProductDetails"/>
+        </EntitySet>
+        <EntitySet Name="ProductDetails" EntityType="ODataDemo.ProductDetail">
+          <NavigationPropertyBinding Path="Product" Target="Products"/>
+        </EntitySet>
+        <EntitySet Name="Categories" EntityType="ODataDemo.Category">
+          <NavigationPropertyBinding Path="Products" Target="Products"/>
+        </EntitySet>
+        <EntitySet Name="Suppliers" EntityType="ODataDemo.Supplier">
+          <NavigationPropertyBinding Path="Products" Target="Products"/>
+        </EntitySet>
+        <EntitySet Name="Persons" EntityType="ODataDemo.Person">
+          <NavigationPropertyBinding Path="PersonDetail" Target="PersonDetails"/>
+        </EntitySet>
+        <EntitySet Name="PersonDetails" EntityType="ODataDemo.PersonDetail">
+          <NavigationPropertyBinding Path="Person" Target="Persons"/>
+        </EntitySet>
+        <EntitySet Name="Advertisements" EntityType="ODataDemo.Advertisement">
+          <NavigationPropertyBinding Path="FeaturedProduct" Target="Products"/>
+        </EntitySet>
+      </EntityContainer>
+      <Annotations Target="ODataDemo.DemoService">
+        <Annotation Term="Org.OData.Display.V1.Description" String="This is a sample OData service with vocabularies"/>
+      </Annotations>
+      <Annotations Target="ODataDemo.Product">
+        <Annotation Term="Org.OData.Display.V1.Description" String="All Products available in the online store"/>
+      </Annotations>
+      <Annotations Target="ODataDemo.Product/Name">
+        <Annotation Term="Org.OData.Display.V1.DisplayName" String="Product Name"/>
+      </Annotations>
+      <Annotations Target="ODataDemo.DemoService/Suppliers">
+        <Annotation Term="Org.OData.Publication.V1.PublisherName" String="Microsoft Corp."/>
+        <Annotation Term="Org.OData.Publication.V1.PublisherId" String="MSFT"/>
+        <Annotation Term="Org.OData.Publication.V1.Keywords" String="Inventory, Supplier, Advertisers, Sales, Finance"/>
+        <Annotation Term="Org.OData.Publication.V1.AttributionUrl" String="http://www.odata.org/"/>
+        <Annotation Term="Org.OData.Publication.V1.AttributionDescription" String="All rights reserved"/>
+        <Annotation Term="Org.OData.Publication.V1.DocumentationUrl " String="http://www.odata.org/"/>
+        <Annotation Term="Org.OData.Publication.V1.TermsOfUseUrl" String="All rights reserved"/>
+        <Annotation Term="Org.OData.Publication.V1.PrivacyPolicyUrl" String="http://www.odata.org/"/>
+        <Annotation Term="Org.OData.Publication.V1.LastModified" String="4/2/2013"/>
+        <Annotation Term="Org.OData.Publication.V1.ImageUrl " String="http://www.odata.org/"/>
+      </Annotations>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.collection.complex.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.collection.complex.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.collection.complex.json
new file mode 100644
index 0000000..0bf131e
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.collection.complex.json
@@ -0,0 +1,14 @@
+{
+  "PhoneNumbers": [
+    {
+      "Number": "425-555-1212",
+      "Type": "Home"
+    },
+    {
+      "@odata.type": "#Model.CellPhoneNumber",
+      "Number": "425-555-0178",
+      "Type": "Cell",
+      "Carrier": "Sprint"
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.collection.primitive.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.collection.primitive.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.collection.primitive.json
new file mode 100644
index 0000000..dc811b4
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.collection.primitive.json
@@ -0,0 +1,7 @@
+{
+  "@odata.context": "http://host/service/$metadata#Customers/$entity",
+  "EmailAddresses": [
+    "Julie@Swansworth.com",
+    "Julie.Swansworth@work.com"
+  ]
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.complex.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.complex.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.complex.json
new file mode 100644
index 0000000..189613f
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.complex.json
@@ -0,0 +1,12 @@
+{
+  "CompanyID": 0,
+  "CompanyCategory": "IT",
+  "Revenue": 100000,
+  "Name": "MS",
+  "Address": {
+    "Street": "1 Microsoft Way",
+    "City": "Redmond",
+    "PostalCode": "98052",
+    "CompanyName": "Microsoft"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.minimal.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.minimal.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.minimal.json
new file mode 100644
index 0000000..de0a50b
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.minimal.json
@@ -0,0 +1,15 @@
+{
+  "@odata.context": "http://host/service/$metadata#Customers/$entity",
+  "ID": "ALFKI",
+  "CompanyName": "Alfreds Futterkiste",
+  "ContactName": "Maria Anders",
+  "ContactTitle": "Sales Representative",
+  "Phone": "030-0074321",
+  "Fax": "030-0076545",
+  "Address": {
+    "Street": "Obere Str. 57",
+    "City": "Berlin",
+    "Region": null,
+    "PostalCode": "D-12209"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.primitive.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.primitive.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.primitive.json
new file mode 100644
index 0000000..c66f15d
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.primitive.json
@@ -0,0 +1,22 @@
+{
+  "NullValue": null,
+  "TrueValue": true,
+  "FalseValue": false,
+  "BinaryValue": "T0RhdGE",
+  "IntegerValue": -128,
+  "DoubleValue": 3.1415926535897931,
+  "SingleValue": "INF",
+  "DecimalValue": 34.95,
+  "StringValue": "Say \"Hello\",\nthen go",
+  "DateValue": "2012-12-03",
+  "DateTimeOffsetValue": "2012-12-03T07:16:23Z",
+  "DurationValue": "P12DT23H59M59.999999999999S",
+  "TimeOfDayValue": "07:59:59.999",
+  "GuidValue": "01234567-89ab-cdef-0123-456789abcdef",
+  "Int64Value": 0,
+  "ColorEnumValue": "Yellow",
+  "GeographyPoint": {
+    "type": "Point",
+    "coordinates": [142.1, 64.1]
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.json
new file mode 100644
index 0000000..bcd1dba
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.json
@@ -0,0 +1,22 @@
+{
+  "@odata.context": "http://host/service/$metadata#Customers/$entity",
+  "@odata.id": "Customers('ALFKI')",
+  "@odata.etag": "W/\"MjAxMy0wNS0yN1QxMTo1OFo=\"",
+  "@odata.editLink": "Customers('ALFKI')",
+  "ID": "ALFKI",
+  "CompanyName": "Alfreds Futterkiste",
+  "ContactName": "Maria Anders",
+  "ContactTitle": "Sales Representative",
+  "Phone": "030-0074321",
+  "Fax": "030-0076545",
+  "Address": {
+    "Street": "Obere Str. 57",
+    "City": "Berlin",
+    "Region": null,
+    "PostalCode": "D-12209",
+    "Country@odata.associationLink": "Customers('ALFKI')/Address/Country/$ref",
+    "Country@odata.navigationLink": "Customers('ALFKI')/Address/Country"
+  },
+  "Orders@odata.associationLink": "Customers('ALFKI')/Orders/$ref",
+  "Orders@odata.navigationLink": "Customers('ALFKI')/Orders"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.xml
new file mode 100644
index 0000000..94cb766
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entity.withcomplexnavigation.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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.
+-->
+<entry xmlns="http://www.w3.org/2005/Atom"
+       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata"
+       xmlns:d="http://docs.oasis-open.org/odata/ns/data"
+       xml:base="http://host/service/"
+       m:context="$metadata#Customers/$entity"
+       m:metadata-etag="W/&quot;MjAxMy0wNS0xM1QxNDo1NFo=&quot;">
+  <id>http://host/service/$metadata#Customers('ALFKI')</id>
+  <title/>
+  <summary/>
+  <updated>2012-03-30T07:11:05Z</updated>
+  <author>
+    <name/>
+  </author>
+  <link rel="edit" title="Customer" href="Customers('ALFKI')"/>
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Orders"
+        type="application/atom+xml;type=feed"
+        title="Orders">
+        <m:inline><feed><m:ref id="Customers('ALFKI')/Orders"/></feed></m:inline> </link>        
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier"
+        type="application/atom+xml;type=entry"
+        title="Supplier" href="Customers('ALFKI')/Supplier"/>
+  <category term="#ODataDemo.Customer"
+            scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
+  <content type="application/xml">
+    <m:properties>
+      <d:ID>ALFKI</d:ID>
+      <d:CompanyName>Alfreds Futterkiste</d:CompanyName>
+      <d:ContactName>Maria Anders</d:ContactName>
+      <d:ContactTitle>Sales Representative</d:ContactTitle>
+      <d:Phone>030-0074321</d:Phone>
+      <d:Fax>030-0076545</d:Fax>
+      <d:Address>
+        <d:Street>Obere Str. 57</d:Street>
+        <d:City>Berlin</d:City>
+        <d:Region m:null="true"/>
+        <d:PostalCode>D-12209</d:PostalCode>
+        <link rel="http://docs.oasis-open.org/odata/ns/related/Country"
+              type="application/atom+xml;type=entry"
+              title="Country"
+              href="Customers('ALFKI')/Address/Country"/>
+      </d:Address>
+    </m:properties>
+  </content>
+</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/entityReference.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entityReference.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entityReference.json
new file mode 100644
index 0000000..d0b6960
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entityReference.json
@@ -0,0 +1,4 @@
+{
+  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#$ref",
+  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Employees(PersonID=3)"
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/entityReference.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/entityReference.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entityReference.xml
new file mode 100644
index 0000000..d04613b
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/entityReference.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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.
+-->
+<m:ref m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#$ref" 
+       id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Employees(PersonID=3)" 
+       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata"/>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/error.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/error.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/error.json
new file mode 100644
index 0000000..30a50d8
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/error.json
@@ -0,0 +1,14 @@
+{
+  "error": {
+    "code": "501",
+    "message": "Unsupported functionality",
+    "target": "query",
+    "details": [
+      {
+        "code": "301",
+        "target": "$search",
+        "message": "$search query option not supported"
+      }
+    ]
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/error.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/error.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/error.xml
new file mode 100644
index 0000000..149b799
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/error.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<error xmlns="http://docs.oasis-open.org/odata/ns/metadata">
+  <code>501</code>
+  <message>Unsupported functionality</message>
+  <target>query</target>
+  <details>
+    <detail>
+      <code>301</code>
+      <message>$search query option not supported</message>
+      <target>$search</target>
+    </detail>
+  </details>
+</error>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc1-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc1-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc1-metadata.xml
new file mode 100644
index 0000000..74a71d4
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc1-metadata.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/cs01/vocabularies/Org.OData.Core.V1.xml">
+    <edmx:Include Namespace="Org.OData.Core.V1" Alias="Core"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/cs01/vocabularies/Org.OData.Measures.V1.xml">
+    <edmx:Include Alias="UoM" Namespace="Org.OData.Measures.V1"/>
+  </edmx:Reference>
+  <edmx:DataServices>
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="ODataDemo">
+      <TypeDefinition Name="Length" UnderlyingType="Edm.Int32">
+        <Annotation Term="Org.OData.Measures.V1.Unit" String="Centimeters"/>
+      </TypeDefinition>
+      <TypeDefinition Name="Weight" UnderlyingType="Edm.Int32">
+        <Annotation Term="Org.OData.Measures.V1.Unit" String="Kilograms"/>
+      </TypeDefinition>
+      <ComplexType Name="Size">
+        <Property Name="Height" Type="Self.Length" />
+        <Property Name="Weight" Type="Self.Weight" />
+      </ComplexType>
+      <EntityType Name="Product" HasStream="true">
+        <Key>
+          <PropertyRef Name="ID"/>
+        </Key>
+        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Description" Type="Edm.String">
+          <Annotation Term="Core.IsLanguageDependent"/>
+        </Property>
+        <Property Name="ReleaseDate" Type="Edm.Date"/>
+        <Property Name="DiscontinuedDate" Type="Edm.Date"/>
+        <Property Name="Rating" Type="Edm.Int32"/>
+        <Property Name="Price" Type="Edm.Decimal">
+          <Annotation Term="UoM.ISOCurrency" Path="Currency"/>
+        </Property>
+        <Property Name="Currency" Type="Edm.String" MaxLength="3"/>
+        <NavigationProperty Name="Category" Type="ODataDemo.Category" Nullable="false" Partner="Products"/>
+        <NavigationProperty Name="Supplier" Type="ODataDemo.Supplier" Partner="Products"/>
+      </EntityType>
+      <EntityType Name="Category">
+        <Key>
+          <PropertyRef Name="ID"/>
+        </Key>
+        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String">
+          <Annotation Term="Core.IsLanguageDependent"/>
+        </Property>
+        <NavigationProperty Name="Products" Partner="Category" Type="Collection(ODataDemo.Product)">
+          <OnDelete Action="Cascade"/>
+        </NavigationProperty>
+      </EntityType>
+      <EntityType Name="Supplier">
+        <Key>
+          <PropertyRef Name="ID"/>
+        </Key>
+        <Property Name="ID" Type="Edm.String" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+        <Property Name="Address" Type="ODataDemo.Address" Nullable="false"/>
+        <Property Name="Concurrency" Type="Edm.Int32" Nullable="false"/>
+        <NavigationProperty Name="Products" Partner="Supplier"/>                                                                                                                                                    Type="Collection(ODataDemo.Product)"/>
+      </EntityType>
+      <EntityType Name="Country">
+        <Key>
+          <PropertyRef Name="Code"/>
+        </Key>
+        <Property Name="Code" Type="Edm.String" MaxLength="2" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+      </EntityType>
+      <ComplexType Name="Address">
+        <Property Name="Street" Type="Edm.String"/>
+        <Property Name="City" Type="Edm.String"/>
+        <Property Name="State" Type="Edm.String"/>
+        <Property Name="ZipCode" Type="Edm.String"/>
+        <Property Name="CountryName" Type="Edm.String"/>
+        <NavigationProperty Name="Country" Type="ODataDemo.Country">
+          <ReferentialConstraint Property="CountryName" ReferencedProperty="Name"/>
+        </NavigationProperty>
+      </ComplexType>
+      <Function Name="ProductsByRating">
+        <Parameter Name="Rating" Type="Edm.Int32"/>
+        <ReturnType Type="Collection(ODataDemo.Product)"/>
+      </Function>
+      <EntityContainer Name="DemoService">
+        <EntitySet Name="Products" EntityType="ODataDemo.Product">
+          <NavigationPropertyBinding Path="Category" Target="Categories"/>
+        </EntitySet>
+        <EntitySet Name="Categories" EntityType="ODataDemo.Category">
+          <NavigationPropertyBinding Path="Products" Target="Products"/>
+        </EntitySet>
+        <EntitySet Name="Suppliers" EntityType="ODataDemo.Supplier">
+          <NavigationPropertyBinding Path="Products" Target="Products"/>
+          <NavigationPropertyBinding Path="Address/Country" Target="Countries"/>
+          <Annotation Term="Core.OptimisticConcurrencyControl">
+            <Collection>
+              <PropertyPath>Concurrency</PropertyPath>
+            </Collection>
+          </Annotation>
+        </EntitySet>
+        <Singleton Name="Contoso" Type="Self.Supplier">
+          <NavigationPropertyBinding Path="Products" Target="Products"/>
+        </Singleton>
+        <EntitySet Name="Countries" EntityType="ODataDemo.Country"/>
+        <FunctionImport Name="ProductsByRating" EntitySet="Products" Function="ODataDemo.ProductsByRating"/>
+      </EntityContainer>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc2-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc2-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc2-metadata.xml
new file mode 100644
index 0000000..60387f2
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc2-metadata.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+  <edmx:Reference Uri="http://host/service/$metadata">
+    <edmx:Include Namespace="ODataDemo"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://somewhere/Vocabulary/V1">
+    <edmx:Include Alias="Vocabulary1" Namespace="Some.Vocabulary.V1"/>
+  </edmx:Reference>
+  <edmx:DataServices>
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Annotations">
+      <Annotations Target="ODataDemo.Supplier">
+        <Annotation Term="Vocabulary1.EMail">
+          <Null/>
+        </Annotation>
+        <Annotation Term="Vocabulary1.AccountID" Path="ID"/>
+        <Annotation Term="Vocabulary1.Title" String="Supplier Info"/>
+        <Annotation Term="Vocabulary1.DisplayName">
+          <Apply Function="odata.concat">
+            <Path>Name</Path>
+            <String> in </String>
+            <Path>Address/CountryName</Path>
+          </Apply>
+        </Annotation>
+      </Annotations>
+      <Annotations Target="ODataDemo.Product">
+        <Annotation Term="Vocabulary1.Tags">
+          <Collection>
+            <String>MasterData</String>
+          </Collection>
+        </Annotation>        
+      </Annotations>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc3-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc3-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc3-metadata.xml
new file mode 100644
index 0000000..36e5216
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc3-metadata.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+  <edmx:Reference Uri="http://host/service/$metadata">
+    <edmx:Include Namespace="ODataDemo"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://somewhere/Vocabulary/V1">
+    <edmx:Include Alias="Vocabulary1" Namespace="Some.Vocabulary.V1"/>
+  </edmx:Reference>
+  <edmx:DataServices>
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Annotations">
+      <Annotations Target="Test">
+        <Annotation Term="org.example.display.EndTime" TimeOfDay="21:45:00"/>
+        <Annotation Term="org.example.display.EndTime">
+          <TimeOfDay>21:45:00</TimeOfDay>
+        </Annotation>
+        <Annotation Term='Test' Path="IsMale"/>
+        <Annotation Term='Test'>
+          <Not>
+            <Path>IsMale</Path>
+          </Not>
+        </Annotation>
+        <Annotation Term='Test'>
+          <And>
+            <Path>IsMale</Path>
+            <Path>IsMarried</Path>
+          </And>
+        </Annotation>
+        <Annotation Term="UI.ReferenceFacet" AnnotationPath="Product/Supplier/@UI.LineItem"/>
+        <Annotation Term="UI.ReferenceFacet">
+          <AnnotationPath>Product/Supplier/@UI.LineItem</AnnotationPath>
+        </Annotation>
+        <Annotation Term="Vocabulary1.DisplayName">
+          <Apply Function="odata.concat">
+            <Path>Name</Path>
+            <String> in </String>
+            <Path>Address/CountryName</Path>
+          </Apply>
+        </Annotation>
+        <Annotation Term="org.example.display.Threshold">
+          <Cast Type="Edm.Decimal">
+            <Path>Average</Path>
+          </Cast>
+        </Annotation>
+        <Annotation Term="Vocabulary1.Tags">
+          <Collection>
+            <String>MasterData</String>
+          </Collection>
+        </Annotation>
+        <Annotation Term="org.example.person.Gender">
+          <If>
+            <Bool>true</Bool>
+            <String>Female</String>
+            <String>Male</String>
+          </If>
+        </Annotation>
+        <Annotation Term="org.example.person.Gender">
+          <If>
+            <Path>IsFemale</Path>
+            <String>Female</String>
+            <String>Male</String>
+          </If>
+        </Annotation>
+        <Annotation Term="Self.IsPreferredCustomer">
+          <IsOf Type="Self.PreferredCustomer">
+            <Path>Customer</Path>
+          </IsOf>
+        </Annotation>
+        <Annotation Term="org.example.display.DisplayName">
+          <LabeledElement Name="CustomerFirstName" Path="FirstName" />
+        </Annotation>
+        <Annotation Term="org.example.display.DisplayName">
+          <LabeledElement Name="CustomerFirstName">
+            <Path>FirstName</Path>
+          </LabeledElement>
+        </Annotation>
+        <Annotation Term="org.example.person.Employee">
+          <Record>
+            <PropertyValue Property="GivenName" Path="FirstName" />
+            <PropertyValue Property="Surname" Path="LastName" />
+            <PropertyValue Property="Manager" Path="DirectSupervisor" />
+            <PropertyValue Property="CostCenter"> 
+              <UrlRef>
+                <Apply Function="odata.fillUriTemplate">
+                  <String>http://host/anotherservice/CostCenters('{ccid}')</String>
+                  <LabeledElement Name="ccid" Path="CostCenterID" /> 
+                </Apply> 
+              </UrlRef>
+            </PropertyValue>
+          </Record>
+        </Annotation>
+        <Annotation Term="Vocab.Supplier">
+          <UrlRef>
+            <Apply Function="odata.fillUriTemplate">
+              <String>http://host/service/Suppliers({suppID})</String>
+              <LabeledElement Name="suppID">
+                <Apply Function="odata.uriEncode">
+                  <Path>SupplierId</Path>
+                </Apply>
+              </LabeledElement>
+            </Apply>
+          </UrlRef>
+        </Annotation>
+        <Annotation Term="Core.LongDescription">
+          <UrlRef>
+            <String>http://host/wiki/HowToUse</String>
+          </UrlRef>
+        </Annotation>
+      </Annotations>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc4-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc4-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc4-metadata.xml
new file mode 100644
index 0000000..6602960
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/fromdoc4-metadata.xml
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+  <edmx:DataServices>
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Annotations">
+      <Annotations Target="Test">
+        <Annotation Term="org.example.display.Threshold">
+          <Cast Type="Edm.Decimal">
+            <Path>Average</Path>
+          </Cast>
+        </Annotation>   
+        <Annotation Term="And">
+          <And>
+            <Path>IsMale</Path>
+            <Path>IsMarried</Path>
+          </And>          
+        </Annotation>
+        <Annotation Term="Or">
+          <Or>
+            <Path>IsMale</Path>
+            <Path>IsMarried</Path>
+          </Or>          
+        </Annotation>
+        <Annotation Term="Not">
+          <Not>
+            <Path>IsMale</Path>
+          </Not>         
+        </Annotation>
+        <Annotation Term="Eq">
+          <Eq>
+            <Null/>
+            <Path>IsMale</Path>
+          </Eq>        
+        </Annotation>
+        <Annotation Term="UI.ReferenceFacet" AnnotationPath="Product/Supplier/@UI.LineItem"/>
+        <Annotation Term="UI.CollectionFacet" Qualifier="Contacts">
+          <Collection>
+            <AnnotationPath>Supplier/@Communication.Contact</AnnotationPath>
+            <AnnotationPath>Customer/@Communication.Contact</AnnotationPath>
+          </Collection>
+        </Annotation>
+        <Annotation Term="org.example.display.DisplayName">
+          <Apply Function="odata.concat">
+            <String>Product: </String>
+            <Path>ProductName</Path>
+            <String> (</String>
+            <Path>Available/Quantity</Path>
+            <String> </String>
+            <Path>Available/Unit</Path>
+            <String> available)</String>
+          </Apply>
+        </Annotation>
+        <Annotation Term="Apply2">
+          <Apply Function="odata.fillUriTemplate">
+            <String>http://host/service/Genres('{genreName}')</String>
+            <LabeledElement Name="genreName" Path="NameOfMovieGenre"/>
+          </Apply>
+        </Annotation>
+        <Annotation Term="Apply3">
+          <Apply Function="odata.fillUriTemplate">
+            <String>http://host/service/Genres({genreName})</String>
+            <LabeledElement Name="genreName">
+              <Apply Function="odata.uriEncode" >
+                <Path>NameOfMovieGenre</Path>
+              </Apply>
+            </LabeledElement>
+          </Apply>
+        </Annotation>     
+        <Annotation Term="org.example.seo.SeoTerms">
+          <Collection>
+            <String>Product</String>
+            <String>Supplier</String>
+            <String>Customer</String>
+          </Collection>
+        </Annotation>
+        <Annotation Term="org.example.person.Gender">
+          <If>
+            <Path>IsFemale</Path>
+            <String>Female</String>
+            <String>Male</String>
+          </If>
+        </Annotation>
+        <Annotation Term="Self.IsPreferredCustomer">
+          <IsOf Type="Self.PreferredCustomer">
+            <Path>Customer</Path>
+          </IsOf>
+        </Annotation>
+        <Annotation Term="org.example.display.DisplayName">
+          <LabeledElement Name="CustomerFirstName" Path="FirstName"/>
+        </Annotation>
+        <Annotation Term="org.example.display.DisplayName">
+          <LabeledElement Name="CustomerFirstName">
+            <Path>FirstName</Path>
+          </LabeledElement>
+        </Annotation>
+        <Annotation Term="org.example.display.DisplayName">
+          <LabeledElementReference>Model.CustomerFirstName</LabeledElementReference>
+        </Annotation>
+        <Annotation Term="UI.HyperLink" NavigationPropertyPath="Supplier"/>
+        <Annotation Term="Capabilities.UpdateRestrictions">
+          <Record>
+            <PropertyValue Property="NonUpdatableNavigationProperties">
+              <Collection>
+                <NavigationPropertyPath>Supplier</NavigationPropertyPath>
+                <NavigationPropertyPath>Category</NavigationPropertyPath>
+              </Collection>
+            </PropertyValue>
+          </Record>
+        </Annotation>
+        <Annotation Term="org.example.display.DisplayName" Path="FirstName"/>
+        <Annotation Term="org.example.display.DisplayName">
+          <Path>@vCard.Address#work/FullName</Path>
+        </Annotation>   
+        <Annotation Term="UI.RefreshOnChangeOf" PropertyPath="ChangedAt"/>
+        <Annotation Term="Capabilities.UpdateRestrictions">
+          <Record>
+            <PropertyValue Property="NonUpdatableProperties">
+              <Collection>
+                <PropertyPath>CreatedAt</PropertyPath>
+                <PropertyPath>ChangedAt</PropertyPath>
+              </Collection>
+            </PropertyValue>
+          </Record>
+        </Annotation>             
+        <Annotation Term="Vocab.Supplier">
+          <UrlRef>
+            <Apply Function="odata.fillUriTemplate">
+              <String>http://host/service/Suppliers({suppID})</String>
+              <LabeledElement Name="suppID">
+                <Apply Function="odata.uriEncode">
+                  <Path>SupplierId</Path>
+                </Apply>
+              </LabeledElement>
+            </Apply>
+          </UrlRef>
+        </Annotation>
+        <Annotation Term="Core.LongDescription">
+          <UrlRef>
+            <String>http://host/wiki/HowToUse</String>
+          </UrlRef>
+        </Annotation>
+      </Annotations>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>


[4/8] olingo-odata4 git commit: [OLINGO-431] Delete unnecessary v4 in package name

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/metadata.xml
new file mode 100644
index 0000000..3f992ac
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/metadata.xml
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
+  <edmx:DataServices m:DataServiceVersion="4.0" m:MaxDataServiceVersion="4.0" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">
+    <Schema Namespace="Microsoft.Exchange.Services.OData.Model" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+      <EnumType Name="BodyType">
+        <Member Name="Text" Value="0" />
+        <Member Name="HTML" Value="1" />
+      </EnumType>
+      <EnumType Name="Importance">
+        <Member Name="Normal" Value="0" />
+        <Member Name="Low" Value="1" />
+        <Member Name="High" Value="2" />
+      </EnumType>
+      <EnumType Name="AttendeeType">
+        <Member Name="Required" Value="1" />
+        <Member Name="Optional" Value="2" />
+        <Member Name="Resource" Value="3" />
+      </EnumType>
+      <EnumType Name="ResponseType">
+        <Member Name="None" Value="0" />
+        <Member Name="Organizer" Value="1" />
+        <Member Name="TentativelyAccepted" Value="2" />
+        <Member Name="Accepted" Value="3" />
+        <Member Name="Declined" Value="4" />
+        <Member Name="NotResponded" Value="5" />
+      </EnumType>
+      <EnumType Name="EventType">
+        <Member Name="SingleInstance" Value="0" />
+        <Member Name="Occurrence" Value="1" />
+        <Member Name="Exception" Value="2" />
+        <Member Name="SeriesMaster" Value="3" />
+      </EnumType>
+      <EnumType Name="FreeBusyStatus">
+        <Member Name="Free" Value="0" />
+        <Member Name="Tentative" Value="1" />
+        <Member Name="Busy" Value="2" />
+        <Member Name="Oof" Value="3" />
+        <Member Name="WorkingElsewhere" Value="4" />
+        <Member Name="Unknown" Value="-1" />
+      </EnumType>
+      <ComplexType Name="Recipient">
+        <Property Name="Name" Type="Edm.String" />
+        <Property Name="Address" Type="Edm.String" />
+      </ComplexType>
+      <ComplexType Name="Attendee" BaseType="Microsoft.Exchange.Services.OData.Model.Recipient">
+        <Property Name="Status" Type="Microsoft.Exchange.Services.OData.Model.ResponseStatus" />
+        <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.AttendeeType" />
+      </ComplexType>
+      <ComplexType Name="ItemBody">
+        <Property Name="ContentType" Type="Microsoft.Exchange.Services.OData.Model.BodyType" />
+        <Property Name="Content" Type="Edm.String" />
+      </ComplexType>
+      <ComplexType Name="Location">
+        <Property Name="DisplayName" Type="Edm.String" />
+      </ComplexType>
+      <ComplexType Name="ResponseStatus" BaseType="Microsoft.Exchange.Services.OData.Model.Recipient">
+        <Property Name="Response" Type="Microsoft.Exchange.Services.OData.Model.ResponseType" />
+        <Property Name="Time" Type="Edm.DateTimeOffset" />
+      </ComplexType>
+      <EntityType Name="Entity" Abstract="true">
+        <Key>
+          <PropertyRef Name="Id" />
+        </Key>
+        <Property Name="Id" Type="Edm.String" Nullable="false" />
+      </EntityType>
+      <EntityType Name="User" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+        <Property Name="DisplayName" Type="Edm.String" />
+        <Property Name="Alias" Type="Edm.String" />
+        <Property Name="MailboxGuid" Type="Edm.Guid" />
+        <NavigationProperty Name="Folders" Type="Collection(Microsoft.Exchange.Services.OData.Model.Folder)" />
+        <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.EmailMessage)" />
+        <NavigationProperty Name="RootFolder" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <NavigationProperty Name="Inbox" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <NavigationProperty Name="Drafts" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <NavigationProperty Name="SentItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <NavigationProperty Name="DeletedItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <NavigationProperty Name="Calendars" Type="Collection(Microsoft.Exchange.Services.OData.Model.Calendar)" />
+        <NavigationProperty Name="CalendarGroups" Type="Collection(Microsoft.Exchange.Services.OData.Model.CalendarGroup)" />
+        <NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" />
+      </EntityType>
+      <EntityType Name="Folder" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+        <Property Name="ParentFolderId" Type="Edm.String" />
+        <Property Name="DisplayName" Type="Edm.String" />
+        <Property Name="ClassName" Type="Edm.String" />
+        <Property Name="TotalCount" Type="Edm.Int32" />
+        <Property Name="ChildFolderCount" Type="Edm.Int32" />
+        <Property Name="UnreadItemCount" Type="Edm.Int32" />
+        <NavigationProperty Name="ChildFolders" Type="Collection(Microsoft.Exchange.Services.OData.Model.Folder)" />
+        <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.EmailMessage)" />
+      </EntityType>
+      <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.Folder">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+      </Action>
+      <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.Folder">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+      </Action>
+      <EntityType Name="Item" BaseType="Microsoft.Exchange.Services.OData.Model.Entity" Abstract="true">
+        <Property Name="ChangeKey" Type="Edm.String" />
+        <Property Name="ClassName" Type="Edm.String" />
+        <Property Name="Subject" Type="Edm.String" />
+        <Property Name="Body" Type="Microsoft.Exchange.Services.OData.Model.ItemBody" />
+        <Property Name="BodyPreview" Type="Edm.String" />
+        <Property Name="Importance" Type="Microsoft.Exchange.Services.OData.Model.Importance" />
+        <Property Name="Categories" Type="Collection(Edm.String)" />
+        <Property Name="HasAttachments" Type="Edm.Boolean" />
+        <Property Name="DateTimeCreated" Type="Edm.DateTimeOffset" />
+        <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
+        <NavigationProperty Name="Attachments" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attachment)" />
+      </EntityType>
+      <EntityType Name="EmailMessage" BaseType="Microsoft.Exchange.Services.OData.Model.Item">
+        <Property Name="ParentFolderId" Type="Edm.String" />
+        <Property Name="From" Type="Microsoft.Exchange.Services.OData.Model.Recipient" />
+        <Property Name="Sender" Type="Microsoft.Exchange.Services.OData.Model.Recipient" />
+        <Property Name="ToRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+        <Property Name="CcRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+        <Property Name="BccRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+        <Property Name="ReplyTo" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+        <Property Name="ConversationIndex" Type="Edm.String" />
+        <Property Name="UniqueBody" Type="Microsoft.Exchange.Services.OData.Model.ItemBody" />
+        <Property Name="DateTimeReceived" Type="Edm.DateTimeOffset" />
+        <Property Name="DateTimeSent" Type="Edm.DateTimeOffset" />
+        <Property Name="IsDeliveryReceiptRequested" Type="Edm.Boolean" />
+        <Property Name="IsReadReceiptRequested" Type="Edm.Boolean" />
+        <Property Name="IsDraft" Type="Edm.Boolean" />
+        <Property Name="IsRead" Type="Edm.Boolean" />
+      </EntityType>
+      <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.EmailMessage">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.EmailMessage" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+      </Action>
+      <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.EmailMessage">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.EmailMessage" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+      </Action>
+      <EntityType Name="Attachment" BaseType="Microsoft.Exchange.Services.OData.Model.Entity" Abstract="true">
+        <Property Name="Name" Type="Edm.String" />
+        <Property Name="ContentType" Type="Edm.String" />
+        <Property Name="IsInline" Type="Edm.Boolean" Nullable="false" />
+        <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
+      </EntityType>
+      <EntityType Name="FileAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment">
+        <Property Name="ContentId" Type="Edm.String" />
+        <Property Name="ContentLocation" Type="Edm.String" />
+        <Property Name="Size" Type="Edm.Int32" Nullable="false" />
+        <Property Name="IsContactPhoto" Type="Edm.Boolean" Nullable="false" />
+        <Property Name="ContentBytes" Type="Edm.Binary" MaxLength="Max" FixedLength="false" />
+      </EntityType>
+      <EntityType Name="ItemAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment">
+        <NavigationProperty Name="Item" Type="Microsoft.Exchange.Services.OData.Model.Item" />
+      </EntityType>
+      <EntityType Name="Calendar" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+        <Property Name="Name" Type="Edm.String" />
+        <Property Name="ChangeKey" Type="Edm.String" />
+        <NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" />
+      </EntityType>
+      <EntityType Name="CalendarGroup" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+        <Property Name="Name" Type="Edm.String" />
+        <Property Name="ChangeKey" Type="Edm.String" />
+        <Property Name="ClassId" Type="Edm.Guid" />
+      </EntityType>
+      <EntityType Name="Event" BaseType="Microsoft.Exchange.Services.OData.Model.Item">
+        <Property Name="Start" Type="Edm.DateTimeOffset" />
+        <Property Name="End" Type="Edm.DateTimeOffset" />
+        <Property Name="Location" Type="Microsoft.Exchange.Services.OData.Model.Location" />
+        <Property Name="ShowAs" Type="Microsoft.Exchange.Services.OData.Model.FreeBusyStatus" />
+        <Property Name="IsAllDay" Type="Edm.Boolean" />
+        <Property Name="IsCancelled" Type="Edm.Boolean" />
+        <Property Name="IsOrganizer" Type="Edm.Boolean" />
+        <Property Name="ResponseRequested" Type="Edm.Boolean" />
+        <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.EventType" />
+        <Property Name="SeriesId" Type="Edm.String" />
+        <Property Name="Attendees" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attendee)" />
+        <NavigationProperty Name="Calendar" Type="Microsoft.Exchange.Services.OData.Model.Calendar" />
+      </EntityType>
+      <EntityContainer Name="EntityContainer" m:IsDefaultEntityContainer="true">
+        <EntitySet Name="Users" EntityType="Microsoft.Exchange.Services.OData.Model.User">
+          <NavigationPropertyBinding Path="Folders" Target="Folders" />
+          <NavigationPropertyBinding Path="Messages" Target="Messages" />
+          <NavigationPropertyBinding Path="RootFolder" Target="Folders" />
+          <NavigationPropertyBinding Path="Inbox" Target="Folders" />
+          <NavigationPropertyBinding Path="Drafts" Target="Folders" />
+          <NavigationPropertyBinding Path="SentItems" Target="Folders" />
+          <NavigationPropertyBinding Path="DeletedItems" Target="Folders" />
+          <NavigationPropertyBinding Path="Calendars" Target="Calendars" />
+          <NavigationPropertyBinding Path="CalendarGroups" Target="CalendarGroups" />
+          <NavigationPropertyBinding Path="Events" Target="Events" />
+        </EntitySet>
+        <EntitySet Name="Folders" EntityType="Microsoft.Exchange.Services.OData.Model.Folder">
+          <NavigationPropertyBinding Path="ChildFolders" Target="Folders" />
+          <NavigationPropertyBinding Path="Messages" Target="Messages" />
+        </EntitySet>
+        <EntitySet Name="Items" EntityType="Microsoft.Exchange.Services.OData.Model.Item" />
+        <EntitySet Name="Messages" EntityType="Microsoft.Exchange.Services.OData.Model.EmailMessage">
+          <NavigationPropertyBinding Path="Attachments" Target="Attachments" />
+        </EntitySet>
+        <EntitySet Name="Attachments" EntityType="Microsoft.Exchange.Services.OData.Model.Attachment">
+          <NavigationPropertyBinding Path="Microsoft.Exchange.Services.OData.Model.ItemAttachment/Item" Target="Items" />
+        </EntitySet>
+        <EntitySet Name="Calendars" EntityType="Microsoft.Exchange.Services.OData.Model.Calendar">
+          <NavigationPropertyBinding Path="Events" Target="Events" />
+        </EntitySet>
+        <EntitySet Name="CalendarGroups" EntityType="Microsoft.Exchange.Services.OData.Model.CalendarGroup" />
+        <EntitySet Name="Events" EntityType="Microsoft.Exchange.Services.OData.Model.Event">
+          <NavigationPropertyBinding Path="Attachments" Target="Attachments" />
+          <NavigationPropertyBinding Path="Calendar" Target="Calendars" />
+        </EntitySet>
+      </EntityContainer>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/minimalEntity.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/minimalEntity.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/minimalEntity.json
new file mode 100644
index 0000000..a6bd671
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/minimalEntity.json
@@ -0,0 +1,21 @@
+{
+  "odata.context": "http://host/service/$metadata#Customers/$entity", "odata.id": "Customers('ALFKI')",
+  "odata.etag": "W/\"MjAxMy0wNS0yN1QxMTo1OFo=\"",
+  "odata.editLink": "Customers('ALFKI')",
+  "Orders@odata.navigationLink": "Customers('ALFKI')/Orders",
+  "Orders@odata.associationLink": "Customers('ALFKI')/Orders/$ref",
+  "ID": "ALFKI",
+  "CompanyName": "Alfreds Futterkiste",
+  "ContactName": "Maria Anders",
+  "ContactTitle": "Sales Representative",
+  "Phone": "030-0074321",
+  "Fax": "030-0076545",
+  "Address": {
+    "Street": "Obere Str. 57",
+    "City": "Berlin",
+    "Region": null,
+    "PostalCode": "D-12209",
+    "Country@odata.navigationLink": "Customers('ALFKI')/Address/Country", 
+    "Country@odata.associationLink": "Customers('ALFKI')/Address/Country/$ref"
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/northwind-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/northwind-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/northwind-metadata.xml
new file mode 100644
index 0000000..f65815d
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/northwind-metadata.xml
@@ -0,0 +1,471 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
+  <edmx:DataServices>
+    <Schema Namespace="NorthwindModel" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+      <EntityType Name="Category">
+        <Key>
+          <PropertyRef Name="CategoryID" />
+        </Key>
+        <Property Name="CategoryID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
+        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
+        <Property Name="Description" Type="Edm.String" MaxLength="max" />
+        <Property Name="Picture" Type="Edm.Binary" MaxLength="max" />
+        <NavigationProperty Name="Products" Type="Collection(NorthwindModel.Product)" Partner="Category" />
+      </EntityType>
+      <EntityType Name="CustomerDemographic">
+        <Key>
+          <PropertyRef Name="CustomerTypeID" />
+        </Key>
+        <Property Name="CustomerTypeID" Type="Edm.String" Nullable="false" MaxLength="10" />
+        <Property Name="CustomerDesc" Type="Edm.String" MaxLength="max" />
+        <NavigationProperty Name="Customers" Type="Collection(NorthwindModel.Customer)" Partner="CustomerDemographics" />
+      </EntityType>
+      <EntityType Name="Customer">
+        <Key>
+          <PropertyRef Name="CustomerID" />
+        </Key>
+        <Property Name="CustomerID" Type="Edm.String" Nullable="false" MaxLength="5" />
+        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="ContactName" Type="Edm.String" MaxLength="30" />
+        <Property Name="ContactTitle" Type="Edm.String" MaxLength="30" />
+        <Property Name="Address" Type="Edm.String" MaxLength="60" />
+        <Property Name="City" Type="Edm.String" MaxLength="15" />
+        <Property Name="Region" Type="Edm.String" MaxLength="15" />
+        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
+        <Property Name="Country" Type="Edm.String" MaxLength="15" />
+        <Property Name="Phone" Type="Edm.String" MaxLength="24" />
+        <Property Name="Fax" Type="Edm.String" MaxLength="24" />
+        <NavigationProperty Name="Orders" Type="Collection(NorthwindModel.Order)" Partner="Customer" />
+        <NavigationProperty Name="CustomerDemographics" Type="Collection(NorthwindModel.CustomerDemographic)" Partner="Customers" />
+      </EntityType>
+      <EntityType Name="Employee">
+        <Key>
+          <PropertyRef Name="EmployeeID" />
+        </Key>
+        <Property Name="EmployeeID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
+        <Property Name="LastName" Type="Edm.String" Nullable="false" MaxLength="20" />
+        <Property Name="FirstName" Type="Edm.String" Nullable="false" MaxLength="10" />
+        <Property Name="Title" Type="Edm.String" MaxLength="30" />
+        <Property Name="TitleOfCourtesy" Type="Edm.String" MaxLength="25" />
+        <Property Name="BirthDate" Type="Edm.DateTimeOffset" />
+        <Property Name="HireDate" Type="Edm.DateTimeOffset" />
+        <Property Name="Address" Type="Edm.String" MaxLength="60" />
+        <Property Name="City" Type="Edm.String" MaxLength="15" />
+        <Property Name="Region" Type="Edm.String" MaxLength="15" />
+        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
+        <Property Name="Country" Type="Edm.String" MaxLength="15" />
+        <Property Name="HomePhone" Type="Edm.String" MaxLength="24" />
+        <Property Name="Extension" Type="Edm.String" MaxLength="4" />
+        <Property Name="Photo" Type="Edm.Binary" MaxLength="max" />
+        <Property Name="Notes" Type="Edm.String" MaxLength="max" />
+        <Property Name="ReportsTo" Type="Edm.Int32" />
+        <Property Name="PhotoPath" Type="Edm.String" MaxLength="255" />
+        <NavigationProperty Name="Employees1" Type="Collection(NorthwindModel.Employee)" Partner="Employee1" />
+        <NavigationProperty Name="Employee1" Type="NorthwindModel.Employee" Partner="Employees1">
+          <ReferentialConstraint Property="ReportsTo" ReferencedProperty="EmployeeID" />
+        </NavigationProperty>
+        <NavigationProperty Name="Orders" Type="Collection(NorthwindModel.Order)" Partner="Employee" />
+        <NavigationProperty Name="Territories" Type="Collection(NorthwindModel.Territory)" Partner="Employees" />
+      </EntityType>
+      <EntityType Name="Order_Detail">
+        <Key>
+          <PropertyRef Name="OrderID" />
+          <PropertyRef Name="ProductID" />
+        </Key>
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4" />
+        <Property Name="Quantity" Type="Edm.Int16" Nullable="false" />
+        <Property Name="Discount" Type="Edm.Single" Nullable="false" />
+        <NavigationProperty Name="Order" Type="NorthwindModel.Order" Nullable="false" Partner="Order_Details">
+          <ReferentialConstraint Property="OrderID" ReferencedProperty="OrderID" />
+        </NavigationProperty>
+        <NavigationProperty Name="Product" Type="NorthwindModel.Product" Nullable="false" Partner="Order_Details">
+          <ReferentialConstraint Property="ProductID" ReferencedProperty="ProductID" />
+        </NavigationProperty>
+      </EntityType>
+      <EntityType Name="Order">
+        <Key>
+          <PropertyRef Name="OrderID" />
+        </Key>
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
+        <Property Name="CustomerID" Type="Edm.String" MaxLength="5" />
+        <Property Name="EmployeeID" Type="Edm.Int32" />
+        <Property Name="OrderDate" Type="Edm.DateTimeOffset" />
+        <Property Name="RequiredDate" Type="Edm.DateTimeOffset" />
+        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
+        <Property Name="ShipVia" Type="Edm.Int32" />
+        <Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4" />
+        <Property Name="ShipName" Type="Edm.String" MaxLength="40" />
+        <Property Name="ShipAddress" Type="Edm.String" MaxLength="60" />
+        <Property Name="ShipCity" Type="Edm.String" MaxLength="15" />
+        <Property Name="ShipRegion" Type="Edm.String" MaxLength="15" />
+        <Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" />
+        <Property Name="ShipCountry" Type="Edm.String" MaxLength="15" />
+        <NavigationProperty Name="Customer" Type="NorthwindModel.Customer" Partner="Orders">
+          <ReferentialConstraint Property="CustomerID" ReferencedProperty="CustomerID" />
+        </NavigationProperty>
+        <NavigationProperty Name="Employee" Type="NorthwindModel.Employee" Partner="Orders">
+          <ReferentialConstraint Property="EmployeeID" ReferencedProperty="EmployeeID" />
+        </NavigationProperty>
+        <NavigationProperty Name="Order_Details" Type="Collection(NorthwindModel.Order_Detail)" Partner="Order" />
+        <NavigationProperty Name="Shipper" Type="NorthwindModel.Shipper" Partner="Orders">
+          <ReferentialConstraint Property="ShipVia" ReferencedProperty="ShipperID" />
+        </NavigationProperty>
+      </EntityType>
+      <EntityType Name="Product">
+        <Key>
+          <PropertyRef Name="ProductID" />
+        </Key>
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
+        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="SupplierID" Type="Edm.Int32" />
+        <Property Name="CategoryID" Type="Edm.Int32" />
+        <Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" />
+        <Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
+        <Property Name="UnitsInStock" Type="Edm.Int16" />
+        <Property Name="UnitsOnOrder" Type="Edm.Int16" />
+        <Property Name="ReorderLevel" Type="Edm.Int16" />
+        <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false" />
+        <NavigationProperty Name="Category" Type="NorthwindModel.Category" Partner="Products">
+          <ReferentialConstraint Property="CategoryID" ReferencedProperty="CategoryID" />
+        </NavigationProperty>
+        <NavigationProperty Name="Order_Details" Type="Collection(NorthwindModel.Order_Detail)" Partner="Product" />
+        <NavigationProperty Name="Supplier" Type="NorthwindModel.Supplier" Partner="Products">
+          <ReferentialConstraint Property="SupplierID" ReferencedProperty="SupplierID" />
+        </NavigationProperty>
+      </EntityType>
+      <EntityType Name="Region">
+        <Key>
+          <PropertyRef Name="RegionID" />
+        </Key>
+        <Property Name="RegionID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="RegionDescription" Type="Edm.String" Nullable="false" MaxLength="50" />
+        <NavigationProperty Name="Territories" Type="Collection(NorthwindModel.Territory)" Partner="Region" />
+      </EntityType>
+      <EntityType Name="Shipper">
+        <Key>
+          <PropertyRef Name="ShipperID" />
+        </Key>
+        <Property Name="ShipperID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
+        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="Phone" Type="Edm.String" MaxLength="24" />
+        <NavigationProperty Name="Orders" Type="Collection(NorthwindModel.Order)" Partner="Shipper" />
+      </EntityType>
+      <EntityType Name="Supplier">
+        <Key>
+          <PropertyRef Name="SupplierID" />
+        </Key>
+        <Property Name="SupplierID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
+        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="ContactName" Type="Edm.String" MaxLength="30" />
+        <Property Name="ContactTitle" Type="Edm.String" MaxLength="30" />
+        <Property Name="Address" Type="Edm.String" MaxLength="60" />
+        <Property Name="City" Type="Edm.String" MaxLength="15" />
+        <Property Name="Region" Type="Edm.String" MaxLength="15" />
+        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
+        <Property Name="Country" Type="Edm.String" MaxLength="15" />
+        <Property Name="Phone" Type="Edm.String" MaxLength="24" />
+        <Property Name="Fax" Type="Edm.String" MaxLength="24" />
+        <Property Name="HomePage" Type="Edm.String" MaxLength="max" />
+        <NavigationProperty Name="Products" Type="Collection(NorthwindModel.Product)" Partner="Supplier" />
+      </EntityType>
+      <EntityType Name="Territory">
+        <Key>
+          <PropertyRef Name="TerritoryID" />
+        </Key>
+        <Property Name="TerritoryID" Type="Edm.String" Nullable="false" MaxLength="20" />
+        <Property Name="TerritoryDescription" Type="Edm.String" Nullable="false" MaxLength="50" />
+        <Property Name="RegionID" Type="Edm.Int32" Nullable="false" />
+        <NavigationProperty Name="Region" Type="NorthwindModel.Region" Nullable="false" Partner="Territories">
+          <ReferentialConstraint Property="RegionID" ReferencedProperty="RegionID" />
+        </NavigationProperty>
+        <NavigationProperty Name="Employees" Type="Collection(NorthwindModel.Employee)" Partner="Territories" />
+      </EntityType>
+      <EntityType Name="Alphabetical_list_of_product">
+        <Key>
+          <PropertyRef Name="CategoryName" />
+          <PropertyRef Name="Discontinued" />
+          <PropertyRef Name="ProductID" />
+          <PropertyRef Name="ProductName" />
+        </Key>
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="SupplierID" Type="Edm.Int32" />
+        <Property Name="CategoryID" Type="Edm.Int32" />
+        <Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" />
+        <Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
+        <Property Name="UnitsInStock" Type="Edm.Int16" />
+        <Property Name="UnitsOnOrder" Type="Edm.Int16" />
+        <Property Name="ReorderLevel" Type="Edm.Int16" />
+        <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false" />
+        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
+      </EntityType>
+      <EntityType Name="Category_Sales_for_1997">
+        <Key>
+          <PropertyRef Name="CategoryName" />
+        </Key>
+        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
+        <Property Name="CategorySales" Type="Edm.Decimal" Precision="19" Scale="4" />
+      </EntityType>
+      <EntityType Name="Current_Product_List">
+        <Key>
+          <PropertyRef Name="ProductID" />
+          <PropertyRef Name="ProductName" />
+        </Key>
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" p5:StoreGeneratedPattern="Identity" xmlns:p5="http://schemas.microsoft.com/ado/2009/02/edm/annotation" />
+        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
+      </EntityType>
+      <EntityType Name="Customer_and_Suppliers_by_City">
+        <Key>
+          <PropertyRef Name="CompanyName" />
+          <PropertyRef Name="Relationship" />
+        </Key>
+        <Property Name="City" Type="Edm.String" MaxLength="15" />
+        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="ContactName" Type="Edm.String" MaxLength="30" />
+        <Property Name="Relationship" Type="Edm.String" Nullable="false" MaxLength="9" Unicode="false" />
+      </EntityType>
+      <EntityType Name="Invoice">
+        <Key>
+          <PropertyRef Name="CustomerName" />
+          <PropertyRef Name="Discount" />
+          <PropertyRef Name="OrderID" />
+          <PropertyRef Name="ProductID" />
+          <PropertyRef Name="ProductName" />
+          <PropertyRef Name="Quantity" />
+          <PropertyRef Name="Salesperson" />
+          <PropertyRef Name="ShipperName" />
+          <PropertyRef Name="UnitPrice" />
+        </Key>
+        <Property Name="ShipName" Type="Edm.String" MaxLength="40" />
+        <Property Name="ShipAddress" Type="Edm.String" MaxLength="60" />
+        <Property Name="ShipCity" Type="Edm.String" MaxLength="15" />
+        <Property Name="ShipRegion" Type="Edm.String" MaxLength="15" />
+        <Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" />
+        <Property Name="ShipCountry" Type="Edm.String" MaxLength="15" />
+        <Property Name="CustomerID" Type="Edm.String" MaxLength="5" />
+        <Property Name="CustomerName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="Address" Type="Edm.String" MaxLength="60" />
+        <Property Name="City" Type="Edm.String" MaxLength="15" />
+        <Property Name="Region" Type="Edm.String" MaxLength="15" />
+        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
+        <Property Name="Country" Type="Edm.String" MaxLength="15" />
+        <Property Name="Salesperson" Type="Edm.String" Nullable="false" MaxLength="31" />
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="OrderDate" Type="Edm.DateTimeOffset" />
+        <Property Name="RequiredDate" Type="Edm.DateTimeOffset" />
+        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
+        <Property Name="ShipperName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4" />
+        <Property Name="Quantity" Type="Edm.Int16" Nullable="false" />
+        <Property Name="Discount" Type="Edm.Single" Nullable="false" />
+        <Property Name="ExtendedPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
+        <Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4" />
+      </EntityType>
+      <EntityType Name="Order_Details_Extended">
+        <Key>
+          <PropertyRef Name="Discount" />
+          <PropertyRef Name="OrderID" />
+          <PropertyRef Name="ProductID" />
+          <PropertyRef Name="ProductName" />
+          <PropertyRef Name="Quantity" />
+          <PropertyRef Name="UnitPrice" />
+        </Key>
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4" />
+        <Property Name="Quantity" Type="Edm.Int16" Nullable="false" />
+        <Property Name="Discount" Type="Edm.Single" Nullable="false" />
+        <Property Name="ExtendedPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
+      </EntityType>
+      <EntityType Name="Order_Subtotal">
+        <Key>
+          <PropertyRef Name="OrderID" />
+        </Key>
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4" />
+      </EntityType>
+      <EntityType Name="Orders_Qry">
+        <Key>
+          <PropertyRef Name="CompanyName" />
+          <PropertyRef Name="OrderID" />
+        </Key>
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="CustomerID" Type="Edm.String" MaxLength="5" />
+        <Property Name="EmployeeID" Type="Edm.Int32" />
+        <Property Name="OrderDate" Type="Edm.DateTimeOffset" />
+        <Property Name="RequiredDate" Type="Edm.DateTimeOffset" />
+        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
+        <Property Name="ShipVia" Type="Edm.Int32" />
+        <Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4" />
+        <Property Name="ShipName" Type="Edm.String" MaxLength="40" />
+        <Property Name="ShipAddress" Type="Edm.String" MaxLength="60" />
+        <Property Name="ShipCity" Type="Edm.String" MaxLength="15" />
+        <Property Name="ShipRegion" Type="Edm.String" MaxLength="15" />
+        <Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" />
+        <Property Name="ShipCountry" Type="Edm.String" MaxLength="15" />
+        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="Address" Type="Edm.String" MaxLength="60" />
+        <Property Name="City" Type="Edm.String" MaxLength="15" />
+        <Property Name="Region" Type="Edm.String" MaxLength="15" />
+        <Property Name="PostalCode" Type="Edm.String" MaxLength="10" />
+        <Property Name="Country" Type="Edm.String" MaxLength="15" />
+      </EntityType>
+      <EntityType Name="Product_Sales_for_1997">
+        <Key>
+          <PropertyRef Name="CategoryName" />
+          <PropertyRef Name="ProductName" />
+        </Key>
+        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
+        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="ProductSales" Type="Edm.Decimal" Precision="19" Scale="4" />
+      </EntityType>
+      <EntityType Name="Products_Above_Average_Price">
+        <Key>
+          <PropertyRef Name="ProductName" />
+        </Key>
+        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4" />
+      </EntityType>
+      <EntityType Name="Products_by_Category">
+        <Key>
+          <PropertyRef Name="CategoryName" />
+          <PropertyRef Name="Discontinued" />
+          <PropertyRef Name="ProductName" />
+        </Key>
+        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
+        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" />
+        <Property Name="UnitsInStock" Type="Edm.Int16" />
+        <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false" />
+      </EntityType>
+      <EntityType Name="Sales_by_Category">
+        <Key>
+          <PropertyRef Name="CategoryID" />
+          <PropertyRef Name="CategoryName" />
+          <PropertyRef Name="ProductName" />
+        </Key>
+        <Property Name="CategoryID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" />
+        <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="ProductSales" Type="Edm.Decimal" Precision="19" Scale="4" />
+      </EntityType>
+      <EntityType Name="Sales_Totals_by_Amount">
+        <Key>
+          <PropertyRef Name="CompanyName" />
+          <PropertyRef Name="OrderID" />
+        </Key>
+        <Property Name="SaleAmount" Type="Edm.Decimal" Precision="19" Scale="4" />
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" />
+        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
+      </EntityType>
+      <EntityType Name="Summary_of_Sales_by_Quarter">
+        <Key>
+          <PropertyRef Name="OrderID" />
+        </Key>
+        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4" />
+      </EntityType>
+      <EntityType Name="Summary_of_Sales_by_Year">
+        <Key>
+          <PropertyRef Name="OrderID" />
+        </Key>
+        <Property Name="ShippedDate" Type="Edm.DateTimeOffset" />
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false" />
+        <Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4" />
+      </EntityType>
+      <Annotations Target="ODataWebExperimental.Northwind.Model.NorthwindEntities">
+        <Annotation Term="Com.Microsoft.OData.Service.Conventions.V1.UrlConventions" String="KeyAsSegment" />
+      </Annotations>
+    </Schema>
+    <Schema Namespace="ODataWebExperimental.Northwind.Model" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+      <EntityContainer Name="NorthwindEntities" p4:LazyLoadingEnabled="true" xmlns:p4="http://schemas.microsoft.com/ado/2009/02/edm/annotation">
+        <EntitySet Name="Categories" EntityType="NorthwindModel.Category">
+          <NavigationPropertyBinding Path="Products" Target="Products" />
+        </EntitySet>
+        <EntitySet Name="CustomerDemographics" EntityType="NorthwindModel.CustomerDemographic">
+          <NavigationPropertyBinding Path="Customers" Target="Customers" />
+        </EntitySet>
+        <EntitySet Name="Customers" EntityType="NorthwindModel.Customer">
+          <NavigationPropertyBinding Path="CustomerDemographics" Target="CustomerDemographics" />
+          <NavigationPropertyBinding Path="Orders" Target="Orders" />
+        </EntitySet>
+        <EntitySet Name="Employees" EntityType="NorthwindModel.Employee">
+          <NavigationPropertyBinding Path="Employees1" Target="Employees" />
+          <NavigationPropertyBinding Path="Employee1" Target="Employees" />
+          <NavigationPropertyBinding Path="Orders" Target="Orders" />
+          <NavigationPropertyBinding Path="Territories" Target="Territories" />
+        </EntitySet>
+        <EntitySet Name="Order_Details" EntityType="NorthwindModel.Order_Detail">
+          <NavigationPropertyBinding Path="Order" Target="Orders" />
+          <NavigationPropertyBinding Path="Product" Target="Products" />
+        </EntitySet>
+        <EntitySet Name="Orders" EntityType="NorthwindModel.Order">
+          <NavigationPropertyBinding Path="Customer" Target="Customers" />
+          <NavigationPropertyBinding Path="Employee" Target="Employees" />
+          <NavigationPropertyBinding Path="Order_Details" Target="Order_Details" />
+          <NavigationPropertyBinding Path="Shipper" Target="Shippers" />
+        </EntitySet>
+        <EntitySet Name="Products" EntityType="NorthwindModel.Product">
+          <NavigationPropertyBinding Path="Category" Target="Categories" />
+          <NavigationPropertyBinding Path="Order_Details" Target="Order_Details" />
+          <NavigationPropertyBinding Path="Supplier" Target="Suppliers" />
+        </EntitySet>
+        <EntitySet Name="Regions" EntityType="NorthwindModel.Region">
+          <NavigationPropertyBinding Path="Territories" Target="Territories" />
+        </EntitySet>
+        <EntitySet Name="Shippers" EntityType="NorthwindModel.Shipper">
+          <NavigationPropertyBinding Path="Orders" Target="Orders" />
+        </EntitySet>
+        <EntitySet Name="Suppliers" EntityType="NorthwindModel.Supplier">
+          <NavigationPropertyBinding Path="Products" Target="Products" />
+        </EntitySet>
+        <EntitySet Name="Territories" EntityType="NorthwindModel.Territory">
+          <NavigationPropertyBinding Path="Employees" Target="Employees" />
+          <NavigationPropertyBinding Path="Region" Target="Regions" />
+        </EntitySet>
+        <EntitySet Name="Alphabetical_list_of_products" EntityType="NorthwindModel.Alphabetical_list_of_product" />
+        <EntitySet Name="Category_Sales_for_1997" EntityType="NorthwindModel.Category_Sales_for_1997" />
+        <EntitySet Name="Current_Product_Lists" EntityType="NorthwindModel.Current_Product_List" />
+        <EntitySet Name="Customer_and_Suppliers_by_Cities" EntityType="NorthwindModel.Customer_and_Suppliers_by_City" />
+        <EntitySet Name="Invoices" EntityType="NorthwindModel.Invoice" />
+        <EntitySet Name="Order_Details_Extendeds" EntityType="NorthwindModel.Order_Details_Extended" />
+        <EntitySet Name="Order_Subtotals" EntityType="NorthwindModel.Order_Subtotal" />
+        <EntitySet Name="Orders_Qries" EntityType="NorthwindModel.Orders_Qry" />
+        <EntitySet Name="Product_Sales_for_1997" EntityType="NorthwindModel.Product_Sales_for_1997" />
+        <EntitySet Name="Products_Above_Average_Prices" EntityType="NorthwindModel.Products_Above_Average_Price" />
+        <EntitySet Name="Products_by_Categories" EntityType="NorthwindModel.Products_by_Category" />
+        <EntitySet Name="Sales_by_Categories" EntityType="NorthwindModel.Sales_by_Category" />
+        <EntitySet Name="Sales_Totals_by_Amounts" EntityType="NorthwindModel.Sales_Totals_by_Amount" />
+        <EntitySet Name="Summary_of_Sales_by_Quarters" EntityType="NorthwindModel.Summary_of_Sales_by_Quarter" />
+        <EntitySet Name="Summary_of_Sales_by_Years" EntityType="NorthwindModel.Summary_of_Sales_by_Year" />
+      </EntityContainer>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/olingo390.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/olingo390.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/olingo390.json
new file mode 100644
index 0000000..47543aa
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/olingo390.json
@@ -0,0 +1,18 @@
+{
+  "@odata.type": "#Microsoft.Exchange.Services.OData.Model.Message",
+  "ToRecipients@odata.type": "#Collection(Microsoft.Exchange.Services.OData.Model.Recipient)",
+  "ToRecipients": [{
+      "@odata.type": "#Microsoft.Exchange.Services.OData.Model.Recipient",
+      "Name@odata.type": "String",
+      "Name": "challen_olingo_client",
+      "Address@odata.type": "String",
+      "Address": "challenh@microsoft.com"
+    }],
+  "Body": {
+    "@odata.type": "#Microsoft.Exchange.Services.OData.Model.ItemBody",
+    "Content@odata.type": "String",
+    "Content": "this is a simple email body content",
+    "ContentType@odata.type": "#Microsoft.Exchange.Services.OData.Model.BodyType",
+    "ContentType": "text"
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/serviceDocument.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/serviceDocument.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/serviceDocument.json
new file mode 100644
index 0000000..f07594d
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/serviceDocument.json
@@ -0,0 +1,30 @@
+{
+  "@odata.context": "http://host/service/$metadata",
+  "@odata.metadataEtag": "W/\"MjAxMy0wNS0xM1QxNDo1NFo=\"",
+  "value": [
+    {
+      "name": "Orders",
+      "kind": "EntitySet",
+      "url": "Orders"
+    },
+    {
+      "name": "Order Details",
+      "url": "OrderItems"
+    },
+    {
+      "name": "TopProducts",
+      "kind": "FunctionImport",
+      "url": "TopProducts"
+    },
+    {
+      "name": "Contoso",
+      "kind": "Singleton",
+      "url": "Contoso"
+    },
+    {
+      "name": "Human Resources",
+      "kind": "ServiceDocument",
+      "url": "http://host/HR/"
+    }
+  ]
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/serviceDocument.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/serviceDocument.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/serviceDocument.xml
new file mode 100644
index 0000000..4450ef9
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/serviceDocument.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<app:service xmlns:app="http://www.w3.org/2007/app"
+             xmlns:atom="http://www.w3.org/2005/Atom"
+             xmlns:metadata="http://docs.oasis-open.org/odata/ns/metadata"
+             xml:base="http://host/service/"
+             metadata:context="$metadata"
+             metadata:metadata-etag="W/&quot;MjAxMy0wNS0xM1QxNDo1NFo=&quot;">
+  <app:workspace>
+    <atom:title type="text">Data</atom:title>
+    <app:collection href="Orders">
+      <atom:title type="text">Orders</atom:title>
+    </app:collection>
+    <app:collection href="OrderItems">
+      <atom:title type="text">Order Details</atom:title>
+    </app:collection>
+    <metadata:function-import href="TopProducts">
+      <atom:title>TopProducts</atom:title>
+    </metadata:function-import>
+    <metadata:singleton href="Contoso">
+      <atom:title>Contoso Ltd.</atom:title>
+    </metadata:singleton>
+    <metadata:service-document href="http://host/HR/">
+      <atom:title>Human Resources</atom:title>
+    </metadata:service-document>
+  </app:workspace>
+</app:service>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/staticservice-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/staticservice-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/staticservice-metadata.xml
new file mode 100644
index 0000000..4bb360c
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/staticservice-metadata.xml
@@ -0,0 +1,462 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
+  <edmx:DataServices>
+    <Schema Namespace="Microsoft.Test.OData.Services.ODataWCFService" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+      <Term Name="IsBoss" Type="Edm.Boolean"/>
+      <ComplexType Name="Address">
+        <Property Name="Street" Type="Edm.String" Nullable="false"/>
+        <Property Name="City" Type="Edm.String" Nullable="false"/>
+        <Property Name="PostalCode" Type="Edm.String" Nullable="false"/>
+      </ComplexType>
+      <ComplexType Name="HomeAddress" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Address">
+        <Property Name="FamilyName" Type="Edm.String"/>
+      </ComplexType>
+      <ComplexType Name="CompanyAddress" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Address">
+        <Property Name="CompanyName" Type="Edm.String" Nullable="false"/>
+      </ComplexType>
+      <EnumType Name="AccessLevel" IsFlags="true">
+        <Member Name="None" Value="0"/>
+        <Member Name="Read" Value="1"/>
+        <Member Name="Write" Value="2"/>
+        <Member Name="Execute" Value="4"/>
+        <Member Name="ReadWrite" Value="3"/>
+      </EnumType>
+      <EnumType Name="Color">
+        <Member Name="Red" Value="1"/>
+        <Member Name="Green" Value="2"/>
+        <Member Name="Blue" Value="4"/>
+      </EnumType>
+      <EnumType Name="CompanyCategory">
+        <Member Name="IT" Value="0"/>
+        <Member Name="Communication" Value="1"/>
+        <Member Name="Electronics" Value="2"/>
+        <Member Name="Others" Value="4"/>
+      </EnumType>
+      <EntityType Name="Person">
+        <Key>
+          <PropertyRef Name="PersonID"/>
+        </Key>
+        <Property Name="PersonID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="FirstName" Type="Edm.String" Nullable="false"/>
+        <Property Name="LastName" Type="Edm.String" Nullable="false"/>
+        <Property Name="MiddleName" Type="Edm.String"/>
+        <Property Name="HomeAddress" Type="Microsoft.Test.OData.Services.ODataWCFService.Address"/>
+        <Property Name="Home" Type="Edm.GeographyPoint" SRID="4326"/>
+        <Property Name="Numbers" Type="Collection(Edm.String)" Nullable="false"/>
+        <Property Name="Emails" Type="Collection(Edm.String)"/>
+        <NavigationProperty Name="Parent" Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="Customer" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Person">
+        <Property Name="City" Type="Edm.String" Nullable="false"/>
+        <Property Name="Birthday" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <Property Name="TimeBetweenLastTwoOrders" Type="Edm.Duration" Nullable="false"/>
+        <NavigationProperty Name="Orders" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Order)"/>
+        <NavigationProperty Name="Company" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false" Partner="VipCustomer"/>
+      </EntityType>
+      <EntityType Name="Employee" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Person">
+        <Property Name="DateHired" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <Property Name="Office" Type="Edm.GeographyPoint" SRID="4326"/>
+        <NavigationProperty Name="Company" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false" Partner="Employees"/>
+      </EntityType>
+      <EntityType Name="Product">
+        <Key>
+          <PropertyRef Name="ProductID"/>
+        </Key>
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String" Nullable="false"/>
+        <Property Name="QuantityPerUnit" Type="Edm.String" Nullable="false"/>
+        <Property Name="UnitPrice" Type="Edm.Single" Nullable="false"/>
+        <Property Name="QuantityInStock" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false"/>
+        <Property Name="UserAccess" Type="Microsoft.Test.OData.Services.ODataWCFService.AccessLevel"/>
+        <Property Name="SkinColor" Type="Microsoft.Test.OData.Services.ODataWCFService.Color"/>
+        <Property Name="CoverColors" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)" Nullable="false"/>
+        <NavigationProperty Name="Details" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductDetail)">
+          <ReferentialConstraint Property="ProductID" ReferencedProperty="ProductID"/>
+        </NavigationProperty>
+      </EntityType>
+      <EntityType Name="ProductDetail">
+        <Key>
+          <PropertyRef Name="ProductID"/>
+          <PropertyRef Name="ProductDetailID"/>
+        </Key>
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="ProductDetailID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="ProductName" Type="Edm.String" Nullable="false"/>
+        <Property Name="Description" Type="Edm.String" Nullable="false"/>
+        <NavigationProperty Name="RelatedProduct" Type="Microsoft.Test.OData.Services.ODataWCFService.Product"/>
+        <NavigationProperty Name="Reviews" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductReview)">
+          <ReferentialConstraint Property="ProductID" ReferencedProperty="ProductID"/>
+          <ReferentialConstraint Property="ProductDetailID" ReferencedProperty="ProductDetailID"/>
+        </NavigationProperty>
+      </EntityType>
+      <EntityType Name="ProductReview">
+        <Key>
+          <PropertyRef Name="ProductID"/>
+          <PropertyRef Name="ProductDetailID"/>
+          <PropertyRef Name="ReviewTitle"/>
+          <PropertyRef Name="RevisionID"/>
+        </Key>
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="ProductDetailID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="ReviewTitle" Type="Edm.String" Nullable="false"/>
+        <Property Name="RevisionID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Comment" Type="Edm.String" Nullable="false"/>
+        <Property Name="Author" Type="Edm.String" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="Order">
+        <Key>
+          <PropertyRef Name="OrderID"/>
+        </Key>
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="OrderDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <Property Name="ShelfLife" Type="Edm.Duration"/>
+        <Property Name="OrderShelfLifes" Type="Collection(Edm.Duration)"/>
+        <NavigationProperty Name="LoggedInEmployee" Type="Microsoft.Test.OData.Services.ODataWCFService.Employee" Nullable="false"/>
+        <NavigationProperty Name="CustomerForOrder" Type="Microsoft.Test.OData.Services.ODataWCFService.Customer" Nullable="false"/>
+        <NavigationProperty Name="OrderDetails" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.OrderDetail)"/>
+      </EntityType>
+      <EntityType Name="OrderDetail">
+        <Key>
+          <PropertyRef Name="OrderID"/>
+          <PropertyRef Name="ProductID"/>
+        </Key>
+        <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="OrderPlaced" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <Property Name="Quantity" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="UnitPrice" Type="Edm.Single" Nullable="false"/>
+        <NavigationProperty Name="ProductOrdered" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)"/>
+        <NavigationProperty Name="AssociatedOrder" Type="Microsoft.Test.OData.Services.ODataWCFService.Order" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="Department">
+        <Key>
+          <PropertyRef Name="DepartmentID"/>
+        </Key>
+        <Property Name="DepartmentID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String" Nullable="false"/>
+        <Property Name="DepartmentNO" Type="Edm.String"/>
+        <NavigationProperty Name="Company" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false" Partner="Departments"/>
+      </EntityType>
+      <EntityType Name="Company" OpenType="true">
+        <Key>
+          <PropertyRef Name="CompanyID"/>
+        </Key>
+        <Property Name="CompanyID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="CompanyCategory" Type="Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory"/>
+        <Property Name="Revenue" Type="Edm.Int64" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+        <Property Name="Address" Type="Microsoft.Test.OData.Services.ODataWCFService.Address"/>
+        <NavigationProperty Name="Employees" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Employee)" Partner="Company"/>
+        <NavigationProperty Name="VipCustomer" Type="Microsoft.Test.OData.Services.ODataWCFService.Customer" Nullable="false" Partner="Company"/>
+        <NavigationProperty Name="Departments" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Department)" Partner="Company"/>
+        <NavigationProperty Name="CoreDepartment" Type="Microsoft.Test.OData.Services.ODataWCFService.Department" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="PublicCompany" BaseType="Microsoft.Test.OData.Services.ODataWCFService.Company" OpenType="true">
+        <Property Name="StockExchange" Type="Edm.String"/>
+        <NavigationProperty Name="Assets" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Asset)" ContainsTarget="true"/>
+        <NavigationProperty Name="Club" Type="Microsoft.Test.OData.Services.ODataWCFService.Club" Nullable="false" ContainsTarget="true"/>
+        <NavigationProperty Name="LabourUnion" Type="Microsoft.Test.OData.Services.ODataWCFService.LabourUnion" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="Asset">
+        <Key>
+          <PropertyRef Name="AssetID"/>
+        </Key>
+        <Property Name="AssetID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+        <Property Name="Number" Type="Edm.Int32" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="Club">
+        <Key>
+          <PropertyRef Name="ClubID"/>
+        </Key>
+        <Property Name="ClubID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+      </EntityType>
+      <EntityType Name="LabourUnion">
+        <Key>
+          <PropertyRef Name="LabourUnionID"/>
+        </Key>
+        <Property Name="LabourUnionID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Name" Type="Edm.String"/>
+      </EntityType>
+      <Action Name="AddAccessRight" IsBound="true">
+        <Parameter Name="product" Type="Microsoft.Test.OData.Services.ODataWCFService.Product" Nullable="false"/>
+        <Parameter Name="accessRight" Type="Microsoft.Test.OData.Services.ODataWCFService.AccessLevel"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.AccessLevel"/>
+      </Action>
+      <Action Name="IncreaseRevenue" IsBound="true">
+        <Parameter Name="p" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false"/>
+        <Parameter Name="IncreaseValue" Type="Edm.Int64"/>
+        <ReturnType Type="Edm.Int64" Nullable="false"/>
+      </Action>
+      <Action Name="ResetAddress" IsBound="true" EntitySetPath="person">
+        <Parameter Name="person" Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
+        <Parameter Name="addresses" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)" Nullable="false"/>
+        <Parameter Name="index" Type="Edm.Int32" Nullable="false"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
+      </Action>
+      <Action Name="Discount" IsBound="true" EntitySetPath="products">
+        <Parameter Name="products" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)" Nullable="false"/>
+        <Parameter Name="percentage" Type="Edm.Int32" Nullable="false"/>
+        <ReturnType Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)" Nullable="false"/>
+      </Action>
+      <Action Name="Discount">
+        <Parameter Name="percentage" Type="Edm.Int32" Nullable="false"/>
+      </Action>
+      <Action Name="ResetBossEmail">
+        <Parameter Name="emails" Type="Collection(Edm.String)" Nullable="false"/>
+        <ReturnType Type="Collection(Edm.String)" Nullable="false"/>
+      </Action>
+      <Action Name="ResetBossAddress">
+        <Parameter Name="address" Type="Microsoft.Test.OData.Services.ODataWCFService.Address" Nullable="false"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Address" Nullable="false"/>
+      </Action>
+      <Action Name="ResetDataSource"/>
+      <Function Name="GetEmployeesCount" IsBound="true">
+        <Parameter Name="p" Type="Microsoft.Test.OData.Services.ODataWCFService.Company" Nullable="false"/>
+        <ReturnType Type="Edm.Int32" Nullable="false"/>
+      </Function>
+      <Function Name="GetProductDetails" IsBound="true" EntitySetPath="product/Details" IsComposable="true">
+        <Parameter Name="product" Type="Microsoft.Test.OData.Services.ODataWCFService.Product" Nullable="false"/>
+        <Parameter Name="count" Type="Edm.Int32"/>
+        <ReturnType Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductDetail)" Nullable="false"/>
+      </Function>
+      <Function Name="GetRelatedProduct" IsBound="true" EntitySetPath="productDetail/RelatedProduct" IsComposable="true">
+        <Parameter Name="productDetail" Type="Microsoft.Test.OData.Services.ODataWCFService.ProductDetail" Nullable="false"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Product" Nullable="false"/>
+      </Function>
+      <Function Name="GetDefaultColor" IsComposable="true">
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Color"/>
+      </Function>
+      <Function Name="GetPerson" IsComposable="true">
+        <Parameter Name="address" Type="Microsoft.Test.OData.Services.ODataWCFService.Address" Nullable="false"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
+      </Function>
+      <Function Name="GetPerson2" IsComposable="true">
+        <Parameter Name="city" Type="Edm.String" Nullable="false"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
+      </Function>
+      <Function Name="GetAllProducts" IsComposable="true">
+        <ReturnType Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)" Nullable="false"/>
+      </Function>
+      <Function Name="GetBossEmails">
+        <Parameter Name="start" Type="Edm.Int32" Nullable="false"/>
+        <Parameter Name="count" Type="Edm.Int32" Nullable="false"/>
+        <ReturnType Type="Collection(Edm.String)" Nullable="false"/>
+      </Function>
+      <Function Name="GetProductsByAccessLevel">
+        <Parameter Name="accessLevel" Type="Microsoft.Test.OData.Services.ODataWCFService.AccessLevel" Nullable="false"/>
+        <ReturnType Type="Collection(Edm.String)" Nullable="false"/>
+      </Function>
+      <Function Name="GetActualAmount" IsBound="true">
+        <Parameter Name="giftcard" Type="Microsoft.Test.OData.Services.ODataWCFService.GiftCard" Nullable="false"/>
+        <Parameter Name="bonusRate" Type="Edm.Double"/>
+        <ReturnType Type="Edm.Double" Nullable="false"/>
+      </Function>
+      <Function Name="GetDefaultPI" IsBound="true" EntitySetPath="account/MyPaymentInstruments">
+        <Parameter Name="account" Type="Microsoft.Test.OData.Services.ODataWCFService.Account" Nullable="false"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"/>
+      </Function>
+      <Action Name="RefreshDefaultPI" IsBound="true" EntitySetPath="account/MyPaymentInstruments">
+        <Parameter Name="account" Type="Microsoft.Test.OData.Services.ODataWCFService.Account" Nullable="false"/>
+        <Parameter Name="newDate" Type="Edm.DateTimeOffset"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"/>
+      </Action>
+      <Function Name="GetHomeAddress" IsBound="true" IsComposable="true">
+        <Parameter Name="person" Type="Microsoft.Test.OData.Services.ODataWCFService.Person" Nullable="false"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.HomeAddress" Nullable="false"/>
+      </Function>
+      <Function Name="GetAccountInfo" IsBound="true" IsComposable="true">
+        <Parameter Name="account" Type="Microsoft.Test.OData.Services.ODataWCFService.Account" Nullable="false"/>
+        <ReturnType Type="Microsoft.Test.OData.Services.ODataWCFService.AccountInfo" Nullable="false"/>
+      </Function>
+      <ComplexType Name="AccountInfo" OpenType="true">
+        <Property Name="FirstName" Type="Edm.String" Nullable="false"/>
+        <Property Name="LastName" Type="Edm.String" Nullable="false"/>
+      </ComplexType>
+      <EntityType Name="Account">
+        <Key>
+          <PropertyRef Name="AccountID"/>
+        </Key>
+        <Property Name="AccountID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="Country" Type="Edm.String" Nullable="false"/>
+        <Property Name="AccountInfo" Type="Microsoft.Test.OData.Services.ODataWCFService.AccountInfo"/>
+        <NavigationProperty Name="MyGiftCard" Type="Microsoft.Test.OData.Services.ODataWCFService.GiftCard" ContainsTarget="true"/>
+        <NavigationProperty Name="MyPaymentInstruments" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument)" ContainsTarget="true"/>
+        <NavigationProperty Name="ActiveSubscriptions" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Subscription)" ContainsTarget="true"/>
+        <NavigationProperty Name="AvailableSubscriptionTemplatess" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Subscription)"/>
+      </EntityType>
+      <EntityType Name="GiftCard">
+        <Key>
+          <PropertyRef Name="GiftCardID"/>
+        </Key>
+        <Property Name="GiftCardID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="GiftCardNO" Type="Edm.String" Nullable="false"/>
+        <Property Name="Amount" Type="Edm.Double" Nullable="false"/>
+        <Property Name="ExperationDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <Property Name="OwnerName" Type="Edm.String"/>
+      </EntityType>
+      <EntityType Name="PaymentInstrument">
+        <Key>
+          <PropertyRef Name="PaymentInstrumentID"/>
+        </Key>
+        <Property Name="PaymentInstrumentID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="FriendlyName" Type="Edm.String" Nullable="false"/>
+        <Property Name="CreatedDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <NavigationProperty Name="TheStoredPI" Type="Microsoft.Test.OData.Services.ODataWCFService.StoredPI" Nullable="false"/>
+        <NavigationProperty Name="BillingStatements" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.Statement)" ContainsTarget="true"/>
+        <NavigationProperty Name="BackupStoredPI" Type="Microsoft.Test.OData.Services.ODataWCFService.StoredPI" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="CreditCardPI" BaseType="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument">
+        <Property Name="CardNumber" Type="Edm.String" Nullable="false"/>
+        <Property Name="CVV" Type="Edm.String" Nullable="false"/>
+        <Property Name="HolderName" Type="Edm.String" Nullable="false"/>
+        <Property Name="Balance" Type="Edm.Double" Nullable="false"/>
+        <Property Name="ExperationDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+        <NavigationProperty Name="CreditRecords" Type="Collection(Microsoft.Test.OData.Services.ODataWCFService.CreditRecord)" ContainsTarget="true"/>
+      </EntityType>
+      <EntityType Name="StoredPI">
+        <Key>
+          <PropertyRef Name="StoredPIID"/>
+        </Key>
+        <Property Name="StoredPIID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="PIName" Type="Edm.String" Nullable="false"/>
+        <Property Name="PIType" Type="Edm.String" Nullable="false"/>
+        <Property Name="CreatedDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="Statement">
+        <Key>
+          <PropertyRef Name="StatementID"/>
+        </Key>
+        <Property Name="StatementID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="TransactionType" Type="Edm.String" Nullable="false"/>
+        <Property Name="TransactionDescription" Type="Edm.String" Nullable="false"/>
+        <Property Name="Amount" Type="Edm.Double" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="CreditRecord">
+        <Key>
+          <PropertyRef Name="CreditRecordID"/>
+        </Key>
+        <Property Name="CreditRecordID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="IsGood" Type="Edm.Boolean" Nullable="false"/>
+        <Property Name="Reason" Type="Edm.String" Nullable="false"/>
+        <Property Name="CreatedDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+      </EntityType>
+      <EntityType Name="Subscription">
+        <Key>
+          <PropertyRef Name="SubscriptionID"/>
+        </Key>
+        <Property Name="SubscriptionID" Type="Edm.Int32" Nullable="false"/>
+        <Property Name="TemplateGuid" Type="Edm.String" Nullable="false"/>
+        <Property Name="Title" Type="Edm.String" Nullable="false"/>
+        <Property Name="Category" Type="Edm.String" Nullable="false"/>
+        <Property Name="CreatedDate" Type="Edm.DateTimeOffset" Nullable="false"/>
+      </EntityType>
+      <EntityContainer Name="InMemoryEntities">
+        <EntitySet Name="People" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Person">
+          <NavigationPropertyBinding Path="Parent" Target="People"/>
+        </EntitySet>
+        <Singleton Name="Boss" Type="Microsoft.Test.OData.Services.ODataWCFService.Person">
+          <NavigationPropertyBinding Path="Parent" Target="People"/>
+        </Singleton>
+        <EntitySet Name="Customers" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Customer">
+          <NavigationPropertyBinding Path="Orders" Target="Orders"/>
+          <NavigationPropertyBinding Path="Parent" Target="People"/>
+        </EntitySet>
+        <Singleton Name="VipCustomer" Type="Microsoft.Test.OData.Services.ODataWCFService.Customer">
+          <NavigationPropertyBinding Path="Orders" Target="Orders"/>
+          <NavigationPropertyBinding Path="Parent" Target="People"/>
+          <NavigationPropertyBinding Path="Company" Target="Company"/>
+        </Singleton>
+        <EntitySet Name="Employees" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Employee">
+          <NavigationPropertyBinding Path="Parent" Target="People"/>
+          <NavigationPropertyBinding Path="Company" Target="Company"/>
+        </EntitySet>
+        <EntitySet Name="Products" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Product">
+          <NavigationPropertyBinding Path="Details" Target="ProductDetails"/>
+        </EntitySet>
+        <EntitySet Name="ProductDetails" EntityType="Microsoft.Test.OData.Services.ODataWCFService.ProductDetail">
+          <NavigationPropertyBinding Path="RelatedProduct" Target="Products"/>
+          <NavigationPropertyBinding Path="Reviews" Target="ProductReviews"/>
+        </EntitySet>
+        <EntitySet Name="ProductReviews" EntityType="Microsoft.Test.OData.Services.ODataWCFService.ProductReview"/>
+        <EntitySet Name="Orders" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Order">
+          <NavigationPropertyBinding Path="LoggedInEmployee" Target="Employees"/>
+          <NavigationPropertyBinding Path="CustomerForOrder" Target="Customers"/>
+          <NavigationPropertyBinding Path="OrderDetails" Target="OrderDetails"/>
+          <Annotation Term="Core.ChangeTracking">
+            <Record>
+              <PropertyValue Property="Supported" Bool="true"/>
+              <PropertyValue Property="FilterableProperties">
+                <Collection>
+                  <PropertyPath>OrderID</PropertyPath>
+                </Collection>
+              </PropertyValue>
+              <PropertyValue Property="ExpandableProperties">
+                <Collection>
+                  <PropertyPath>OrderDetails</PropertyPath>
+                </Collection>
+              </PropertyValue>
+            </Record>
+          </Annotation>
+        </EntitySet>
+        <EntitySet Name="OrderDetails" EntityType="Microsoft.Test.OData.Services.ODataWCFService.OrderDetail">
+          <NavigationPropertyBinding Path="AssociatedOrder" Target="Orders"/>
+          <NavigationPropertyBinding Path="ProductOrdered" Target="Products"/>
+        </EntitySet>
+        <EntitySet Name="Departments" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Department">
+          <NavigationPropertyBinding Path="Company" Target="Company"/>
+        </EntitySet>
+        <Singleton Name="Company" Type="Microsoft.Test.OData.Services.ODataWCFService.Company">
+          <NavigationPropertyBinding Path="Employees" Target="Employees"/>
+          <NavigationPropertyBinding Path="VipCustomer" Target="VipCustomer"/>
+          <NavigationPropertyBinding Path="Departments" Target="Departments"/>
+          <NavigationPropertyBinding Path="CoreDepartment" Target="Departments"/>
+        </Singleton>
+        <Singleton Name="PublicCompany" Type="Microsoft.Test.OData.Services.ODataWCFService.Company">
+          <NavigationPropertyBinding Path="Microsoft.Test.OData.Services.ODataWCFService.PublicCompany/LabourUnion" Target="LabourUnion"/>
+        </Singleton>
+        <Singleton Name="LabourUnion" Type="Microsoft.Test.OData.Services.ODataWCFService.LabourUnion"/>
+        <ActionImport Name="Discount" Action="Microsoft.Test.OData.Services.ODataWCFService.Discount"/>
+        <ActionImport Name="ResetBossEmail" Action="Microsoft.Test.OData.Services.ODataWCFService.ResetBossEmail"/>
+        <ActionImport Name="ResetBossAddress" Action="Microsoft.Test.OData.Services.ODataWCFService.ResetBossAddress"/>
+        <ActionImport Name="ResetDataSource" Action="Microsoft.Test.OData.Services.ODataWCFService.ResetDataSource"/>
+        <FunctionImport Name="GetDefaultColor" Function="Microsoft.Test.OData.Services.ODataWCFService.GetDefaultColor" IncludeInServiceDocument="true"/>
+        <FunctionImport Name="GetPerson" Function="Microsoft.Test.OData.Services.ODataWCFService.GetPerson" EntitySet="People" IncludeInServiceDocument="true"/>
+        <FunctionImport Name="GetPerson2" Function="Microsoft.Test.OData.Services.ODataWCFService.GetPerson2" EntitySet="People" IncludeInServiceDocument="true"/>
+        <FunctionImport Name="GetAllProducts" Function="Microsoft.Test.OData.Services.ODataWCFService.GetAllProducts" EntitySet="Products" IncludeInServiceDocument="true"/>
+        <FunctionImport Name="GetBossEmails" Function="Microsoft.Test.OData.Services.ODataWCFService.GetBossEmails" IncludeInServiceDocument="true"/>
+        <FunctionImport Name="GetProductsByAccessLevel" Function="Microsoft.Test.OData.Services.ODataWCFService.GetProductsByAccessLevel" IncludeInServiceDocument="true"/>
+        <EntitySet Name="Accounts" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Account">
+          <NavigationPropertyBinding Path="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument/TheStoredPI" Target="StoredPIs"/>
+          <NavigationPropertyBinding Path="AvailableSubscriptionTemplatess" Target="SubscriptionTemplates"/>
+          <NavigationPropertyBinding Path="Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument/BackupStoredPI" Target="DefaultStoredPI"/>
+        </EntitySet>
+        <EntitySet Name="StoredPIs" EntityType="Microsoft.Test.OData.Services.ODataWCFService.StoredPI"/>
+        <EntitySet Name="SubscriptionTemplates" EntityType="Microsoft.Test.OData.Services.ODataWCFService.Subscription"/>
+        <Singleton Name="DefaultStoredPI" Type="Microsoft.Test.OData.Services.ODataWCFService.StoredPI"/>
+      </EntityContainer>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file


[7/8] olingo-odata4 git commit: [OLINGO-431] Delete unnecessary v4 in package name

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIBuilderTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIBuilderTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIBuilderTest.java
new file mode 100644
index 0000000..6f8a363
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIBuilderTest.java
@@ -0,0 +1,244 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.uri;
+
+import static org.junit.Assert.assertEquals;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.uri.QueryOption;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.client.core.AbstractTest;
+import org.apache.olingo.client.core.uri.ParameterAlias;
+import org.junit.Test;
+
+public class URIBuilderTest extends AbstractTest {
+
+  private static final String SERVICE_ROOT = "http://host/service";
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  @Test
+  public void metadata() throws URISyntaxException {
+    final URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendMetadataSegment().build();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/$metadata").build(), uri);
+  }
+
+  @Test
+  public void entity() throws URISyntaxException {
+    final URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("AnEntitySet").
+        appendKeySegment(11).build();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/AnEntitySet(11)").build(), uri);
+
+    final Map<String, Object> multiKey = new LinkedHashMap<String, Object>();
+    multiKey.put("OrderId", -10);
+    multiKey.put("ProductId", -10);
+    URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendEntitySetSegment("OrderLine").appendKeySegment(multiKey).
+        appendPropertySegment("Quantity").appendValueSegment();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(
+        SERVICE_ROOT + "/OrderLine(OrderId=-10,ProductId=-10)/Quantity/$value").build(), uriBuilder.build());
+
+    uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendEntitySetSegment("Customer").appendKeySegment(-10).
+        select("CustomerId", "Name", "Orders").expand("Orders");
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Customer(-10)").
+        addParameter("$select", "CustomerId,Name,Orders").addParameter("$expand", "Orders").build(),
+        uriBuilder.build());
+
+    uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendEntitySetSegment("Customer").appendKeySegment(-10).appendNavigationSegment("Orders").appendRefSegment();
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Customer(-10)/Orders/$ref").build(),
+        uriBuilder.build());
+  }
+
+  @Test
+  public void expandWithOptions() throws URISyntaxException {
+    final URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").appendKeySegment(5).
+        expandWithOptions("ProductDetails", new LinkedHashMap<QueryOption, Object>() {
+          private static final long serialVersionUID = 3109256773218160485L;
+
+          {
+            put(QueryOption.EXPAND, "ProductInfo");
+            put(QueryOption.SELECT, "Price");
+          }
+        }).expand("Orders", "Customers").build();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products(5)").
+        addParameter("$expand", "ProductDetails($expand=ProductInfo;$select=Price),Orders,Customers").build(), uri);
+  }
+
+  public void expandWithLevels() throws URISyntaxException {
+    final URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").appendKeySegment(1).
+        expandWithOptions("Customer", Collections.<QueryOption, Object> singletonMap(QueryOption.LEVELS, 4)).
+        build();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products(1)").
+        addParameter("$expand", "Customer($levels=4)").build(), uri);
+  }
+
+  @Test
+  public void count() throws URISyntaxException {
+    URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").count().build();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products/$count").build(), uri);
+
+    uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").count(true).build();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products").
+        addParameter("$count", "true").build(), uri);
+  }
+
+  @Test
+  public void filter() throws URISyntaxException {
+    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("AnEntitySet").
+        filter(getClient().getFilterFactory().lt("VIN", 16));
+
+    assertEquals("http://host/service/AnEntitySet?%24filter=%28VIN%20lt%2016%29", uriBuilder.build().toASCIIString());
+
+//    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/AnEntitySet").
+//        addParameter("$filter", "(VIN lt 16)").build(),
+//        uriBuilder.build());
+  }
+
+  @Test
+  public void filterWithParameter() throws URISyntaxException {
+    // http://host/service.svc/Employees?$filter=Region eq @p1&@p1='WA'
+    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Employees").
+        filter(getClient().getFilterFactory().eq("Region", new ParameterAlias("p1"))).
+        addParameterAlias("p1", "'WA'");
+
+    assertEquals("http://host/service/Employees?%24filter=%28Region%20eq%20%40p1%29&%40p1='WA'", uriBuilder.build()
+        .toASCIIString());
+
+//    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Employees").
+//        addParameter("$filter", "(Region eq @p1)").addParameter("@p1", "'WA'").build(),
+//        uriBuilder.build());
+  }
+
+  @Test
+  public void expandMoreThenOnce() throws URISyntaxException {
+    URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").appendKeySegment(5).
+        expand("Orders", "Customers").expand("Info").build();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products(5)").
+        addParameter("$expand", "Orders,Customers,Info").build(), uri);
+  }
+
+  @Test
+  public void selectMoreThenOnce() throws URISyntaxException {
+    URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Customers").appendKeySegment(5).
+        select("Name", "Surname").expand("Info").select("Gender").build();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Customers(5)").
+        addParameter("$select", "Name,Surname,Gender").addParameter("$expand", "Info").build(), uri);
+  }
+
+  @Test
+  public void singleton() throws URISyntaxException {
+    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendSingletonSegment("BestProductEverCreated");
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(
+        SERVICE_ROOT + "/BestProductEverCreated").build(), uriBuilder.build());
+  }
+
+  @Test
+  public void entityId() throws URISyntaxException {
+    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendEntityIdSegment("Products(0)");
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(
+        SERVICE_ROOT + "/$entity").addParameter("$id", "Products(0)").build(), uriBuilder.build());
+  }
+
+  @Test
+  public void boundAction() throws URISyntaxException {
+    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendEntitySetSegment("Categories").appendKeySegment(1).
+        appendNavigationSegment("Products").appendNavigationSegment("Model").
+        appendActionCallSegment("AllOrders");
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(
+        SERVICE_ROOT + "/Categories(1)/Products/Model.AllOrders").build(), uriBuilder.build());
+  }
+
+  @Test
+  public void ref() throws URISyntaxException {
+    URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendEntitySetSegment("Categories").appendKeySegment(1).
+        appendNavigationSegment("Products").appendRefSegment();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(
+        SERVICE_ROOT + "/Categories(1)/Products/$ref").build(), uriBuilder.build());
+
+    uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendEntitySetSegment("Categories").appendKeySegment(1).
+        appendNavigationSegment("Products").appendRefSegment().id("../../Products(0)");
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(
+        SERVICE_ROOT + "/Categories(1)/Products/$ref").addParameter("$id", "../../Products(0)").build(),
+        uriBuilder.build());
+  }
+
+  @Test
+  public void derived() throws URISyntaxException {
+    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendEntitySetSegment("Customers").appendDerivedEntityTypeSegment("Model.VipCustomer").appendKeySegment(1);
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(
+        SERVICE_ROOT + "/Customers/Model.VipCustomer(1)").build(), uriBuilder.build());
+  }
+
+  @Test
+  public void crossjoin() throws URISyntaxException {
+    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendCrossjoinSegment("Products", "Sales");
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(
+        SERVICE_ROOT + "/$crossjoin(Products,Sales)").build(), uriBuilder.build());
+  }
+
+  @Test
+  public void all() throws URISyntaxException {
+    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).appendAllSegment();
+
+    assertEquals(new org.apache.http.client.utils.URIBuilder(
+        SERVICE_ROOT + "/$all").build(), uriBuilder.build());
+  }
+
+  @Test
+  public void search() throws URISyntaxException {
+    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
+        appendEntitySetSegment("Products").search("blue OR green");
+
+    assertEquals(new URI("http://host/service/Products?%24search=blue%20OR%20green"), uriBuilder.build());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
deleted file mode 100644
index eff892e..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
+++ /dev/null
@@ -1,101 +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.client.core.uri.v4;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.uri.FilterArgFactory;
-import org.apache.olingo.client.api.uri.FilterFactory;
-import org.apache.olingo.client.api.uri.URIFilter;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.edm.EdmEnumType;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
-import org.apache.olingo.commons.core.edm.EdmEnumTypeImpl;
-import org.junit.Test;
-
-public class FilterFactoryTest extends AbstractTest {
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  private FilterFactory getFilterFactory() {
-    return getClient().getFilterFactory();
-  }
-
-  private FilterArgFactory getFilterArgFactory() {
-    return getFilterFactory().getArgFactory();
-  }
-
-  @Test
-  public void has() {
-    final EdmEnumType pattern =
-        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new CsdlEnumType());
-    final URIFilter filter = getFilterFactory().has(getFilterArgFactory().property("style"), pattern, "Yellow");
-
-    assertEquals("(style has Sales.Pattern'Yellow')", filter.build());
-  }
-
-  @Test
-  public void contains() {
-    final URIFilter filter = getFilterFactory().match(getFilterArgFactory().contains(
-        getFilterArgFactory().property("CompanyName"), getFilterArgFactory().literal("Alfreds")));
-
-    assertEquals("contains(CompanyName,'Alfreds')", filter.build());
-  }
-
-  @Test
-  public void maxdatetime() {
-    final URIFilter filter = getFilterFactory().eq(
-        getFilterArgFactory().property("EndTime"),
-        getFilterArgFactory().maxdatetime());
-
-    assertEquals("(EndTime eq maxdatetime())", filter.build());
-  }
-
-  @Test
-  public void any() {
-    final URIFilter filter = getFilterFactory().match(
-        getFilterArgFactory().any(getFilterArgFactory().property("Items"),
-            getFilterFactory().gt("d:d/Quantity", 100)));
-
-    assertEquals("Items/any(d:d/Quantity gt 100)", filter.build());
-  }
-
-  @Test
-  public void issueOLINGO357() throws UnsupportedEncodingException {
-    final Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT-8"));
-    calendar.clear();
-    calendar.set(2011, 2, 8, 14, 21, 12);
-
-    final URIFilter filter = getFilterFactory().ge("OrderDate", calendar);
-    assertEquals("(OrderDate ge " + URLEncoder.encode("2011-03-08T14:21:12-08:00", Constants.UTF8) + ")",
-        filter.build());
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/URIBuilderTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/URIBuilderTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/URIBuilderTest.java
deleted file mode 100644
index f308921..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/URIBuilderTest.java
+++ /dev/null
@@ -1,244 +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.client.core.uri.v4;
-
-import static org.junit.Assert.assertEquals;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.uri.QueryOption;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.client.core.uri.ParameterAlias;
-import org.junit.Test;
-
-public class URIBuilderTest extends AbstractTest {
-
-  private static final String SERVICE_ROOT = "http://host/service";
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  @Test
-  public void metadata() throws URISyntaxException {
-    final URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendMetadataSegment().build();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/$metadata").build(), uri);
-  }
-
-  @Test
-  public void entity() throws URISyntaxException {
-    final URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("AnEntitySet").
-        appendKeySegment(11).build();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/AnEntitySet(11)").build(), uri);
-
-    final Map<String, Object> multiKey = new LinkedHashMap<String, Object>();
-    multiKey.put("OrderId", -10);
-    multiKey.put("ProductId", -10);
-    URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendEntitySetSegment("OrderLine").appendKeySegment(multiKey).
-        appendPropertySegment("Quantity").appendValueSegment();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(
-        SERVICE_ROOT + "/OrderLine(OrderId=-10,ProductId=-10)/Quantity/$value").build(), uriBuilder.build());
-
-    uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendEntitySetSegment("Customer").appendKeySegment(-10).
-        select("CustomerId", "Name", "Orders").expand("Orders");
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Customer(-10)").
-        addParameter("$select", "CustomerId,Name,Orders").addParameter("$expand", "Orders").build(),
-        uriBuilder.build());
-
-    uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendEntitySetSegment("Customer").appendKeySegment(-10).appendNavigationSegment("Orders").appendRefSegment();
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Customer(-10)/Orders/$ref").build(),
-        uriBuilder.build());
-  }
-
-  @Test
-  public void expandWithOptions() throws URISyntaxException {
-    final URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").appendKeySegment(5).
-        expandWithOptions("ProductDetails", new LinkedHashMap<QueryOption, Object>() {
-          private static final long serialVersionUID = 3109256773218160485L;
-
-          {
-            put(QueryOption.EXPAND, "ProductInfo");
-            put(QueryOption.SELECT, "Price");
-          }
-        }).expand("Orders", "Customers").build();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products(5)").
-        addParameter("$expand", "ProductDetails($expand=ProductInfo;$select=Price),Orders,Customers").build(), uri);
-  }
-
-  public void expandWithLevels() throws URISyntaxException {
-    final URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").appendKeySegment(1).
-        expandWithOptions("Customer", Collections.<QueryOption, Object> singletonMap(QueryOption.LEVELS, 4)).
-        build();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products(1)").
-        addParameter("$expand", "Customer($levels=4)").build(), uri);
-  }
-
-  @Test
-  public void count() throws URISyntaxException {
-    URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").count().build();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products/$count").build(), uri);
-
-    uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").count(true).build();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products").
-        addParameter("$count", "true").build(), uri);
-  }
-
-  @Test
-  public void filter() throws URISyntaxException {
-    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("AnEntitySet").
-        filter(getClient().getFilterFactory().lt("VIN", 16));
-
-    assertEquals("http://host/service/AnEntitySet?%24filter=%28VIN%20lt%2016%29", uriBuilder.build().toASCIIString());
-
-//    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/AnEntitySet").
-//        addParameter("$filter", "(VIN lt 16)").build(),
-//        uriBuilder.build());
-  }
-
-  @Test
-  public void filterWithParameter() throws URISyntaxException {
-    // http://host/service.svc/Employees?$filter=Region eq @p1&@p1='WA'
-    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Employees").
-        filter(getClient().getFilterFactory().eq("Region", new ParameterAlias("p1"))).
-        addParameterAlias("p1", "'WA'");
-
-    assertEquals("http://host/service/Employees?%24filter=%28Region%20eq%20%40p1%29&%40p1='WA'", uriBuilder.build()
-        .toASCIIString());
-
-//    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Employees").
-//        addParameter("$filter", "(Region eq @p1)").addParameter("@p1", "'WA'").build(),
-//        uriBuilder.build());
-  }
-
-  @Test
-  public void expandMoreThenOnce() throws URISyntaxException {
-    URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Products").appendKeySegment(5).
-        expand("Orders", "Customers").expand("Info").build();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Products(5)").
-        addParameter("$expand", "Orders,Customers,Info").build(), uri);
-  }
-
-  @Test
-  public void selectMoreThenOnce() throws URISyntaxException {
-    URI uri = getClient().newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Customers").appendKeySegment(5).
-        select("Name", "Surname").expand("Info").select("Gender").build();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(SERVICE_ROOT + "/Customers(5)").
-        addParameter("$select", "Name,Surname,Gender").addParameter("$expand", "Info").build(), uri);
-  }
-
-  @Test
-  public void singleton() throws URISyntaxException {
-    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendSingletonSegment("BestProductEverCreated");
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(
-        SERVICE_ROOT + "/BestProductEverCreated").build(), uriBuilder.build());
-  }
-
-  @Test
-  public void entityId() throws URISyntaxException {
-    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendEntityIdSegment("Products(0)");
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(
-        SERVICE_ROOT + "/$entity").addParameter("$id", "Products(0)").build(), uriBuilder.build());
-  }
-
-  @Test
-  public void boundAction() throws URISyntaxException {
-    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendEntitySetSegment("Categories").appendKeySegment(1).
-        appendNavigationSegment("Products").appendNavigationSegment("Model").
-        appendActionCallSegment("AllOrders");
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(
-        SERVICE_ROOT + "/Categories(1)/Products/Model.AllOrders").build(), uriBuilder.build());
-  }
-
-  @Test
-  public void ref() throws URISyntaxException {
-    URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendEntitySetSegment("Categories").appendKeySegment(1).
-        appendNavigationSegment("Products").appendRefSegment();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(
-        SERVICE_ROOT + "/Categories(1)/Products/$ref").build(), uriBuilder.build());
-
-    uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendEntitySetSegment("Categories").appendKeySegment(1).
-        appendNavigationSegment("Products").appendRefSegment().id("../../Products(0)");
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(
-        SERVICE_ROOT + "/Categories(1)/Products/$ref").addParameter("$id", "../../Products(0)").build(),
-        uriBuilder.build());
-  }
-
-  @Test
-  public void derived() throws URISyntaxException {
-    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendEntitySetSegment("Customers").appendDerivedEntityTypeSegment("Model.VipCustomer").appendKeySegment(1);
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(
-        SERVICE_ROOT + "/Customers/Model.VipCustomer(1)").build(), uriBuilder.build());
-  }
-
-  @Test
-  public void crossjoin() throws URISyntaxException {
-    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendCrossjoinSegment("Products", "Sales");
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(
-        SERVICE_ROOT + "/$crossjoin(Products,Sales)").build(), uriBuilder.build());
-  }
-
-  @Test
-  public void all() throws URISyntaxException {
-    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).appendAllSegment();
-
-    assertEquals(new org.apache.http.client.utils.URIBuilder(
-        SERVICE_ROOT + "/$all").build(), uriBuilder.build());
-  }
-
-  @Test
-  public void search() throws URISyntaxException {
-    final URIBuilder uriBuilder = getClient().newURIBuilder(SERVICE_ROOT).
-        appendEntitySetSegment("Products").search("blue OR green");
-
-    assertEquals(new URI("http://host/service/Products?%24search=blue%20OR%20green"), uriBuilder.build());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/AtomTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/AtomTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/AtomTest.java
deleted file mode 100644
index 4618d3b..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/AtomTest.java
+++ /dev/null
@@ -1,82 +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.client.core.v4;
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayInputStream;
-import java.io.StringWriter;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.core.AtomLinksQualifier;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.custommonkey.xmlunit.Diff;
-
-public class AtomTest extends JSONTest {
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  @Override
-  protected ContentType getODataPubFormat() {
-    return ContentType.APPLICATION_ATOM_XML;
-  }
-
-  @Override
-  protected ContentType getODataFormat() {
-    return ContentType.APPLICATION_XML;
-  }
-
-  private String cleanup(final String input) throws Exception {
-    final TransformerFactory factory = TransformerFactory.newInstance();
-    final Source xslt = new StreamSource(getClass().getResourceAsStream("atom_cleanup.xsl"));
-    final Transformer transformer = factory.newTransformer(xslt);
-
-    final StringWriter result = new StringWriter();
-    transformer.transform(new StreamSource(new ByteArrayInputStream(input.getBytes())), new StreamResult(result));
-    return result.toString();
-  }
-
-  @Override
-  protected void assertSimilar(final String filename, final String actual) throws Exception {
-    final Diff diff = new Diff(cleanup(IOUtils.toString(getClass().getResourceAsStream(filename))), actual);
-    diff.overrideElementQualifier(new AtomLinksQualifier());
-    assertTrue(diff.similar());
-  }
-
-  @Override
-  public void additionalEntities() throws Exception {
-    // no test
-  }
-
-  @Override
-  public void issueOLINGO390() throws Exception {
-    // no test
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
deleted file mode 100644
index 50af30f..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
+++ /dev/null
@@ -1,97 +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.client.core.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.data.EntityCollection;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.client.api.serialization.ODataDeserializerException;
-import org.junit.Test;
-
-public class EntitySetTest extends AbstractTest {
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  private void read(final ContentType contentType) throws IOException, ODataDeserializerException {
-    final InputStream input = getClass().getResourceAsStream("Customers." + getSuffix(contentType));
-    final ClientEntitySet entitySet = getClient().getBinder().getODataEntitySet(
-        getClient().getDeserializer(contentType).toEntitySet(input));
-    assertNotNull(entitySet);
-
-    assertEquals(2, entitySet.getEntities().size());
-    assertNull(entitySet.getNext());
-
-    final ClientEntitySet written =
-        getClient().getBinder().getODataEntitySet(new ResWrap<EntityCollection>((URI) null, null,
-            getClient().getBinder().getEntitySet(entitySet)));
-    assertEquals(entitySet, written);
-  }
-
-  @Test
-  public void fromAtom() throws Exception {
-    read(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void fromJSON() throws Exception {
-    read(ContentType.JSON);
-  }
-
-  private void ref(final ContentType contentType) throws ODataDeserializerException {
-    final InputStream input = getClass().getResourceAsStream("collectionOfEntityReferences." + getSuffix(contentType));
-    final ClientEntitySet entitySet = getClient().getBinder().getODataEntitySet(
-        getClient().getDeserializer(contentType).toEntitySet(input));
-    assertNotNull(entitySet);
-
-    for (ClientEntity entity : entitySet.getEntities()) {
-      assertNotNull(entity.getId());
-    }
-    entitySet.setCount(entitySet.getEntities().size());
-
-    final ClientEntitySet written =
-        getClient().getBinder().getODataEntitySet(new ResWrap<EntityCollection>((URI) null, null,
-            getClient().getBinder().getEntitySet(entitySet)));
-    assertEquals(entitySet, written);
-  }
-
-  @Test
-  public void atomRef() throws Exception {
-    ref(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonRef() throws Exception {
-    ref(ContentType.JSON);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
deleted file mode 100644
index 6b69135..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
+++ /dev/null
@@ -1,391 +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.client.core.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.Iterator;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.domain.ClientAnnotation;
-import org.apache.olingo.client.api.domain.ClientComplexValue;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.client.api.domain.ClientLinkType;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.domain.ClientValuable;
-import org.apache.olingo.client.api.domain.ClientValue;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.client.core.EdmEnabledODataClientImpl;
-import org.apache.olingo.commons.api.data.Entity;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmDateTimeOffset;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmDuration;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class EntityTest extends AbstractTest {
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  private EdmEnabledODataClient getEdmEnabledClient() {
-    return new EdmEnabledODataClientImpl(null, null, null) {
-
-      private Edm edm;
-
-      @Override
-      public Edm getEdm(final String metadataETag) {
-        return getCachedEdm();
-      }
-
-      @Override
-      public Edm getCachedEdm() {
-        if (edm == null) {
-          edm = getReader().readMetadata(getClass().getResourceAsStream("staticservice-metadata.xml"));
-        }
-        return edm;
-      }
-
-    };
-  }
-
-  private void singleton(final ContentType contentType) throws Exception {
-    final InputStream input = getClass().getResourceAsStream("VipCustomer." + getSuffix(contentType));
-    final ClientEntity entity = getClient().getBinder().getODataEntity(
-        getClient().getDeserializer(contentType).toEntity(input));
-    assertNotNull(entity);
-
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
-
-    final ClientProperty birthday = entity.getProperty("Birthday");
-    assertTrue(birthday.hasPrimitiveValue());
-    assertEquals(EdmDateTimeOffset.getInstance(), birthday.getPrimitiveValue().getType());
-
-    final ClientProperty timeBetweenLastTwoOrders = entity.getProperty("TimeBetweenLastTwoOrders");
-    assertTrue(timeBetweenLastTwoOrders.hasPrimitiveValue());
-    assertEquals(EdmDuration.getInstance(), timeBetweenLastTwoOrders.getPrimitiveValue().getType());
-
-    int checked = 0;
-    for (ClientLink link : entity.getNavigationLinks()) {
-      if ("Parent".equals(link.getName())) {
-        checked++;
-        assertEquals(ClientLinkType.ENTITY_NAVIGATION, link.getType());
-      }
-      if ("Orders".equals(link.getName())) {
-        checked++;
-        if (contentType.isCompatible(ContentType.APPLICATION_ATOM_SVC)
-            || contentType.isCompatible(ContentType.APPLICATION_ATOM_XML)) {
-          assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, link.getType());
-        }
-      }
-      if ("Company".equals(link.getName())) {
-        checked++;
-        assertEquals(ClientLinkType.ENTITY_NAVIGATION, link.getType());
-      }
-    }
-    assertEquals(3, checked);
-
-    assertEquals(2, entity.getOperations().size());
-    assertEquals("#Microsoft.Test.OData.Services.ODataWCFService.ResetAddress",
-        entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress").getMetadataAnchor());
-    assertEquals("#Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress",
-        entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress").getMetadataAnchor());
-
-    // operations won't get serialized
-    entity.getOperations().clear();
-    final ClientEntity written = getClient().getBinder().getODataEntity(
-        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
-    assertEquals(entity, written);
-    input.close();
-  }
-
-  @Test
-  public void atomSingleton() throws Exception {
-    singleton(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonSingleton() throws Exception {
-    singleton(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void withEnums(final ContentType contentType) throws Exception {
-    final InputStream input = getClass().getResourceAsStream("Products_5." + getSuffix(contentType));
-    final ClientEntity entity = getClient().getBinder().getODataEntity(
-        getClient().getDeserializer(contentType).toEntity(input));
-    assertNotNull(entity);
-
-    final ClientProperty skinColor = entity.getProperty("SkinColor");
-    assertTrue(skinColor.hasEnumValue());
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Color", skinColor.getEnumValue().getTypeName());
-    assertEquals("Red", skinColor.getEnumValue().getValue());
-
-    final ClientProperty coverColors = entity.getProperty("CoverColors");
-    assertTrue(coverColors.hasCollectionValue());
-    for (final Iterator<ClientValue> itor = coverColors.getCollectionValue().iterator(); itor.hasNext();) {
-      final ClientValue item = itor.next();
-      assertTrue(item.isEnum());
-    }
-
-    // operations won't get serialized
-    entity.getOperations().clear();
-    final ClientEntity written = getClient().getBinder().getODataEntity(
-        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
-    assertEquals(entity, written);
-    input.close();
-  }
-
-  @Test
-  public void atomWithEnums() throws Exception {
-    withEnums(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonWithEnums() throws Exception {
-    withEnums(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void withInlineEntitySet(final ContentType contentType) throws Exception {
-    final InputStream input = getClass().getResourceAsStream(
-        "Accounts_101_expand_MyPaymentInstruments." + getSuffix(contentType));
-    final ClientEntity entity = getClient().getBinder().getODataEntity(
-        getClient().getDeserializer(contentType).toEntity(input));
-    assertNotNull(entity);
-
-    final ClientLink instruments = entity.getNavigationLink("MyPaymentInstruments");
-    assertNotNull(instruments);
-    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, instruments.getType());
-
-    final ClientInlineEntitySet inline = instruments.asInlineEntitySet();
-    assertNotNull(inline);
-    assertEquals(3, inline.getEntitySet().getEntities().size());
-
-    // count shouldn't be serialized
-    inline.getEntitySet().setCount(3);
-    // operations won't get serialized
-    entity.getOperations().clear();
-    final ClientEntity written = getClient().getBinder().getODataEntity(
-        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
-    assertEquals(entity, written);
-    input.close();
-  }
-
-  @Test
-  public void atomWithInlineEntitySet() throws Exception {
-    withInlineEntitySet(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonWithInlineEntitySet() throws Exception {
-    withInlineEntitySet(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void mediaEntity(final ContentType contentType) throws Exception {
-    final InputStream input = getClass().getResourceAsStream(
-        "Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7." + getSuffix(contentType));
-    final ClientEntity entity = getClient().getBinder().getODataEntity(
-        getClient().getDeserializer(contentType).toEntity(input));
-    assertNotNull(entity);
-
-    assertTrue(entity.isMediaEntity());
-    assertNotNull(entity.getMediaContentSource());
-    assertEquals("\"8zOOKKvgOtptr4gt8IrnapX3jds=\"", entity.getMediaETag());
-
-    final ClientEntity written = getClient().getBinder().getODataEntity(
-        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
-    assertEquals(entity, written);
-    input.close();
-  }
-
-  @Test
-  public void atomMediaEntity() throws Exception {
-    mediaEntity(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonMediaEntity() throws Exception {
-    mediaEntity(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void withStream(final ContentType contentType) throws Exception {
-    final InputStream input = getClass().getResourceAsStream("PersonDetails_1." + getSuffix(contentType));
-    final ClientEntity entity = getClient().getBinder().getODataEntity(
-        getClient().getDeserializer(contentType).toEntity(input));
-    assertNotNull(entity);
-
-    assertFalse(entity.isMediaEntity());
-
-    final ClientLink editMedia = entity.getMediaEditLink("Photo");
-    assertNotNull(editMedia);
-
-    final ClientEntity written = getClient().getBinder().getODataEntity(
-        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
-    assertEquals(entity, written);
-    input.close();
-  }
-
-  @Test
-  public void atomWithStream() throws Exception {
-    withStream(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonWithStream() throws Exception {
-    withStream(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void ref(final ContentType contentType) throws Exception {
-    final InputStream input = getClass().getResourceAsStream("entityReference." + getSuffix(contentType));
-    final ClientEntity entity = getClient().getBinder().getODataEntity(
-        getClient().getDeserializer(contentType).toEntity(input));
-    assertNotNull(entity);
-
-    assertNotNull(entity.getId());
-
-    final ClientEntity written = getClient().getBinder().getODataEntity(
-        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
-    assertEquals(entity, written);
-    input.close();
-  }
-
-  @Test
-  public void atomRef() throws Exception {
-    ref(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonRef() throws Exception {
-    ref(ContentType.JSON);
-  }
-
-  private void complexNavigationProperties(final ContentType contentType) throws Exception {
-    final InputStream input = getClass().getResourceAsStream("entity.withcomplexnavigation." + getSuffix(contentType));
-    final ClientEntity entity = getClient().getBinder().getODataEntity(
-        getClient().getDeserializer(contentType).toEntity(input));
-    assertNotNull(entity);
-
-    final ClientComplexValue addressValue = entity.getProperty("Address").getComplexValue();
-    assertNotNull(addressValue);
-    assertNotNull(addressValue.getNavigationLink("Country"));
-
-    // ETag is not serialized
-    entity.setETag(null);
-    final ClientEntity written = getClient().getBinder().getODataEntity(
-        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
-    assertEquals(entity, written);
-    input.close();
-  }
-
-  @Test
-  public void atomComplexNavigationProperties() throws Exception {
-    complexNavigationProperties(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonComplexNavigationProperties() throws Exception {
-    complexNavigationProperties(ContentType.JSON);
-  }
-
-  private void annotated(final ContentType contentType) throws EdmPrimitiveTypeException, Exception {
-    final InputStream input = getClass().getResourceAsStream("annotated." + getSuffix(contentType));
-    final ClientEntity entity = getClient().getBinder().getODataEntity(
-        getClient().getDeserializer(contentType).toEntity(input));
-    assertNotNull(entity);
-
-    assertFalse(entity.getAnnotations().isEmpty());
-
-    ClientAnnotation annotation = entity.getAnnotations().get(0);
-    assertEquals("com.contoso.display.highlight", annotation.getTerm());
-    assertEquals(true, annotation.getPrimitiveValue().toCastValue(Boolean.class));
-
-    annotation = entity.getAnnotations().get(1);
-    assertEquals("com.contoso.PersonalInfo.PhoneNumbers", annotation.getTerm());
-    assertTrue(annotation.hasCollectionValue());
-
-    annotation = entity.getProperty("LastName").getAnnotations().get(0);
-    assertEquals("com.contoso.display.style", annotation.getTerm());
-    assertTrue(annotation.hasComplexValue());
-
-    final ClientLink orders = entity.getNavigationLink("Orders");
-    assertFalse(orders.getAnnotations().isEmpty());
-
-    annotation = orders.getAnnotations().get(0);
-    assertEquals("com.contoso.display.style", annotation.getTerm());
-    assertEquals("com.contoso.display.styleType", annotation.getValue().getTypeName());
-    assertTrue(annotation.hasComplexValue());
-    assertEquals(2,
-        annotation.getValue().asComplex().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    final ClientEntity written = getClient().getBinder().getODataEntity(
-        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
-    assertEquals(entity, written);
-    input.close();
-  }
-
-  @Test
-  @Ignore
-  public void atomAnnotated() throws Exception {
-    annotated(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  @Ignore
-  public void jsonAnnotated() throws Exception {
-    annotated(ContentType.JSON);
-  }
-
-  private void derived(final ODataClient client, final ContentType contentType) throws Exception {
-    final InputStream input = getClass().getResourceAsStream("Customer." + getSuffix(contentType));
-    final ClientEntity entity = client.getBinder().getODataEntity(client.getDeserializer(contentType).toEntity(input));
-    assertNotNull(entity);
-
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
-        ((ClientValuable) entity.getProperty("HomeAddress")).getValue().getTypeName());
-    input.close();
-  }
-
-  @Test
-  public void derivedFromAtom() throws Exception {
-    derived(getClient(), ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void derivedFromJSON() throws Exception {
-    derived(getEdmEnabledClient(), ContentType.JSON);
-  }
-
-  @Test
-  public void derivedFromFullJSON() throws Exception {
-    derived(getClient(), ContentType.JSON_FULL_METADATA);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
deleted file mode 100644
index 917676b..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
+++ /dev/null
@@ -1,62 +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.client.core.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.serialization.ODataDeserializerException;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.ex.ODataError;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class ErrorTest extends AbstractTest {
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  private ODataError error(final String name, final ContentType contentType) throws ODataDeserializerException {
-    final ODataError error = getClient().getDeserializer(contentType).toError(
-            getClass().getResourceAsStream(name + "." + getSuffix(contentType)));
-    assertNotNull(error);
-    return error;
-  }
-
-  private void simple(final ContentType contentType) throws ODataDeserializerException {
-    final ODataError error = error("error", contentType);
-    assertEquals("501", error.getCode());
-    assertEquals("Unsupported functionality", error.getMessage());
-    assertEquals("query", error.getTarget());
-  }
-
-  @Test
-  public void jsonSimple() throws Exception {
-    simple(ContentType.JSON);
-  }
-
-  @Test
-  public void atomSimple() throws Exception {
-    simple(ContentType.APPLICATION_ATOM_XML);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
deleted file mode 100644
index 3577455..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
+++ /dev/null
@@ -1,258 +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.client.core.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayInputStream;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.domain.ClientCollectionValue;
-import org.apache.olingo.client.api.domain.ClientComplexValue;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientValue;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.data.Delta;
-import org.apache.olingo.commons.api.data.Property;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class JSONTest extends AbstractTest {
-
-  private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  protected ContentType getODataPubFormat() {
-    return ContentType.JSON;
-  }
-
-  protected ContentType getODataFormat() {
-    return ContentType.JSON;
-  }
-
-  private void cleanup(final ObjectNode node) {
-    if (node.has(Constants.JSON_CONTEXT)) {
-      node.remove(Constants.JSON_CONTEXT);
-    }
-    if (node.has(Constants.JSON_ETAG)) {
-      node.remove(Constants.JSON_ETAG);
-    }
-    if (node.has(Constants.JSON_TYPE)) {
-      node.remove(Constants.JSON_TYPE);
-    }
-    if (node.has(Constants.JSON_EDIT_LINK)) {
-      node.remove(Constants.JSON_EDIT_LINK);
-    }
-    if (node.has(Constants.JSON_READ_LINK)) {
-      node.remove(Constants.JSON_READ_LINK);
-    }
-    if (node.has(Constants.JSON_MEDIA_EDIT_LINK)) {
-      node.remove(Constants.JSON_MEDIA_EDIT_LINK);
-    }
-    if (node.has(Constants.JSON_MEDIA_READ_LINK)) {
-      node.remove(Constants.JSON_MEDIA_READ_LINK);
-    }
-    if (node.has(Constants.JSON_MEDIA_CONTENT_TYPE)) {
-      node.remove(Constants.JSON_MEDIA_CONTENT_TYPE);
-    }
-    if (node.has(Constants.JSON_COUNT)) {
-      node.remove(Constants.JSON_COUNT);
-    }
-    final List<String> toRemove = new ArrayList<String>();
-    for (final Iterator<Map.Entry<String, JsonNode>> itor = node.fields(); itor.hasNext();) {
-      final Map.Entry<String, JsonNode> field = itor.next();
-
-      final String key = field.getKey();
-      if (key.charAt(0) == '#'
-          || key.endsWith(Constants.JSON_TYPE)
-          || key.endsWith(Constants.JSON_MEDIA_EDIT_LINK)
-          || key.endsWith(Constants.JSON_MEDIA_CONTENT_TYPE)
-          || key.endsWith(Constants.JSON_ASSOCIATION_LINK)
-          || key.endsWith(Constants.JSON_MEDIA_ETAG)) {
-
-        toRemove.add(key);
-      } else if (field.getValue().isObject()) {
-        cleanup((ObjectNode) field.getValue());
-      } else if (field.getValue().isArray()) {
-        for (final Iterator<JsonNode> arrayItems = field.getValue().elements(); arrayItems.hasNext();) {
-          final JsonNode arrayItem = arrayItems.next();
-          if (arrayItem.isObject()) {
-            cleanup((ObjectNode) arrayItem);
-          }
-        }
-      }
-    }
-    node.remove(toRemove);
-  }
-
-  protected void assertSimilar(final String filename, final String actual) throws Exception {
-    final JsonNode expected = OBJECT_MAPPER.readTree(IOUtils.toString(getClass().getResourceAsStream(filename)).
-        replace(Constants.JSON_NAVIGATION_LINK, Constants.JSON_BIND_LINK_SUFFIX));
-    cleanup((ObjectNode) expected);
-    final ObjectNode actualNode = (ObjectNode) OBJECT_MAPPER.readTree(new ByteArrayInputStream(actual.getBytes()));
-    cleanup(actualNode);
-    assertEquals(expected, actualNode);
-  }
-
-  protected void entitySet(final String filename, final ContentType contentType) throws Exception {
-    final StringWriter writer = new StringWriter();
-    getClient().getSerializer(contentType).write(writer, getClient().getDeserializer(contentType).toEntitySet(
-        getClass().getResourceAsStream(filename + "." + getSuffix(contentType))).getPayload());
-
-    assertSimilar(filename + "." + getSuffix(contentType), writer.toString());
-  }
-
-  @Test
-  public void entitySets() throws Exception {
-    entitySet("Customers", getODataPubFormat());
-    entitySet("collectionOfEntityReferences", getODataPubFormat());
-  }
-
-  protected void entity(final String filename, final ContentType contentType) throws Exception {
-    final StringWriter writer = new StringWriter();
-    getClient().getSerializer(contentType).write(writer, getClient().getDeserializer(contentType).toEntity(
-        getClass().getResourceAsStream(filename + "." + getSuffix(contentType))).getPayload());
-    System.out.println(writer.toString());
-    assertSimilar(filename + "." + getSuffix(contentType), writer.toString());
-  }
-
-  @Test
-  public void additionalEntities() throws Exception {
-    entity("entity.minimal", getODataPubFormat());
-    entity("entity.primitive", getODataPubFormat());
-    entity("entity.complex", getODataPubFormat());
-    entity("entity.collection.primitive", getODataPubFormat());
-    entity("entity.collection.complex", getODataPubFormat());
-  }
-
-  @Test
-  public void entities() throws Exception {
-    entity("Products_5", getODataPubFormat());
-    entity("VipCustomer", getODataPubFormat());
-    entity("Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7", getODataPubFormat());
-    entity("entityReference", getODataPubFormat());
-    entity("entity.withcomplexnavigation", getODataPubFormat());
-    entity("annotated", getODataPubFormat());
-  }
-
-  protected void property(final String filename, final ContentType contentType) throws Exception {
-    final StringWriter writer = new StringWriter();
-    getClient().getSerializer(contentType).write(writer, getClient().getDeserializer(contentType).
-        toProperty(getClass().getResourceAsStream(filename + "." + getSuffix(contentType))).getPayload());
-
-    assertSimilar(filename + "." + getSuffix(contentType), writer.toString());
-  }
-
-  @Test
-  public void properties() throws Exception {
-    property("Products_5_SkinColor", getODataFormat());
-    property("Products_5_CoverColors", getODataFormat());
-    property("Employees_3_HomeAddress", getODataFormat());
-    property("Employees_3_HomeAddress", getODataFormat());
-  }
-
-  @Test
-  public void crossjoin() throws Exception {
-    assertNotNull(getClient().getDeserializer(ContentType.JSON_FULL_METADATA).toEntitySet(
-        getClass().getResourceAsStream("crossjoin.json")));
-  }
-
-  protected void delta(final String filename, final ContentType contentType) throws Exception {
-    final Delta delta = getClient().getDeserializer(contentType).toDelta(
-        getClass().getResourceAsStream(filename + "." + getSuffix(contentType))).getPayload();
-    assertNotNull(delta);
-    assertNotNull(delta.getDeltaLink());
-    assertEquals(5, delta.getCount(), 0);
-
-    assertEquals(1, delta.getDeletedEntities().size());
-    assertTrue(delta.getDeletedEntities().get(0).getId().toASCIIString().endsWith("Customers('ANTON')"));
-
-    assertEquals(1, delta.getAddedLinks().size());
-    assertTrue(delta.getAddedLinks().get(0).getSource().toASCIIString().endsWith("Customers('BOTTM')"));
-    assertEquals("Orders", delta.getAddedLinks().get(0).getRelationship());
-
-    assertEquals(1, delta.getDeletedLinks().size());
-    assertTrue(delta.getDeletedLinks().get(0).getSource().toASCIIString().endsWith("Customers('ALFKI')"));
-    assertEquals("Orders", delta.getDeletedLinks().get(0).getRelationship());
-
-    assertEquals(2, delta.getEntities().size());
-    Property property = delta.getEntities().get(0).getProperty("ContactName");
-    assertNotNull(property);
-    assertTrue(property.isPrimitive());
-    property = delta.getEntities().get(1).getProperty("ShippingAddress");
-    assertNotNull(property);
-    assertTrue(property.isComplex());
-  }
-
-  @Test
-  public void deltas() throws Exception {
-    delta("delta", getODataPubFormat());
-  }
-
-  @Test
-  public void issueOLINGO390() throws Exception {
-    final ClientEntity message = getClient().getObjectFactory().
-        newEntity(new FullQualifiedName("Microsoft.Exchange.Services.OData.Model.Message"));
-
-    final ClientComplexValue toRecipient = getClient().getObjectFactory().
-        newComplexValue("Microsoft.Exchange.Services.OData.Model.Recipient");
-    toRecipient.add(getClient().getObjectFactory().newPrimitiveProperty("Name",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("challen_olingo_client")));
-    toRecipient.add(getClient().getObjectFactory().newPrimitiveProperty("Address",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("challenh@microsoft.com")));
-    final ClientCollectionValue<ClientValue> toRecipients = getClient().getObjectFactory().
-        newCollectionValue("Microsoft.Exchange.Services.OData.Model.Recipient");
-    toRecipients.add(toRecipient);
-    message.getProperties().add(getClient().getObjectFactory().newCollectionProperty("ToRecipients", toRecipients));
-
-    final ClientComplexValue body =
-        getClient().getObjectFactory().newComplexValue("Microsoft.Exchange.Services.OData.Model.ItemBody");
-    body.add(getClient().getObjectFactory().newPrimitiveProperty("Content",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-            buildString("this is a simple email body content")));
-    body.add(getClient().getObjectFactory().newEnumProperty("ContentType",
-        getClient().getObjectFactory().newEnumValue("Microsoft.Exchange.Services.OData.Model.BodyType", "text")));
-    message.getProperties().add(getClient().getObjectFactory().newComplexProperty("Body", body));
-
-    final String actual = IOUtils.toString(getClient().getWriter().writeEntity(message, ContentType.JSON));
-    final JsonNode expected =
-        OBJECT_MAPPER.readTree(IOUtils.toString(getClass().getResourceAsStream("olingo390.json")).
-            replace(Constants.JSON_NAVIGATION_LINK, Constants.JSON_BIND_LINK_SUFFIX));
-    final ObjectNode actualNode = (ObjectNode) OBJECT_MAPPER.readTree(new ByteArrayInputStream(actual.getBytes()));
-    assertEquals(expected, actualNode);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
deleted file mode 100644
index 1f603ad..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
+++ /dev/null
@@ -1,413 +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.client.core.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmAnnotations;
-import org.apache.olingo.commons.api.edm.EdmAnnotationsTarget;
-import org.apache.olingo.commons.api.edm.EdmComplexType;
-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.EdmEnumType;
-import org.apache.olingo.commons.api.edm.EdmFunction;
-import org.apache.olingo.commons.api.edm.EdmFunctionImport;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.EdmSchema;
-import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.annotation.EdmUrlRef;
-import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
-import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
-import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
-import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
-import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
-import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
-import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
-import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
-import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
-import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Path;
-import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmDecimal;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmInt32;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.junit.Test;
-
-public class MetadataTest extends AbstractTest {
-
-  @Override
-  protected ODataClient getClient() {
-    return v4Client;
-  }
-
-  @Test
-  public void parse() {
-    final Edm edm = getClient().getReader().readMetadata(getClass().getResourceAsStream("metadata.xml"));
-    assertNotNull(edm);
-
-    // 1. Enum
-    final EdmEnumType responseEnumType = edm.getEnumType(
-        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "ResponseType"));
-    assertNotNull(responseEnumType);
-    assertEquals(6, responseEnumType.getMemberNames().size());
-    assertEquals("3", responseEnumType.getMember("Accepted").getValue());
-    assertEquals(EdmTypeKind.ENUM, responseEnumType.getKind());
-
-    // 2. Complex
-    final EdmComplexType responseStatus = edm.getComplexType(
-        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "ResponseStatus"));
-    assertNotNull(responseStatus);
-    assertTrue(responseStatus.getNavigationPropertyNames().isEmpty());
-    assertEquals("Recipient", responseStatus.getBaseType().getName());
-    assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.DateTimeOffset),
-        responseStatus.getProperty("Time").getType());
-
-    // 3. Entity
-    final EdmEntityType user = edm.getEntityType(
-        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "User"));
-    assertNotNull(user);
-    assertFalse(user.getPropertyNames().isEmpty());
-    assertFalse(user.getNavigationPropertyNames().isEmpty());
-
-    final EdmEntityType entity = edm.getEntityType(
-        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Entity"));
-    assertEquals(entity, user.getBaseType());
-    assertFalse(entity.getPropertyNames().isEmpty());
-    assertTrue(entity.getNavigationPropertyNames().isEmpty());
-
-    final EdmEntityType folder = edm.getEntityType(
-        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Folder"));
-    assertEquals(folder, user.getNavigationProperty("Inbox").getType());
-
-    // 4. Action
-    final EdmAction move = edm.getBoundAction(
-        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Move"),
-        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Folder"),
-        false);
-    assertNotNull(move);
-    assertTrue(move.isBound());
-    assertEquals(2, move.getParameterNames().size());
-    assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String),
-        move.getParameter("DestinationId").getType());
-
-    // 5. EntityContainer
-    final EdmEntityContainer container = edm.getEntityContainer(
-        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "EntityContainer"));
-    assertNotNull(container);
-    final EdmEntitySet users = container.getEntitySet("Users");
-    assertNotNull(users);
-    assertEquals(edm.getEntityType(new FullQualifiedName(container.getNamespace(), "User")),
-        users.getEntityType());
-    assertEquals(container.getEntitySet("Folders"), users.getRelatedBindingTarget("Folders"));
-  }
-
-  @Test
-  public void demo() {
-    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
-        toMetadata(getClass().getResourceAsStream("demo-metadata.xml"));
-    assertNotNull(metadata);
-
-    assertFalse(metadata.getSchema(0).getAnnotationGroups().isEmpty());
-    final CsdlAnnotations annots = metadata.getSchema(0).getAnnotationGroup("ODataDemo.DemoService/Suppliers");
-    assertNotNull(annots);
-    assertFalse(annots.getAnnotations().isEmpty());
-    assertEquals(ConstantAnnotationExpression.Type.String,
-        annots.getAnnotation("Org.OData.Publication.V1.PrivacyPolicyUrl").getExpression().asConstant().getType());
-    assertEquals("http://www.odata.org/",
-        annots.getAnnotation("Org.OData.Publication.V1.PrivacyPolicyUrl").getExpression().asConstant().getValue());
-
-    // Now let's test some edm:Annotations
-    final Edm edm = getClient().getReader().
-        readMetadata(getClass().getResourceAsStream("demo-metadata.xml"));
-    assertNotNull(edm);
-
-    final EdmSchema schema = edm.getSchema("ODataDemo");
-    assertNotNull(schema);
-    assertTrue(schema.getAnnotations().isEmpty());
-    assertFalse(schema.getAnnotationGroups().isEmpty());
-
-    final EdmAnnotations annotationGroup = schema.getAnnotationGroups().get(2);
-    assertNotNull(annotationGroup);
-    final EdmAnnotationsTarget annotationsTarget = annotationGroup.getTarget();
-    assertNotNull(annotationsTarget);
-    assertTrue(EdmAnnotationsTarget.TargetType.Property == annotationsTarget.getAnnotationsTargetType());
-    assertEquals(new FullQualifiedName("ODataDemo.Product"), annotationsTarget.getAnnotationsTargetFQN());
-    assertEquals("Name", annotationsTarget.getAnnotationsTargetPath());
-
-    final EdmAnnotation annotation = annotationGroup.getAnnotations().get(0);
-    assertNotNull(annotation);
-    assertTrue(annotation.getExpression().isConstant());
-    assertEquals("Edm.String", annotation.getExpression().asConstant().getValue().getType());
-
-    assertEquals(10, schema.getAnnotationGroups().get(3).getAnnotations().size());
-  }
-
-  @Test
-  public void multipleSchemas() {
-    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
-        toMetadata(getClass().getResourceAsStream("northwind-metadata.xml"));
-    assertNotNull(metadata);
-
-    final CsdlSchema first = metadata.getSchema("NorthwindModel");
-    assertNotNull(first);
-
-    final CsdlSchema second = metadata.getSchema("ODataWebExperimental.Northwind.Model");
-    assertNotNull(second);
-
-    final CsdlEntityContainer entityContainer = second.getEntityContainer();
-    assertNotNull(entityContainer);
-    assertEquals("NorthwindEntities", entityContainer.getName());
-  }
-
-  /**
-   * Tests Example 85 from CSDL specification.
-   */
-  @Test
-  public void fromdoc1() {
-    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
-        toMetadata(getClass().getResourceAsStream("fromdoc1-metadata.xml"));
-    assertNotNull(metadata);
-
-    assertFalse(metadata.getReferences().isEmpty());
-    assertEquals("Org.OData.Measures.V1", metadata.getReferences().get(1).getIncludes().get(0).getNamespace());
-
-    final CsdlEntityType product = metadata.getSchema(0).getEntityType("Product");
-    assertTrue(product.hasStream());
-    assertEquals("UoM.ISOCurrency", product.getProperty("Price").getAnnotations().get(0).getTerm());
-    assertEquals("Products", product.getNavigationProperty("Supplier").getPartner());
-
-    final CsdlEntityType category = metadata.getSchema(0).getEntityType("Category");
-    assertNotNull(category);
-
-    final CsdlComplexType address = metadata.getSchema(0).getComplexType("Address");
-    assertFalse(address.getNavigationProperty("Country").getReferentialConstraints().isEmpty());
-    assertEquals("Name",
-        address.getNavigationProperty("Country").getReferentialConstraints().get(0).getReferencedProperty());
-
-    final CsdlFunction productsByRating = metadata.getSchema(0).getFunctions("ProductsByRating").get(0);
-    assertNotNull(productsByRating.getParameter("Rating"));
-    assertEquals("Edm.Int32", productsByRating.getParameter("Rating").getType());
-    assertEquals("ODataDemo.Product", productsByRating.getReturnType().getType());
-    assertTrue(productsByRating.getReturnType().isCollection());
-
-    final CsdlSingleton contoso = metadata.getSchema(0).getEntityContainer().getSingleton("Contoso");
-    assertNotNull(contoso);
-    assertFalse(contoso.getNavigationPropertyBindings().isEmpty());
-    assertEquals("Products", contoso.getNavigationPropertyBindings().get(0).getPath());
-
-    final CsdlFunctionImport functionImport = metadata.getSchema(0).getEntityContainer().
-        getFunctionImport("ProductsByRating");
-    assertNotNull(functionImport);
-    assertEquals(metadata.getSchema(0).getNamespace() + "." + productsByRating.getName(),
-        functionImport.getFunction());
-
-    // Now let's go high-level
-    final Edm edm = getClient().getReader().readMetadata(getClass().getResourceAsStream("fromdoc1-metadata.xml"));
-    assertNotNull(edm);
-
-    List<EdmSchema> schemaList = edm.getSchemas();
-    assertNotNull(schemaList);
-    assertEquals(1, schemaList.size());
-    EdmSchema schema = schemaList.get(0);
-
-    EdmEntityContainer demoService = schema.getEntityContainer();
-    assertNotNull(demoService);
-    for (EdmFunction function : schema.getFunctions()) {
-      final EdmFunctionImport fi = demoService.getFunctionImport(function.getName());
-      assertNotNull(fi);
-      assertEquals(demoService.getEntitySet("Products"), fi.getReturnedEntitySet());
-
-      final EdmFunction edmFunction =
-          edm.getUnboundFunction(
-              new FullQualifiedName(metadata.getSchema(0).getNamespace(), "ProductsByRating"), function
-                  .getParameterNames());
-      assertNotNull(edmFunction);
-      assertEquals(edmFunction.getName(), fi.getUnboundFunction(function.getParameterNames()).getName());
-      assertEquals(edmFunction.getNamespace(), fi.getUnboundFunction(function.getParameterNames()).getNamespace());
-      assertEquals(edmFunction.getParameterNames(), fi.getUnboundFunction(function.getParameterNames())
-          .getParameterNames());
-      assertEquals(edmFunction.getReturnType().getType().getName(),
-          fi.getUnboundFunction(function.getParameterNames()).getReturnType().getType().getName());
-      assertEquals(edmFunction.getReturnType().getType().getNamespace(),
-          fi.getUnboundFunction(function.getParameterNames()).getReturnType().getType().getNamespace());
-    }
-
-    final EdmTypeDefinition weight = edm.getTypeDefinition(new FullQualifiedName("ODataDemo", "Weight"));
-    assertNotNull(weight);
-    assertEquals(EdmInt32.getInstance(), weight.getUnderlyingType());
-    assertFalse(weight.getAnnotations().isEmpty());
-    assertEquals("Kilograms", weight.getAnnotations().get(0).getExpression().asConstant().getValueAsString());
-  }
-
-  /**
-   * Tests Example 86 from CSDL specification.
-   */
-  @Test
-  public void fromdoc2() {
-    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML)
-        .toMetadata(getClass().getResourceAsStream("fromdoc2-metadata.xml"));
-    assertNotNull(metadata);
-
-    // Check displayName
-    final CsdlAnnotation displayName = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Supplier").
-        getAnnotation("Vocabulary1.DisplayName");
-    assertNotNull(displayName);
-    assertTrue(displayName.getExpression().isDynamic());
-
-    assertTrue(displayName.getExpression().asDynamic().isApply());
-    final Apply apply = displayName.getExpression().asDynamic().asApply();
-    assertEquals(Constants.CANONICAL_FUNCTION_CONCAT, apply.getFunction());
-    assertEquals(3, apply.getParameters().size());
-
-    Path path = (Path) apply.getParameters().get(0);
-    assertEquals("Name", path.getValue());
-
-    ConstantAnnotationExpression expression =
-        (ConstantAnnotationExpression) apply.getParameters().get(1);
-    assertEquals(" in ", expression.getValue());
-    assertEquals(ConstantAnnotationExpression.Type.String, expression.getType());
-
-    Path thirdArg = (Path) apply.getParameters().get(2);
-    assertEquals("Address/CountryName", thirdArg.getValue());
-
-    // Check Tags
-    final CsdlAnnotation tags = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Product").
-        getAnnotation("Vocabulary1.Tags");
-    assertNotNull(tags);
-    assertTrue(tags.getExpression().isDynamic());
-
-    assertTrue(tags.getExpression().asDynamic().isCollection());
-    final Collection collection = tags.getExpression().asDynamic().asCollection();
-    assertEquals(1, collection.getItems().size());
-    assertEquals(ConstantAnnotationExpression.Type.String, collection.getItems().get(0).asConstant().getType());
-    assertEquals("MasterData", collection.getItems().get(0).asConstant().getValue());
-  }
-
-  /**
-   * Various annotation examples taken from CSDL specification.
-   */
-  @Test
-  public void fromdoc3() {
-    final Edm edm = getClient().getReader().readMetadata(getClass().getResourceAsStream("fromdoc3-metadata.xml"));
-    assertNotNull(edm);
-
-    final EdmAnnotations group = edm.getSchema("Annotations").getAnnotationGroups().get(0);
-    assertNotNull(group);
-
-    final EdmAnnotation time1 = group.getAnnotations().get(0);
-    assertEquals("Edm.TimeOfDay", time1.getExpression().asConstant().getValue().getType());
-
-    final EdmAnnotation time2 = group.getAnnotations().get(1);
-    assertEquals("Edm.TimeOfDay", time2.getExpression().asConstant().getValue().getType());
-  }
-
-  /**
-   * Various annotation examples taken from CSDL specification.
-   */
-  @Test
-  public void fromdoc4() {
-    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
-        toMetadata(getClass().getResourceAsStream("fromdoc4-metadata.xml"));
-    assertNotNull(metadata);
-
-    final CsdlAnnotations group = metadata.getSchema(0).getAnnotationGroups().get(0);
-    assertNotNull(group);
-
-    CsdlAnnotation annotation = group.getAnnotations().get(0);
-    assertTrue(annotation.getExpression().isDynamic());
-    assertTrue(annotation.getExpression().asDynamic().isCast());
-    assertEquals("Edm.Decimal", annotation.getExpression().asDynamic().asCast().getType());
-
-    annotation = group.getAnnotation("And");
-    assertTrue(annotation.getExpression().isDynamic());
-    assertTrue(annotation.getExpression().asDynamic().isTwoParamsOp());
-    assertEquals(TwoParamsOpDynamicAnnotationExpression.Type.And,
-        annotation.getExpression().asDynamic().asTwoParamsOp().getType());
-    assertTrue(annotation.getExpression().asDynamic().asTwoParamsOp().getLeftExpression().isPath());
-
-    annotation = group.getAnnotation("Vocab.Supplier");
-    assertNotNull(annotation);
-    assertTrue(annotation.getExpression().isDynamic());
-    assertTrue(annotation.getExpression().asDynamic().isUrlRef());
-    final UrlRef urlRef = annotation.getExpression().asDynamic().asUrlRef();
-    assertTrue(urlRef.getValue().isDynamic());
-    assertTrue(urlRef.getValue().asDynamic().isApply());
-
-    // Now let's go high-level
-    final Edm edm = getClient().getReader().readMetadata(getClass().getResourceAsStream("fromdoc4-metadata.xml"));
-    assertNotNull(edm);
-
-    final EdmAnnotations edmGroup = edm.getSchemas().get(0).getAnnotationGroups().get(0);
-    assertNotNull(edmGroup);
-
-    EdmAnnotation edmAnnotation = edmGroup.getAnnotations().get(0);
-    assertTrue(edmAnnotation.getExpression().isDynamic());
-    assertTrue(edmAnnotation.getExpression().asDynamic().isCast());
-    assertEquals(EdmDecimal.getInstance(), edmAnnotation.getExpression().asDynamic().asCast().getType());
-
-    edmAnnotation = edmGroup.getAnnotations().get(1);
-    assertTrue(edmAnnotation.getExpression().isDynamic());
-    assertTrue(edmAnnotation.getExpression().asDynamic().isAnd());
-    assertTrue(edmAnnotation.getExpression().asDynamic().asAnd().getLeftExpression().isPath());
-
-    edmAnnotation = edmGroup.getAnnotations().get(edmGroup.getAnnotations().size() - 2);
-    assertNotNull(edmAnnotation);
-    assertTrue(edmAnnotation.getExpression().isDynamic());
-    assertTrue(edmAnnotation.getExpression().asDynamic().isUrlRef());
-    final EdmUrlRef edmUrlRef = edmAnnotation.getExpression().asDynamic().asUrlRef();
-    assertTrue(edmUrlRef.getValue().isDynamic());
-    assertTrue(edmUrlRef.getValue().asDynamic().isApply());
-  }
-
-  @Test
-  public void metadataWithCapabilities() throws Exception {
-    InputStream input = getClass().getResourceAsStream("Metadata-With-Capabilities.xml");
-    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
-            toMetadata(input);
-
-    CsdlSchema schema = metadata.getSchema("Capabilities");
-    assertNotNull(schema);
-    assertEquals(23, schema.getTerms().size());
-
-    final CsdlTerm deleteRestrictions = schema.getTerm("DeleteRestrictions");
-    assertNotNull(deleteRestrictions);
-    assertEquals("Capabilities.DeleteRestrictionsType", deleteRestrictions.getType());
-  }
-}


[8/8] olingo-odata4 git commit: [OLINGO-431] Delete unnecessary v4 in package name

Posted by ch...@apache.org.
[OLINGO-431] Delete unnecessary v4 in package name


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

Branch: refs/heads/master
Commit: 752bfad367a905ad1284cf3116802dfae0937152
Parents: 1f9a28d
Author: Christian Amend <ch...@sap.com>
Authored: Fri Aug 21 14:03:20 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Fri Aug 21 14:03:20 2015 +0200

----------------------------------------------------------------------
 .../org/apache/olingo/client/core/AtomTest.java |  81 ++++
 .../olingo/client/core/EntitySetTest.java       |  96 ++++
 .../apache/olingo/client/core/EntityTest.java   | 390 +++++++++++++++
 .../apache/olingo/client/core/ErrorTest.java    |  61 +++
 .../org/apache/olingo/client/core/JSONTest.java | 257 ++++++++++
 .../apache/olingo/client/core/MetadataTest.java | 412 ++++++++++++++++
 .../olingo/client/core/PrimitiveValueTest.java  |  73 +++
 .../apache/olingo/client/core/PropertyTest.java | 138 ++++++
 .../olingo/client/core/ServiceDocumentTest.java |  74 +++
 .../client/core/uri/FilterFactoryTest.java      | 101 ++++
 .../olingo/client/core/uri/URIBuilderTest.java  | 244 ++++++++++
 .../client/core/uri/v4/FilterFactoryTest.java   | 101 ----
 .../client/core/uri/v4/URIBuilderTest.java      | 244 ----------
 .../apache/olingo/client/core/v4/AtomTest.java  |  82 ----
 .../olingo/client/core/v4/EntitySetTest.java    |  97 ----
 .../olingo/client/core/v4/EntityTest.java       | 391 ---------------
 .../apache/olingo/client/core/v4/ErrorTest.java |  62 ---
 .../apache/olingo/client/core/v4/JSONTest.java  | 258 ----------
 .../olingo/client/core/v4/MetadataTest.java     | 413 ----------------
 .../client/core/v4/PrimitiveValueTest.java      |  74 ---
 .../olingo/client/core/v4/PropertyTest.java     | 139 ------
 .../client/core/v4/ServiceDocumentTest.java     |  75 ---
 ...ccounts_101_expand_MyPaymentInstruments.json |  94 ++++
 ...Accounts_101_expand_MyPaymentInstruments.xml | 129 +++++
 ...ts_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json |  16 +
 ...nts_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml |  46 ++
 .../org/apache/olingo/client/core/Customer.json |  37 ++
 .../org/apache/olingo/client/core/Customer.xml  |  46 ++
 .../apache/olingo/client/core/Customers.json    |  57 +++
 .../org/apache/olingo/client/core/Customers.xml | 111 +++++
 .../client/core/Employees_3_HomeAddress.json    |   6 +
 .../client/core/Employees_3_HomeAddress.xml     |  31 ++
 .../client/core/Metadata-With-Capabilities.xml  | 323 +++++++++++++
 .../olingo/client/core/PersonDetails_1.json     |  22 +
 .../olingo/client/core/PersonDetails_1.xml      |  55 +++
 .../apache/olingo/client/core/Products_5.json   |  29 ++
 .../apache/olingo/client/core/Products_5.xml    |  49 ++
 .../client/core/Products_5_CoverColors.json     |   5 +
 .../client/core/Products_5_CoverColors.xml      |  30 ++
 .../client/core/Products_5_SkinColor.json       |   5 +
 .../olingo/client/core/Products_5_SkinColor.xml |  27 ++
 .../apache/olingo/client/core/VipCustomer.json  |  50 ++
 .../apache/olingo/client/core/VipCustomer.xml   |  73 +++
 .../apache/olingo/client/core/annotated.json    |  62 +++
 .../org/apache/olingo/client/core/annotated.xml |  78 +++
 .../apache/olingo/client/core/atom_cleanup.xsl  |  49 ++
 .../core/collectionOfEntityReferences.json      |  11 +
 .../core/collectionOfEntityReferences.xml       |  25 +
 .../apache/olingo/client/core/crossjoin.json    |  18 +
 .../org/apache/olingo/client/core/delta.json    |  39 ++
 .../org/apache/olingo/client/core/delta.xml     |  87 ++++
 .../apache/olingo/client/core/demo-metadata.xml | 163 +++++++
 .../client/core/entity.collection.complex.json  |  14 +
 .../core/entity.collection.primitive.json       |   7 +
 .../olingo/client/core/entity.complex.json      |  12 +
 .../olingo/client/core/entity.minimal.json      |  15 +
 .../olingo/client/core/entity.primitive.json    |  22 +
 .../core/entity.withcomplexnavigation.json      |  22 +
 .../core/entity.withcomplexnavigation.xml       |  63 +++
 .../olingo/client/core/entityReference.json     |   4 +
 .../olingo/client/core/entityReference.xml      |  22 +
 .../org/apache/olingo/client/core/error.json    |  14 +
 .../org/apache/olingo/client/core/error.xml     |  31 ++
 .../olingo/client/core/fromdoc1-metadata.xml    | 126 +++++
 .../olingo/client/core/fromdoc2-metadata.xml    |  54 +++
 .../olingo/client/core/fromdoc3-metadata.xml    | 131 ++++++
 .../olingo/client/core/fromdoc4-metadata.xml    | 164 +++++++
 .../org/apache/olingo/client/core/metadata.xml  | 232 +++++++++
 .../olingo/client/core/minimalEntity.json       |  21 +
 .../olingo/client/core/northwind-metadata.xml   | 471 +++++++++++++++++++
 .../apache/olingo/client/core/olingo390.json    |  18 +
 .../olingo/client/core/serviceDocument.json     |  30 ++
 .../olingo/client/core/serviceDocument.xml      |  46 ++
 .../client/core/staticservice-metadata.xml      | 462 ++++++++++++++++++
 ...ccounts_101_expand_MyPaymentInstruments.json |  94 ----
 ...Accounts_101_expand_MyPaymentInstruments.xml | 129 -----
 ...ts_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json |  16 -
 ...nts_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml |  46 --
 .../apache/olingo/client/core/v4/Customer.json  |  37 --
 .../apache/olingo/client/core/v4/Customer.xml   |  46 --
 .../apache/olingo/client/core/v4/Customers.json |  57 ---
 .../apache/olingo/client/core/v4/Customers.xml  | 111 -----
 .../client/core/v4/Employees_3_HomeAddress.json |   6 -
 .../client/core/v4/Employees_3_HomeAddress.xml  |  31 --
 .../core/v4/Metadata-With-Capabilities.xml      | 323 -------------
 .../olingo/client/core/v4/PersonDetails_1.json  |  22 -
 .../olingo/client/core/v4/PersonDetails_1.xml   |  55 ---
 .../olingo/client/core/v4/Products_5.json       |  29 --
 .../apache/olingo/client/core/v4/Products_5.xml |  49 --
 .../client/core/v4/Products_5_CoverColors.json  |   5 -
 .../client/core/v4/Products_5_CoverColors.xml   |  30 --
 .../client/core/v4/Products_5_SkinColor.json    |   5 -
 .../client/core/v4/Products_5_SkinColor.xml     |  27 --
 .../olingo/client/core/v4/VipCustomer.json      |  50 --
 .../olingo/client/core/v4/VipCustomer.xml       |  73 ---
 .../apache/olingo/client/core/v4/annotated.json |  62 ---
 .../apache/olingo/client/core/v4/annotated.xml  |  78 ---
 .../olingo/client/core/v4/atom_cleanup.xsl      |  49 --
 .../core/v4/collectionOfEntityReferences.json   |  11 -
 .../core/v4/collectionOfEntityReferences.xml    |  25 -
 .../apache/olingo/client/core/v4/crossjoin.json |  18 -
 .../org/apache/olingo/client/core/v4/delta.json |  39 --
 .../org/apache/olingo/client/core/v4/delta.xml  |  87 ----
 .../olingo/client/core/v4/demo-metadata.xml     | 163 -------
 .../core/v4/entity.collection.complex.json      |  14 -
 .../core/v4/entity.collection.primitive.json    |   7 -
 .../olingo/client/core/v4/entity.complex.json   |  12 -
 .../olingo/client/core/v4/entity.minimal.json   |  15 -
 .../olingo/client/core/v4/entity.primitive.json |  22 -
 .../core/v4/entity.withcomplexnavigation.json   |  22 -
 .../core/v4/entity.withcomplexnavigation.xml    |  63 ---
 .../olingo/client/core/v4/entityReference.json  |   4 -
 .../olingo/client/core/v4/entityReference.xml   |  22 -
 .../org/apache/olingo/client/core/v4/error.json |  14 -
 .../org/apache/olingo/client/core/v4/error.xml  |  31 --
 .../olingo/client/core/v4/fromdoc1-metadata.xml | 126 -----
 .../olingo/client/core/v4/fromdoc2-metadata.xml |  54 ---
 .../olingo/client/core/v4/fromdoc3-metadata.xml | 131 ------
 .../olingo/client/core/v4/fromdoc4-metadata.xml | 164 -------
 .../apache/olingo/client/core/v4/metadata.xml   | 232 ---------
 .../olingo/client/core/v4/minimalEntity.json    |  21 -
 .../client/core/v4/northwind-metadata.xml       | 471 -------------------
 .../apache/olingo/client/core/v4/olingo390.json |  18 -
 .../olingo/client/core/v4/serviceDocument.json  |  30 --
 .../olingo/client/core/v4/serviceDocument.xml   |  46 --
 .../client/core/v4/staticservice-metadata.xml   | 462 ------------------
 126 files changed, 5681 insertions(+), 5690 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/AtomTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/AtomTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/AtomTest.java
new file mode 100644
index 0000000..9d5346b
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/AtomTest.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.io.StringWriter;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.custommonkey.xmlunit.Diff;
+
+public class AtomTest extends JSONTest {
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  @Override
+  protected ContentType getODataPubFormat() {
+    return ContentType.APPLICATION_ATOM_XML;
+  }
+
+  @Override
+  protected ContentType getODataFormat() {
+    return ContentType.APPLICATION_XML;
+  }
+
+  private String cleanup(final String input) throws Exception {
+    final TransformerFactory factory = TransformerFactory.newInstance();
+    final Source xslt = new StreamSource(getClass().getResourceAsStream("atom_cleanup.xsl"));
+    final Transformer transformer = factory.newTransformer(xslt);
+
+    final StringWriter result = new StringWriter();
+    transformer.transform(new StreamSource(new ByteArrayInputStream(input.getBytes())), new StreamResult(result));
+    return result.toString();
+  }
+
+  @Override
+  protected void assertSimilar(final String filename, final String actual) throws Exception {
+    final Diff diff = new Diff(cleanup(IOUtils.toString(getClass().getResourceAsStream(filename))), actual);
+    diff.overrideElementQualifier(new AtomLinksQualifier());
+    assertTrue(diff.similar());
+  }
+
+  @Override
+  public void additionalEntities() throws Exception {
+    // no test
+  }
+
+  @Override
+  public void issueOLINGO390() throws Exception {
+    // no test
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/EntitySetTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/EntitySetTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/EntitySetTest.java
new file mode 100644
index 0000000..70f92cb
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/EntitySetTest.java
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.data.EntityCollection;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.client.api.serialization.ODataDeserializerException;
+import org.junit.Test;
+
+public class EntitySetTest extends AbstractTest {
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  private void read(final ContentType contentType) throws IOException, ODataDeserializerException {
+    final InputStream input = getClass().getResourceAsStream("Customers." + getSuffix(contentType));
+    final ClientEntitySet entitySet = getClient().getBinder().getODataEntitySet(
+        getClient().getDeserializer(contentType).toEntitySet(input));
+    assertNotNull(entitySet);
+
+    assertEquals(2, entitySet.getEntities().size());
+    assertNull(entitySet.getNext());
+
+    final ClientEntitySet written =
+        getClient().getBinder().getODataEntitySet(new ResWrap<EntityCollection>((URI) null, null,
+            getClient().getBinder().getEntitySet(entitySet)));
+    assertEquals(entitySet, written);
+  }
+
+  @Test
+  public void fromAtom() throws Exception {
+    read(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void fromJSON() throws Exception {
+    read(ContentType.JSON);
+  }
+
+  private void ref(final ContentType contentType) throws ODataDeserializerException {
+    final InputStream input = getClass().getResourceAsStream("collectionOfEntityReferences." + getSuffix(contentType));
+    final ClientEntitySet entitySet = getClient().getBinder().getODataEntitySet(
+        getClient().getDeserializer(contentType).toEntitySet(input));
+    assertNotNull(entitySet);
+
+    for (ClientEntity entity : entitySet.getEntities()) {
+      assertNotNull(entity.getId());
+    }
+    entitySet.setCount(entitySet.getEntities().size());
+
+    final ClientEntitySet written =
+        getClient().getBinder().getODataEntitySet(new ResWrap<EntityCollection>((URI) null, null,
+            getClient().getBinder().getEntitySet(entitySet)));
+    assertEquals(entitySet, written);
+  }
+
+  @Test
+  public void atomRef() throws Exception {
+    ref(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonRef() throws Exception {
+    ref(ContentType.JSON);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/EntityTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/EntityTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/EntityTest.java
new file mode 100644
index 0000000..77a9c39
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/EntityTest.java
@@ -0,0 +1,390 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.InputStream;
+import java.net.URI;
+import java.util.Iterator;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.client.core.EdmEnabledODataClientImpl;
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.edm.Edm;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmDateTimeOffset;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmDuration;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class EntityTest extends AbstractTest {
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  private EdmEnabledODataClient getEdmEnabledClient() {
+    return new EdmEnabledODataClientImpl(null, null, null) {
+
+      private Edm edm;
+
+      @Override
+      public Edm getEdm(final String metadataETag) {
+        return getCachedEdm();
+      }
+
+      @Override
+      public Edm getCachedEdm() {
+        if (edm == null) {
+          edm = getReader().readMetadata(getClass().getResourceAsStream("staticservice-metadata.xml"));
+        }
+        return edm;
+      }
+
+    };
+  }
+
+  private void singleton(final ContentType contentType) throws Exception {
+    final InputStream input = getClass().getResourceAsStream("VipCustomer." + getSuffix(contentType));
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
+        getClient().getDeserializer(contentType).toEntity(input));
+    assertNotNull(entity);
+
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
+
+    final ClientProperty birthday = entity.getProperty("Birthday");
+    assertTrue(birthday.hasPrimitiveValue());
+    assertEquals(EdmDateTimeOffset.getInstance(), birthday.getPrimitiveValue().getType());
+
+    final ClientProperty timeBetweenLastTwoOrders = entity.getProperty("TimeBetweenLastTwoOrders");
+    assertTrue(timeBetweenLastTwoOrders.hasPrimitiveValue());
+    assertEquals(EdmDuration.getInstance(), timeBetweenLastTwoOrders.getPrimitiveValue().getType());
+
+    int checked = 0;
+    for (ClientLink link : entity.getNavigationLinks()) {
+      if ("Parent".equals(link.getName())) {
+        checked++;
+        assertEquals(ClientLinkType.ENTITY_NAVIGATION, link.getType());
+      }
+      if ("Orders".equals(link.getName())) {
+        checked++;
+        if (contentType.isCompatible(ContentType.APPLICATION_ATOM_SVC)
+            || contentType.isCompatible(ContentType.APPLICATION_ATOM_XML)) {
+          assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, link.getType());
+        }
+      }
+      if ("Company".equals(link.getName())) {
+        checked++;
+        assertEquals(ClientLinkType.ENTITY_NAVIGATION, link.getType());
+      }
+    }
+    assertEquals(3, checked);
+
+    assertEquals(2, entity.getOperations().size());
+    assertEquals("#Microsoft.Test.OData.Services.ODataWCFService.ResetAddress",
+        entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress").getMetadataAnchor());
+    assertEquals("#Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress",
+        entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress").getMetadataAnchor());
+
+    // operations won't get serialized
+    entity.getOperations().clear();
+    final ClientEntity written = getClient().getBinder().getODataEntity(
+        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
+    assertEquals(entity, written);
+    input.close();
+  }
+
+  @Test
+  public void atomSingleton() throws Exception {
+    singleton(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonSingleton() throws Exception {
+    singleton(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void withEnums(final ContentType contentType) throws Exception {
+    final InputStream input = getClass().getResourceAsStream("Products_5." + getSuffix(contentType));
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
+        getClient().getDeserializer(contentType).toEntity(input));
+    assertNotNull(entity);
+
+    final ClientProperty skinColor = entity.getProperty("SkinColor");
+    assertTrue(skinColor.hasEnumValue());
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Color", skinColor.getEnumValue().getTypeName());
+    assertEquals("Red", skinColor.getEnumValue().getValue());
+
+    final ClientProperty coverColors = entity.getProperty("CoverColors");
+    assertTrue(coverColors.hasCollectionValue());
+    for (final Iterator<ClientValue> itor = coverColors.getCollectionValue().iterator(); itor.hasNext();) {
+      final ClientValue item = itor.next();
+      assertTrue(item.isEnum());
+    }
+
+    // operations won't get serialized
+    entity.getOperations().clear();
+    final ClientEntity written = getClient().getBinder().getODataEntity(
+        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
+    assertEquals(entity, written);
+    input.close();
+  }
+
+  @Test
+  public void atomWithEnums() throws Exception {
+    withEnums(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonWithEnums() throws Exception {
+    withEnums(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void withInlineEntitySet(final ContentType contentType) throws Exception {
+    final InputStream input = getClass().getResourceAsStream(
+        "Accounts_101_expand_MyPaymentInstruments." + getSuffix(contentType));
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
+        getClient().getDeserializer(contentType).toEntity(input));
+    assertNotNull(entity);
+
+    final ClientLink instruments = entity.getNavigationLink("MyPaymentInstruments");
+    assertNotNull(instruments);
+    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, instruments.getType());
+
+    final ClientInlineEntitySet inline = instruments.asInlineEntitySet();
+    assertNotNull(inline);
+    assertEquals(3, inline.getEntitySet().getEntities().size());
+
+    // count shouldn't be serialized
+    inline.getEntitySet().setCount(3);
+    // operations won't get serialized
+    entity.getOperations().clear();
+    final ClientEntity written = getClient().getBinder().getODataEntity(
+        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
+    assertEquals(entity, written);
+    input.close();
+  }
+
+  @Test
+  public void atomWithInlineEntitySet() throws Exception {
+    withInlineEntitySet(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonWithInlineEntitySet() throws Exception {
+    withInlineEntitySet(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void mediaEntity(final ContentType contentType) throws Exception {
+    final InputStream input = getClass().getResourceAsStream(
+        "Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7." + getSuffix(contentType));
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
+        getClient().getDeserializer(contentType).toEntity(input));
+    assertNotNull(entity);
+
+    assertTrue(entity.isMediaEntity());
+    assertNotNull(entity.getMediaContentSource());
+    assertEquals("\"8zOOKKvgOtptr4gt8IrnapX3jds=\"", entity.getMediaETag());
+
+    final ClientEntity written = getClient().getBinder().getODataEntity(
+        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
+    assertEquals(entity, written);
+    input.close();
+  }
+
+  @Test
+  public void atomMediaEntity() throws Exception {
+    mediaEntity(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonMediaEntity() throws Exception {
+    mediaEntity(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void withStream(final ContentType contentType) throws Exception {
+    final InputStream input = getClass().getResourceAsStream("PersonDetails_1." + getSuffix(contentType));
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
+        getClient().getDeserializer(contentType).toEntity(input));
+    assertNotNull(entity);
+
+    assertFalse(entity.isMediaEntity());
+
+    final ClientLink editMedia = entity.getMediaEditLink("Photo");
+    assertNotNull(editMedia);
+
+    final ClientEntity written = getClient().getBinder().getODataEntity(
+        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
+    assertEquals(entity, written);
+    input.close();
+  }
+
+  @Test
+  public void atomWithStream() throws Exception {
+    withStream(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonWithStream() throws Exception {
+    withStream(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void ref(final ContentType contentType) throws Exception {
+    final InputStream input = getClass().getResourceAsStream("entityReference." + getSuffix(contentType));
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
+        getClient().getDeserializer(contentType).toEntity(input));
+    assertNotNull(entity);
+
+    assertNotNull(entity.getId());
+
+    final ClientEntity written = getClient().getBinder().getODataEntity(
+        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
+    assertEquals(entity, written);
+    input.close();
+  }
+
+  @Test
+  public void atomRef() throws Exception {
+    ref(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonRef() throws Exception {
+    ref(ContentType.JSON);
+  }
+
+  private void complexNavigationProperties(final ContentType contentType) throws Exception {
+    final InputStream input = getClass().getResourceAsStream("entity.withcomplexnavigation." + getSuffix(contentType));
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
+        getClient().getDeserializer(contentType).toEntity(input));
+    assertNotNull(entity);
+
+    final ClientComplexValue addressValue = entity.getProperty("Address").getComplexValue();
+    assertNotNull(addressValue);
+    assertNotNull(addressValue.getNavigationLink("Country"));
+
+    // ETag is not serialized
+    entity.setETag(null);
+    final ClientEntity written = getClient().getBinder().getODataEntity(
+        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
+    assertEquals(entity, written);
+    input.close();
+  }
+
+  @Test
+  public void atomComplexNavigationProperties() throws Exception {
+    complexNavigationProperties(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonComplexNavigationProperties() throws Exception {
+    complexNavigationProperties(ContentType.JSON);
+  }
+
+  private void annotated(final ContentType contentType) throws EdmPrimitiveTypeException, Exception {
+    final InputStream input = getClass().getResourceAsStream("annotated." + getSuffix(contentType));
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
+        getClient().getDeserializer(contentType).toEntity(input));
+    assertNotNull(entity);
+
+    assertFalse(entity.getAnnotations().isEmpty());
+
+    ClientAnnotation annotation = entity.getAnnotations().get(0);
+    assertEquals("com.contoso.display.highlight", annotation.getTerm());
+    assertEquals(true, annotation.getPrimitiveValue().toCastValue(Boolean.class));
+
+    annotation = entity.getAnnotations().get(1);
+    assertEquals("com.contoso.PersonalInfo.PhoneNumbers", annotation.getTerm());
+    assertTrue(annotation.hasCollectionValue());
+
+    annotation = entity.getProperty("LastName").getAnnotations().get(0);
+    assertEquals("com.contoso.display.style", annotation.getTerm());
+    assertTrue(annotation.hasComplexValue());
+
+    final ClientLink orders = entity.getNavigationLink("Orders");
+    assertFalse(orders.getAnnotations().isEmpty());
+
+    annotation = orders.getAnnotations().get(0);
+    assertEquals("com.contoso.display.style", annotation.getTerm());
+    assertEquals("com.contoso.display.styleType", annotation.getValue().getTypeName());
+    assertTrue(annotation.hasComplexValue());
+    assertEquals(2,
+        annotation.getValue().asComplex().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    final ClientEntity written = getClient().getBinder().getODataEntity(
+        new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
+    assertEquals(entity, written);
+    input.close();
+  }
+
+  @Test
+  @Ignore
+  public void atomAnnotated() throws Exception {
+    annotated(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  @Ignore
+  public void jsonAnnotated() throws Exception {
+    annotated(ContentType.JSON);
+  }
+
+  private void derived(final ODataClient client, final ContentType contentType) throws Exception {
+    final InputStream input = getClass().getResourceAsStream("Customer." + getSuffix(contentType));
+    final ClientEntity entity = client.getBinder().getODataEntity(client.getDeserializer(contentType).toEntity(input));
+    assertNotNull(entity);
+
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
+        ((ClientValuable) entity.getProperty("HomeAddress")).getValue().getTypeName());
+    input.close();
+  }
+
+  @Test
+  public void derivedFromAtom() throws Exception {
+    derived(getClient(), ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void derivedFromJSON() throws Exception {
+    derived(getEdmEnabledClient(), ContentType.JSON);
+  }
+
+  @Test
+  public void derivedFromFullJSON() throws Exception {
+    derived(getClient(), ContentType.JSON_FULL_METADATA);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/ErrorTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/ErrorTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/ErrorTest.java
new file mode 100644
index 0000000..8ced6a3
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/ErrorTest.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.serialization.ODataDeserializerException;
+import org.apache.olingo.commons.api.ex.ODataError;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class ErrorTest extends AbstractTest {
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  private ODataError error(final String name, final ContentType contentType) throws ODataDeserializerException {
+    final ODataError error = getClient().getDeserializer(contentType).toError(
+            getClass().getResourceAsStream(name + "." + getSuffix(contentType)));
+    assertNotNull(error);
+    return error;
+  }
+
+  private void simple(final ContentType contentType) throws ODataDeserializerException {
+    final ODataError error = error("error", contentType);
+    assertEquals("501", error.getCode());
+    assertEquals("Unsupported functionality", error.getMessage());
+    assertEquals("query", error.getTarget());
+  }
+
+  @Test
+  public void jsonSimple() throws Exception {
+    simple(ContentType.JSON);
+  }
+
+  @Test
+  public void atomSimple() throws Exception {
+    simple(ContentType.APPLICATION_ATOM_XML);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/JSONTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/JSONTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/JSONTest.java
new file mode 100644
index 0000000..11a99ed
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/JSONTest.java
@@ -0,0 +1,257 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.commons.api.Constants;
+import org.apache.olingo.commons.api.data.Delta;
+import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+public class JSONTest extends AbstractTest {
+
+  private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  protected ContentType getODataPubFormat() {
+    return ContentType.JSON;
+  }
+
+  protected ContentType getODataFormat() {
+    return ContentType.JSON;
+  }
+
+  private void cleanup(final ObjectNode node) {
+    if (node.has(Constants.JSON_CONTEXT)) {
+      node.remove(Constants.JSON_CONTEXT);
+    }
+    if (node.has(Constants.JSON_ETAG)) {
+      node.remove(Constants.JSON_ETAG);
+    }
+    if (node.has(Constants.JSON_TYPE)) {
+      node.remove(Constants.JSON_TYPE);
+    }
+    if (node.has(Constants.JSON_EDIT_LINK)) {
+      node.remove(Constants.JSON_EDIT_LINK);
+    }
+    if (node.has(Constants.JSON_READ_LINK)) {
+      node.remove(Constants.JSON_READ_LINK);
+    }
+    if (node.has(Constants.JSON_MEDIA_EDIT_LINK)) {
+      node.remove(Constants.JSON_MEDIA_EDIT_LINK);
+    }
+    if (node.has(Constants.JSON_MEDIA_READ_LINK)) {
+      node.remove(Constants.JSON_MEDIA_READ_LINK);
+    }
+    if (node.has(Constants.JSON_MEDIA_CONTENT_TYPE)) {
+      node.remove(Constants.JSON_MEDIA_CONTENT_TYPE);
+    }
+    if (node.has(Constants.JSON_COUNT)) {
+      node.remove(Constants.JSON_COUNT);
+    }
+    final List<String> toRemove = new ArrayList<String>();
+    for (final Iterator<Map.Entry<String, JsonNode>> itor = node.fields(); itor.hasNext();) {
+      final Map.Entry<String, JsonNode> field = itor.next();
+
+      final String key = field.getKey();
+      if (key.charAt(0) == '#'
+          || key.endsWith(Constants.JSON_TYPE)
+          || key.endsWith(Constants.JSON_MEDIA_EDIT_LINK)
+          || key.endsWith(Constants.JSON_MEDIA_CONTENT_TYPE)
+          || key.endsWith(Constants.JSON_ASSOCIATION_LINK)
+          || key.endsWith(Constants.JSON_MEDIA_ETAG)) {
+
+        toRemove.add(key);
+      } else if (field.getValue().isObject()) {
+        cleanup((ObjectNode) field.getValue());
+      } else if (field.getValue().isArray()) {
+        for (final Iterator<JsonNode> arrayItems = field.getValue().elements(); arrayItems.hasNext();) {
+          final JsonNode arrayItem = arrayItems.next();
+          if (arrayItem.isObject()) {
+            cleanup((ObjectNode) arrayItem);
+          }
+        }
+      }
+    }
+    node.remove(toRemove);
+  }
+
+  protected void assertSimilar(final String filename, final String actual) throws Exception {
+    final JsonNode expected = OBJECT_MAPPER.readTree(IOUtils.toString(getClass().getResourceAsStream(filename)).
+        replace(Constants.JSON_NAVIGATION_LINK, Constants.JSON_BIND_LINK_SUFFIX));
+    cleanup((ObjectNode) expected);
+    final ObjectNode actualNode = (ObjectNode) OBJECT_MAPPER.readTree(new ByteArrayInputStream(actual.getBytes()));
+    cleanup(actualNode);
+    assertEquals(expected, actualNode);
+  }
+
+  protected void entitySet(final String filename, final ContentType contentType) throws Exception {
+    final StringWriter writer = new StringWriter();
+    getClient().getSerializer(contentType).write(writer, getClient().getDeserializer(contentType).toEntitySet(
+        getClass().getResourceAsStream(filename + "." + getSuffix(contentType))).getPayload());
+
+    assertSimilar(filename + "." + getSuffix(contentType), writer.toString());
+  }
+
+  @Test
+  public void entitySets() throws Exception {
+    entitySet("Customers", getODataPubFormat());
+    entitySet("collectionOfEntityReferences", getODataPubFormat());
+  }
+
+  protected void entity(final String filename, final ContentType contentType) throws Exception {
+    final StringWriter writer = new StringWriter();
+    getClient().getSerializer(contentType).write(writer, getClient().getDeserializer(contentType).toEntity(
+        getClass().getResourceAsStream(filename + "." + getSuffix(contentType))).getPayload());
+    System.out.println(writer.toString());
+    assertSimilar(filename + "." + getSuffix(contentType), writer.toString());
+  }
+
+  @Test
+  public void additionalEntities() throws Exception {
+    entity("entity.minimal", getODataPubFormat());
+    entity("entity.primitive", getODataPubFormat());
+    entity("entity.complex", getODataPubFormat());
+    entity("entity.collection.primitive", getODataPubFormat());
+    entity("entity.collection.complex", getODataPubFormat());
+  }
+
+  @Test
+  public void entities() throws Exception {
+    entity("Products_5", getODataPubFormat());
+    entity("VipCustomer", getODataPubFormat());
+    entity("Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7", getODataPubFormat());
+    entity("entityReference", getODataPubFormat());
+    entity("entity.withcomplexnavigation", getODataPubFormat());
+    entity("annotated", getODataPubFormat());
+  }
+
+  protected void property(final String filename, final ContentType contentType) throws Exception {
+    final StringWriter writer = new StringWriter();
+    getClient().getSerializer(contentType).write(writer, getClient().getDeserializer(contentType).
+        toProperty(getClass().getResourceAsStream(filename + "." + getSuffix(contentType))).getPayload());
+
+    assertSimilar(filename + "." + getSuffix(contentType), writer.toString());
+  }
+
+  @Test
+  public void properties() throws Exception {
+    property("Products_5_SkinColor", getODataFormat());
+    property("Products_5_CoverColors", getODataFormat());
+    property("Employees_3_HomeAddress", getODataFormat());
+    property("Employees_3_HomeAddress", getODataFormat());
+  }
+
+  @Test
+  public void crossjoin() throws Exception {
+    assertNotNull(getClient().getDeserializer(ContentType.JSON_FULL_METADATA).toEntitySet(
+        getClass().getResourceAsStream("crossjoin.json")));
+  }
+
+  protected void delta(final String filename, final ContentType contentType) throws Exception {
+    final Delta delta = getClient().getDeserializer(contentType).toDelta(
+        getClass().getResourceAsStream(filename + "." + getSuffix(contentType))).getPayload();
+    assertNotNull(delta);
+    assertNotNull(delta.getDeltaLink());
+    assertEquals(5, delta.getCount(), 0);
+
+    assertEquals(1, delta.getDeletedEntities().size());
+    assertTrue(delta.getDeletedEntities().get(0).getId().toASCIIString().endsWith("Customers('ANTON')"));
+
+    assertEquals(1, delta.getAddedLinks().size());
+    assertTrue(delta.getAddedLinks().get(0).getSource().toASCIIString().endsWith("Customers('BOTTM')"));
+    assertEquals("Orders", delta.getAddedLinks().get(0).getRelationship());
+
+    assertEquals(1, delta.getDeletedLinks().size());
+    assertTrue(delta.getDeletedLinks().get(0).getSource().toASCIIString().endsWith("Customers('ALFKI')"));
+    assertEquals("Orders", delta.getDeletedLinks().get(0).getRelationship());
+
+    assertEquals(2, delta.getEntities().size());
+    Property property = delta.getEntities().get(0).getProperty("ContactName");
+    assertNotNull(property);
+    assertTrue(property.isPrimitive());
+    property = delta.getEntities().get(1).getProperty("ShippingAddress");
+    assertNotNull(property);
+    assertTrue(property.isComplex());
+  }
+
+  @Test
+  public void deltas() throws Exception {
+    delta("delta", getODataPubFormat());
+  }
+
+  @Test
+  public void issueOLINGO390() throws Exception {
+    final ClientEntity message = getClient().getObjectFactory().
+        newEntity(new FullQualifiedName("Microsoft.Exchange.Services.OData.Model.Message"));
+
+    final ClientComplexValue toRecipient = getClient().getObjectFactory().
+        newComplexValue("Microsoft.Exchange.Services.OData.Model.Recipient");
+    toRecipient.add(getClient().getObjectFactory().newPrimitiveProperty("Name",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("challen_olingo_client")));
+    toRecipient.add(getClient().getObjectFactory().newPrimitiveProperty("Address",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("challenh@microsoft.com")));
+    final ClientCollectionValue<ClientValue> toRecipients = getClient().getObjectFactory().
+        newCollectionValue("Microsoft.Exchange.Services.OData.Model.Recipient");
+    toRecipients.add(toRecipient);
+    message.getProperties().add(getClient().getObjectFactory().newCollectionProperty("ToRecipients", toRecipients));
+
+    final ClientComplexValue body =
+        getClient().getObjectFactory().newComplexValue("Microsoft.Exchange.Services.OData.Model.ItemBody");
+    body.add(getClient().getObjectFactory().newPrimitiveProperty("Content",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+            buildString("this is a simple email body content")));
+    body.add(getClient().getObjectFactory().newEnumProperty("ContentType",
+        getClient().getObjectFactory().newEnumValue("Microsoft.Exchange.Services.OData.Model.BodyType", "text")));
+    message.getProperties().add(getClient().getObjectFactory().newComplexProperty("Body", body));
+
+    final String actual = IOUtils.toString(getClient().getWriter().writeEntity(message, ContentType.JSON));
+    final JsonNode expected =
+        OBJECT_MAPPER.readTree(IOUtils.toString(getClass().getResourceAsStream("olingo390.json")).
+            replace(Constants.JSON_NAVIGATION_LINK, Constants.JSON_BIND_LINK_SUFFIX));
+    final ObjectNode actualNode = (ObjectNode) OBJECT_MAPPER.readTree(new ByteArrayInputStream(actual.getBytes()));
+    assertEquals(expected, actualNode);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
new file mode 100644
index 0000000..2ee68d7
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
@@ -0,0 +1,412 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.InputStream;
+import java.util.List;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.edm.xml.XMLMetadata;
+import org.apache.olingo.commons.api.Constants;
+import org.apache.olingo.commons.api.edm.Edm;
+import org.apache.olingo.commons.api.edm.EdmAction;
+import org.apache.olingo.commons.api.edm.EdmAnnotation;
+import org.apache.olingo.commons.api.edm.EdmAnnotations;
+import org.apache.olingo.commons.api.edm.EdmAnnotationsTarget;
+import org.apache.olingo.commons.api.edm.EdmComplexType;
+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.EdmEnumType;
+import org.apache.olingo.commons.api.edm.EdmFunction;
+import org.apache.olingo.commons.api.edm.EdmFunctionImport;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmSchema;
+import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.annotation.EdmUrlRef;
+import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmDecimal;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmInt32;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
+import org.junit.Test;
+
+public class MetadataTest extends AbstractTest {
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  @Test
+  public void parse() {
+    final Edm edm = getClient().getReader().readMetadata(getClass().getResourceAsStream("metadata.xml"));
+    assertNotNull(edm);
+
+    // 1. Enum
+    final EdmEnumType responseEnumType = edm.getEnumType(
+        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "ResponseType"));
+    assertNotNull(responseEnumType);
+    assertEquals(6, responseEnumType.getMemberNames().size());
+    assertEquals("3", responseEnumType.getMember("Accepted").getValue());
+    assertEquals(EdmTypeKind.ENUM, responseEnumType.getKind());
+
+    // 2. Complex
+    final EdmComplexType responseStatus = edm.getComplexType(
+        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "ResponseStatus"));
+    assertNotNull(responseStatus);
+    assertTrue(responseStatus.getNavigationPropertyNames().isEmpty());
+    assertEquals("Recipient", responseStatus.getBaseType().getName());
+    assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.DateTimeOffset),
+        responseStatus.getProperty("Time").getType());
+
+    // 3. Entity
+    final EdmEntityType user = edm.getEntityType(
+        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "User"));
+    assertNotNull(user);
+    assertFalse(user.getPropertyNames().isEmpty());
+    assertFalse(user.getNavigationPropertyNames().isEmpty());
+
+    final EdmEntityType entity = edm.getEntityType(
+        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Entity"));
+    assertEquals(entity, user.getBaseType());
+    assertFalse(entity.getPropertyNames().isEmpty());
+    assertTrue(entity.getNavigationPropertyNames().isEmpty());
+
+    final EdmEntityType folder = edm.getEntityType(
+        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Folder"));
+    assertEquals(folder, user.getNavigationProperty("Inbox").getType());
+
+    // 4. Action
+    final EdmAction move = edm.getBoundAction(
+        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Move"),
+        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Folder"),
+        false);
+    assertNotNull(move);
+    assertTrue(move.isBound());
+    assertEquals(2, move.getParameterNames().size());
+    assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String),
+        move.getParameter("DestinationId").getType());
+
+    // 5. EntityContainer
+    final EdmEntityContainer container = edm.getEntityContainer(
+        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "EntityContainer"));
+    assertNotNull(container);
+    final EdmEntitySet users = container.getEntitySet("Users");
+    assertNotNull(users);
+    assertEquals(edm.getEntityType(new FullQualifiedName(container.getNamespace(), "User")),
+        users.getEntityType());
+    assertEquals(container.getEntitySet("Folders"), users.getRelatedBindingTarget("Folders"));
+  }
+
+  @Test
+  public void demo() {
+    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
+        toMetadata(getClass().getResourceAsStream("demo-metadata.xml"));
+    assertNotNull(metadata);
+
+    assertFalse(metadata.getSchema(0).getAnnotationGroups().isEmpty());
+    final CsdlAnnotations annots = metadata.getSchema(0).getAnnotationGroup("ODataDemo.DemoService/Suppliers");
+    assertNotNull(annots);
+    assertFalse(annots.getAnnotations().isEmpty());
+    assertEquals(ConstantAnnotationExpression.Type.String,
+        annots.getAnnotation("Org.OData.Publication.V1.PrivacyPolicyUrl").getExpression().asConstant().getType());
+    assertEquals("http://www.odata.org/",
+        annots.getAnnotation("Org.OData.Publication.V1.PrivacyPolicyUrl").getExpression().asConstant().getValue());
+
+    // Now let's test some edm:Annotations
+    final Edm edm = getClient().getReader().
+        readMetadata(getClass().getResourceAsStream("demo-metadata.xml"));
+    assertNotNull(edm);
+
+    final EdmSchema schema = edm.getSchema("ODataDemo");
+    assertNotNull(schema);
+    assertTrue(schema.getAnnotations().isEmpty());
+    assertFalse(schema.getAnnotationGroups().isEmpty());
+
+    final EdmAnnotations annotationGroup = schema.getAnnotationGroups().get(2);
+    assertNotNull(annotationGroup);
+    final EdmAnnotationsTarget annotationsTarget = annotationGroup.getTarget();
+    assertNotNull(annotationsTarget);
+    assertTrue(EdmAnnotationsTarget.TargetType.Property == annotationsTarget.getAnnotationsTargetType());
+    assertEquals(new FullQualifiedName("ODataDemo.Product"), annotationsTarget.getAnnotationsTargetFQN());
+    assertEquals("Name", annotationsTarget.getAnnotationsTargetPath());
+
+    final EdmAnnotation annotation = annotationGroup.getAnnotations().get(0);
+    assertNotNull(annotation);
+    assertTrue(annotation.getExpression().isConstant());
+    assertEquals("Edm.String", annotation.getExpression().asConstant().getValue().getType());
+
+    assertEquals(10, schema.getAnnotationGroups().get(3).getAnnotations().size());
+  }
+
+  @Test
+  public void multipleSchemas() {
+    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
+        toMetadata(getClass().getResourceAsStream("northwind-metadata.xml"));
+    assertNotNull(metadata);
+
+    final CsdlSchema first = metadata.getSchema("NorthwindModel");
+    assertNotNull(first);
+
+    final CsdlSchema second = metadata.getSchema("ODataWebExperimental.Northwind.Model");
+    assertNotNull(second);
+
+    final CsdlEntityContainer entityContainer = second.getEntityContainer();
+    assertNotNull(entityContainer);
+    assertEquals("NorthwindEntities", entityContainer.getName());
+  }
+
+  /**
+   * Tests Example 85 from CSDL specification.
+   */
+  @Test
+  public void fromdoc1() {
+    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
+        toMetadata(getClass().getResourceAsStream("fromdoc1-metadata.xml"));
+    assertNotNull(metadata);
+
+    assertFalse(metadata.getReferences().isEmpty());
+    assertEquals("Org.OData.Measures.V1", metadata.getReferences().get(1).getIncludes().get(0).getNamespace());
+
+    final CsdlEntityType product = metadata.getSchema(0).getEntityType("Product");
+    assertTrue(product.hasStream());
+    assertEquals("UoM.ISOCurrency", product.getProperty("Price").getAnnotations().get(0).getTerm());
+    assertEquals("Products", product.getNavigationProperty("Supplier").getPartner());
+
+    final CsdlEntityType category = metadata.getSchema(0).getEntityType("Category");
+    assertNotNull(category);
+
+    final CsdlComplexType address = metadata.getSchema(0).getComplexType("Address");
+    assertFalse(address.getNavigationProperty("Country").getReferentialConstraints().isEmpty());
+    assertEquals("Name",
+        address.getNavigationProperty("Country").getReferentialConstraints().get(0).getReferencedProperty());
+
+    final CsdlFunction productsByRating = metadata.getSchema(0).getFunctions("ProductsByRating").get(0);
+    assertNotNull(productsByRating.getParameter("Rating"));
+    assertEquals("Edm.Int32", productsByRating.getParameter("Rating").getType());
+    assertEquals("ODataDemo.Product", productsByRating.getReturnType().getType());
+    assertTrue(productsByRating.getReturnType().isCollection());
+
+    final CsdlSingleton contoso = metadata.getSchema(0).getEntityContainer().getSingleton("Contoso");
+    assertNotNull(contoso);
+    assertFalse(contoso.getNavigationPropertyBindings().isEmpty());
+    assertEquals("Products", contoso.getNavigationPropertyBindings().get(0).getPath());
+
+    final CsdlFunctionImport functionImport = metadata.getSchema(0).getEntityContainer().
+        getFunctionImport("ProductsByRating");
+    assertNotNull(functionImport);
+    assertEquals(metadata.getSchema(0).getNamespace() + "." + productsByRating.getName(),
+        functionImport.getFunction());
+
+    // Now let's go high-level
+    final Edm edm = getClient().getReader().readMetadata(getClass().getResourceAsStream("fromdoc1-metadata.xml"));
+    assertNotNull(edm);
+
+    List<EdmSchema> schemaList = edm.getSchemas();
+    assertNotNull(schemaList);
+    assertEquals(1, schemaList.size());
+    EdmSchema schema = schemaList.get(0);
+
+    EdmEntityContainer demoService = schema.getEntityContainer();
+    assertNotNull(demoService);
+    for (EdmFunction function : schema.getFunctions()) {
+      final EdmFunctionImport fi = demoService.getFunctionImport(function.getName());
+      assertNotNull(fi);
+      assertEquals(demoService.getEntitySet("Products"), fi.getReturnedEntitySet());
+
+      final EdmFunction edmFunction =
+          edm.getUnboundFunction(
+              new FullQualifiedName(metadata.getSchema(0).getNamespace(), "ProductsByRating"), function
+                  .getParameterNames());
+      assertNotNull(edmFunction);
+      assertEquals(edmFunction.getName(), fi.getUnboundFunction(function.getParameterNames()).getName());
+      assertEquals(edmFunction.getNamespace(), fi.getUnboundFunction(function.getParameterNames()).getNamespace());
+      assertEquals(edmFunction.getParameterNames(), fi.getUnboundFunction(function.getParameterNames())
+          .getParameterNames());
+      assertEquals(edmFunction.getReturnType().getType().getName(),
+          fi.getUnboundFunction(function.getParameterNames()).getReturnType().getType().getName());
+      assertEquals(edmFunction.getReturnType().getType().getNamespace(),
+          fi.getUnboundFunction(function.getParameterNames()).getReturnType().getType().getNamespace());
+    }
+
+    final EdmTypeDefinition weight = edm.getTypeDefinition(new FullQualifiedName("ODataDemo", "Weight"));
+    assertNotNull(weight);
+    assertEquals(EdmInt32.getInstance(), weight.getUnderlyingType());
+    assertFalse(weight.getAnnotations().isEmpty());
+    assertEquals("Kilograms", weight.getAnnotations().get(0).getExpression().asConstant().getValueAsString());
+  }
+
+  /**
+   * Tests Example 86 from CSDL specification.
+   */
+  @Test
+  public void fromdoc2() {
+    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML)
+        .toMetadata(getClass().getResourceAsStream("fromdoc2-metadata.xml"));
+    assertNotNull(metadata);
+
+    // Check displayName
+    final CsdlAnnotation displayName = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Supplier").
+        getAnnotation("Vocabulary1.DisplayName");
+    assertNotNull(displayName);
+    assertTrue(displayName.getExpression().isDynamic());
+
+    assertTrue(displayName.getExpression().asDynamic().isApply());
+    final Apply apply = displayName.getExpression().asDynamic().asApply();
+    assertEquals(Constants.CANONICAL_FUNCTION_CONCAT, apply.getFunction());
+    assertEquals(3, apply.getParameters().size());
+
+    Path path = (Path) apply.getParameters().get(0);
+    assertEquals("Name", path.getValue());
+
+    ConstantAnnotationExpression expression =
+        (ConstantAnnotationExpression) apply.getParameters().get(1);
+    assertEquals(" in ", expression.getValue());
+    assertEquals(ConstantAnnotationExpression.Type.String, expression.getType());
+
+    Path thirdArg = (Path) apply.getParameters().get(2);
+    assertEquals("Address/CountryName", thirdArg.getValue());
+
+    // Check Tags
+    final CsdlAnnotation tags = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Product").
+        getAnnotation("Vocabulary1.Tags");
+    assertNotNull(tags);
+    assertTrue(tags.getExpression().isDynamic());
+
+    assertTrue(tags.getExpression().asDynamic().isCollection());
+    final Collection collection = tags.getExpression().asDynamic().asCollection();
+    assertEquals(1, collection.getItems().size());
+    assertEquals(ConstantAnnotationExpression.Type.String, collection.getItems().get(0).asConstant().getType());
+    assertEquals("MasterData", collection.getItems().get(0).asConstant().getValue());
+  }
+
+  /**
+   * Various annotation examples taken from CSDL specification.
+   */
+  @Test
+  public void fromdoc3() {
+    final Edm edm = getClient().getReader().readMetadata(getClass().getResourceAsStream("fromdoc3-metadata.xml"));
+    assertNotNull(edm);
+
+    final EdmAnnotations group = edm.getSchema("Annotations").getAnnotationGroups().get(0);
+    assertNotNull(group);
+
+    final EdmAnnotation time1 = group.getAnnotations().get(0);
+    assertEquals("Edm.TimeOfDay", time1.getExpression().asConstant().getValue().getType());
+
+    final EdmAnnotation time2 = group.getAnnotations().get(1);
+    assertEquals("Edm.TimeOfDay", time2.getExpression().asConstant().getValue().getType());
+  }
+
+  /**
+   * Various annotation examples taken from CSDL specification.
+   */
+  @Test
+  public void fromdoc4() {
+    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
+        toMetadata(getClass().getResourceAsStream("fromdoc4-metadata.xml"));
+    assertNotNull(metadata);
+
+    final CsdlAnnotations group = metadata.getSchema(0).getAnnotationGroups().get(0);
+    assertNotNull(group);
+
+    CsdlAnnotation annotation = group.getAnnotations().get(0);
+    assertTrue(annotation.getExpression().isDynamic());
+    assertTrue(annotation.getExpression().asDynamic().isCast());
+    assertEquals("Edm.Decimal", annotation.getExpression().asDynamic().asCast().getType());
+
+    annotation = group.getAnnotation("And");
+    assertTrue(annotation.getExpression().isDynamic());
+    assertTrue(annotation.getExpression().asDynamic().isTwoParamsOp());
+    assertEquals(TwoParamsOpDynamicAnnotationExpression.Type.And,
+        annotation.getExpression().asDynamic().asTwoParamsOp().getType());
+    assertTrue(annotation.getExpression().asDynamic().asTwoParamsOp().getLeftExpression().isPath());
+
+    annotation = group.getAnnotation("Vocab.Supplier");
+    assertNotNull(annotation);
+    assertTrue(annotation.getExpression().isDynamic());
+    assertTrue(annotation.getExpression().asDynamic().isUrlRef());
+    final UrlRef urlRef = annotation.getExpression().asDynamic().asUrlRef();
+    assertTrue(urlRef.getValue().isDynamic());
+    assertTrue(urlRef.getValue().asDynamic().isApply());
+
+    // Now let's go high-level
+    final Edm edm = getClient().getReader().readMetadata(getClass().getResourceAsStream("fromdoc4-metadata.xml"));
+    assertNotNull(edm);
+
+    final EdmAnnotations edmGroup = edm.getSchemas().get(0).getAnnotationGroups().get(0);
+    assertNotNull(edmGroup);
+
+    EdmAnnotation edmAnnotation = edmGroup.getAnnotations().get(0);
+    assertTrue(edmAnnotation.getExpression().isDynamic());
+    assertTrue(edmAnnotation.getExpression().asDynamic().isCast());
+    assertEquals(EdmDecimal.getInstance(), edmAnnotation.getExpression().asDynamic().asCast().getType());
+
+    edmAnnotation = edmGroup.getAnnotations().get(1);
+    assertTrue(edmAnnotation.getExpression().isDynamic());
+    assertTrue(edmAnnotation.getExpression().asDynamic().isAnd());
+    assertTrue(edmAnnotation.getExpression().asDynamic().asAnd().getLeftExpression().isPath());
+
+    edmAnnotation = edmGroup.getAnnotations().get(edmGroup.getAnnotations().size() - 2);
+    assertNotNull(edmAnnotation);
+    assertTrue(edmAnnotation.getExpression().isDynamic());
+    assertTrue(edmAnnotation.getExpression().asDynamic().isUrlRef());
+    final EdmUrlRef edmUrlRef = edmAnnotation.getExpression().asDynamic().asUrlRef();
+    assertTrue(edmUrlRef.getValue().isDynamic());
+    assertTrue(edmUrlRef.getValue().asDynamic().isApply());
+  }
+
+  @Test
+  public void metadataWithCapabilities() throws Exception {
+    InputStream input = getClass().getResourceAsStream("Metadata-With-Capabilities.xml");
+    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
+            toMetadata(input);
+
+    CsdlSchema schema = metadata.getSchema("Capabilities");
+    assertNotNull(schema);
+    assertEquals(23, schema.getTerms().size());
+
+    final CsdlTerm deleteRestrictions = schema.getTerm("DeleteRestrictions");
+    assertNotNull(deleteRestrictions);
+    assertEquals("Capabilities.DeleteRestrictionsType", deleteRestrictions.getType());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/PrimitiveValueTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/PrimitiveValueTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/PrimitiveValueTest.java
new file mode 100644
index 0000000..f46f272
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/PrimitiveValueTest.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.junit.Test;
+
+import java.util.Calendar;
+
+import static org.junit.Assert.assertEquals;
+
+public class PrimitiveValueTest extends AbstractTest {
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  @Test
+  public void timeOfDay() throws EdmPrimitiveTypeException {
+    final Calendar expected = Calendar.getInstance();
+    expected.clear();
+    expected.set(2013, 0, 10, 21, 45, 17);
+
+    final ClientValue value = getClient().getObjectFactory().newPrimitiveValueBuilder().
+            setType(EdmPrimitiveTypeKind.TimeOfDay).setValue(expected).build();
+    assertEquals(EdmPrimitiveTypeKind.TimeOfDay, value.asPrimitive().getTypeKind());
+
+    final Calendar actual = value.asPrimitive().toCastValue(Calendar.class);
+    assertEquals(expected.get(Calendar.HOUR), actual.get(Calendar.HOUR));
+    assertEquals(expected.get(Calendar.MINUTE), actual.get(Calendar.MINUTE));
+    assertEquals(expected.get(Calendar.SECOND), actual.get(Calendar.SECOND));
+
+    assertEquals("21:45:17", value.asPrimitive().toString());
+  }
+
+  @Test
+  public void Date() throws EdmPrimitiveTypeException {
+    final Calendar expected = Calendar.getInstance();
+    expected.clear();
+    expected.set(2013, 0, 10);
+
+    final ClientValue value = getClient().getObjectFactory().newPrimitiveValueBuilder().
+            setType(EdmPrimitiveTypeKind.Date).setValue(expected).build();
+    assertEquals(EdmPrimitiveTypeKind.Date, value.asPrimitive().getTypeKind());
+
+    final Calendar actual = value.asPrimitive().toCastValue(Calendar.class);
+    assertEquals(expected.get(Calendar.YEAR), actual.get(Calendar.YEAR));
+    assertEquals(expected.get(Calendar.MONTH), actual.get(Calendar.MONTH));
+    assertEquals(expected.get(Calendar.DATE), actual.get(Calendar.DATE));
+
+    assertEquals("2013-01-10", value.asPrimitive().toString());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/PropertyTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/PropertyTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/PropertyTest.java
new file mode 100644
index 0000000..a545dc2
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/PropertyTest.java
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.InputStream;
+import java.util.Iterator;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.client.api.serialization.ODataDeserializerException;
+import org.apache.olingo.client.api.serialization.ODataSerializerException;
+import org.junit.Test;
+
+public class PropertyTest extends AbstractTest {
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  private void _enum(final ContentType contentType) throws ODataDeserializerException, ODataSerializerException {
+    final InputStream input = getClass().getResourceAsStream("Products_5_SkinColor." + getSuffix(contentType));
+    final ClientProperty property = getClient().getReader().readProperty(input, contentType);
+    assertNotNull(property);
+    assertTrue(property.hasEnumValue());
+
+    final ClientProperty written = getClient().getReader().readProperty(
+            getClient().getWriter().writeProperty(property, contentType), contentType);
+    // This is needed because type information gets lost with serialization
+    if (contentType.isCompatible(ContentType.APPLICATION_XML)) {
+      final ClientProperty comparable = getClient().getObjectFactory().newEnumProperty(property.getName(),
+              getClient().getObjectFactory().
+              newEnumValue(property.getEnumValue().getTypeName(), written.getEnumValue().getValue()));
+
+      assertEquals(property, comparable);
+    }
+  }
+
+  @Test
+  public void xmlEnum() throws Exception {
+    _enum(ContentType.APPLICATION_XML);
+  }
+
+  @Test
+  public void jsonEnum() throws Exception {
+    _enum(ContentType.JSON);
+  }
+
+  private void complex(final ContentType contentType) throws ODataDeserializerException, ODataSerializerException {
+    final InputStream input = getClass().getResourceAsStream("Employees_3_HomeAddress." + getSuffix(contentType));
+    final ClientProperty property = getClient().getReader().readProperty(input, contentType);
+    assertNotNull(property);
+    assertTrue(property.hasComplexValue());
+    assertEquals(3, property.getComplexValue().size());
+
+    final ClientProperty written = getClient().getReader().readProperty(
+            getClient().getWriter().writeProperty(property, contentType), contentType);
+    // This is needed because type information gets lost with JSON serialization
+    final ClientComplexValue typedValue = getClient().getObjectFactory().
+            newComplexValue(property.getComplexValue().getTypeName());
+    for (final Iterator<ClientProperty> itor = written.getComplexValue().iterator(); itor.hasNext();) {
+      final ClientProperty prop = itor.next();
+      typedValue.add(prop);
+    }
+    final ClientProperty comparable = getClient().getObjectFactory().
+            newComplexProperty(property.getName(), typedValue);
+
+    assertEquals(property, comparable);
+  }
+
+  @Test
+  public void xmlComplex() throws Exception {
+    complex(ContentType.APPLICATION_XML);
+  }
+
+  @Test
+  public void jsonComplex() throws Exception {
+    complex(ContentType.JSON);
+  }
+
+  private void collection(final ContentType contentType) throws ODataDeserializerException, ODataSerializerException {
+    final InputStream input = getClass().getResourceAsStream("Products_5_CoverColors." + getSuffix(contentType));
+    final ClientProperty property = getClient().getReader().readProperty(input, contentType);
+    assertNotNull(property);
+    assertTrue(property.hasCollectionValue());
+    assertEquals(3, property.getCollectionValue().size());
+
+    final ClientProperty written = getClient().getReader().readProperty(
+            getClient().getWriter().writeProperty(property, contentType), contentType);
+    // This is needed because type information gets lost with JSON serialization
+    if(contentType.isCompatible(ContentType.APPLICATION_XML)) {
+      final ClientCollectionValue<ClientValue> typedValue = getClient().getObjectFactory().
+              newCollectionValue(property.getCollectionValue().getTypeName());
+      for (final Iterator<ClientValue> itor = written.getCollectionValue().iterator(); itor.hasNext();) {
+        final ClientValue value = itor.next();
+        typedValue.add(value);
+      }
+      final ClientProperty comparable = getClient().getObjectFactory().
+              newCollectionProperty(property.getName(), typedValue);
+
+      assertEquals(property, comparable);
+    }
+  }
+
+  @Test
+  public void xmlCollection() throws Exception {
+    collection(ContentType.APPLICATION_XML);
+  }
+
+  @Test
+  public void jsonCollection() throws Exception {
+    collection(ContentType.JSON);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/ServiceDocumentTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/ServiceDocumentTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/ServiceDocumentTest.java
new file mode 100644
index 0000000..5b7c246
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/ServiceDocumentTest.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URI;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.data.ServiceDocument;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.client.api.serialization.ODataDeserializerException;
+import org.junit.Test;
+
+public class ServiceDocumentTest extends AbstractTest {
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  private String getFileExtension(final ContentType contentType) {
+    return contentType.isCompatible(ContentType.APPLICATION_XML) ? "xml" : "json";
+  }
+
+  private ClientServiceDocument parse(final ContentType contentType) throws ODataDeserializerException {
+    ResWrap<ServiceDocument> service = getClient().getDeserializer(contentType).toServiceDocument(
+        getClass().getResourceAsStream("serviceDocument." + getFileExtension(contentType)));
+
+    assertEquals(URI.create("http://host/service/$metadata"), service.getContextURL());
+    assertEquals("W/\"MjAxMy0wNS0xM1QxNDo1NFo=\"", service.getMetadataETag());
+
+    final ClientServiceDocument serviceDocument = getClient().getBinder().getODataServiceDocument(service.getPayload());
+    assertNotNull(serviceDocument);
+
+    assertTrue(serviceDocument.getEntitySetNames().contains("Order Details"));
+    assertEquals(URI.create("http://host/service/TopProducts"),
+        serviceDocument.getFunctionImportURI("TopProducts"));
+    assertEquals(URI.create("http://host/HR/"),
+        serviceDocument.getRelatedServiceDocumentsURIs().iterator().next());
+
+    return serviceDocument;
+  }
+
+  @Test
+  public void json() throws Exception {
+    parse(ContentType.JSON);
+  }
+
+  @Test
+  public void xml() throws Exception {
+    parse(ContentType.APPLICATION_XML);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/FilterFactoryTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/FilterFactoryTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/FilterFactoryTest.java
new file mode 100644
index 0000000..1d26f81
--- /dev/null
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/FilterFactoryTest.java
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.uri;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.uri.FilterArgFactory;
+import org.apache.olingo.client.api.uri.FilterFactory;
+import org.apache.olingo.client.api.uri.URIFilter;
+import org.apache.olingo.client.core.AbstractTest;
+import org.apache.olingo.commons.api.Constants;
+import org.apache.olingo.commons.api.edm.EdmEnumType;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.core.edm.EdmEnumTypeImpl;
+import org.junit.Test;
+
+public class FilterFactoryTest extends AbstractTest {
+
+  @Override
+  protected ODataClient getClient() {
+    return v4Client;
+  }
+
+  private FilterFactory getFilterFactory() {
+    return getClient().getFilterFactory();
+  }
+
+  private FilterArgFactory getFilterArgFactory() {
+    return getFilterFactory().getArgFactory();
+  }
+
+  @Test
+  public void has() {
+    final EdmEnumType pattern =
+        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new CsdlEnumType());
+    final URIFilter filter = getFilterFactory().has(getFilterArgFactory().property("style"), pattern, "Yellow");
+
+    assertEquals("(style has Sales.Pattern'Yellow')", filter.build());
+  }
+
+  @Test
+  public void contains() {
+    final URIFilter filter = getFilterFactory().match(getFilterArgFactory().contains(
+        getFilterArgFactory().property("CompanyName"), getFilterArgFactory().literal("Alfreds")));
+
+    assertEquals("contains(CompanyName,'Alfreds')", filter.build());
+  }
+
+  @Test
+  public void maxdatetime() {
+    final URIFilter filter = getFilterFactory().eq(
+        getFilterArgFactory().property("EndTime"),
+        getFilterArgFactory().maxdatetime());
+
+    assertEquals("(EndTime eq maxdatetime())", filter.build());
+  }
+
+  @Test
+  public void any() {
+    final URIFilter filter = getFilterFactory().match(
+        getFilterArgFactory().any(getFilterArgFactory().property("Items"),
+            getFilterFactory().gt("d:d/Quantity", 100)));
+
+    assertEquals("Items/any(d:d/Quantity gt 100)", filter.build());
+  }
+
+  @Test
+  public void issueOLINGO357() throws UnsupportedEncodingException {
+    final Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT-8"));
+    calendar.clear();
+    calendar.set(2011, 2, 8, 14, 21, 12);
+
+    final URIFilter filter = getFilterFactory().ge("OrderDate", calendar);
+    assertEquals("(OrderDate ge " + URLEncoder.encode("2011-03-08T14:21:12-08:00", Constants.UTF8) + ")",
+        filter.build());
+  }
+
+}


[2/8] olingo-odata4 git commit: [OLINGO-431] Delete unnecessary v4 in package name

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/annotated.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/annotated.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/annotated.xml
deleted file mode 100644
index a3b06a9..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/annotated.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<entry xml:base="http://odatae2etest.azurewebsites.net/javatest/DefaultService/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Products/$entity">
-  <id>http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)</id>
-  <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
-  <link rel="edit" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)"/>
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Parent"/>
-	<link rel="http://docs.oasis-open.org/odata/ns/related/Orders"
-		type="application/atom+xml;type=feed" title="Orders">
-		<m:inline><feed><m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Orders"/></feed></m:inline>
-    <m:annotation term="com.contoso.display.style" m:type="#com.contoso.display.styleType">
-      <d:order m:type="Int32">2</d:order>
-    </m:annotation>
-  </link>
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Customers(PersonID=1)/Company"/>
-  <title/>
-  <updated>2014-03-31T09:35:14Z</updated>
-  <author>
-    <name/>
-  </author>
-  <content type="application/xml">
-    <m:properties>
-      <d:PersonID m:type="Int32">1</d:PersonID>
-      <d:FirstName>Bob</d:FirstName>
-      <d:LastName>Cat</d:LastName>
-      <m:annotation term="com.contoso.display.style" target="LastName" m:type="#com.contoso.display.styleType">
-        <d:title m:type="Boolean">true</d:title>
-        <d:order m:type="Int32">1</d:order>
-      </m:annotation>      
-      <d:MiddleName m:null="true"/>
-      <d:HomeAddress m:type="#Microsoft.Test.OData.Services.ODataWCFService.HomeAddress">
-        <d:Street>1 Microsoft Way</d:Street>
-        <d:City>London</d:City>
-        <d:PostalCode>98052</d:PostalCode>
-        <d:FamilyName>Cats</d:FamilyName>
-      </d:HomeAddress>
-      <d:Home m:type="GeographyPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pos>32.1 23.1</gml:pos>
-        </gml:Point>
-      </d:Home>
-      <d:Numbers m:type="#Collection(String)">
-        <m:element>111-111-1111</m:element>
-      </d:Numbers>
-      <d:Emails m:type="#Collection(String)">
-        <m:element>abc@abc.com</m:element>
-      </d:Emails>
-      <d:City>London</d:City>
-      <d:Birthday m:type="DateTimeOffset">1957-04-03T00:00:00Z</d:Birthday>
-      <d:TimeBetweenLastTwoOrders m:type="Duration">PT0.0000001S</d:TimeBetweenLastTwoOrders>
-    </m:properties>
-  </content>
-  <m:annotation term="com.contoso.display.highlight" m:type="Boolean">true</m:annotation>
-  <m:annotation term="com.contoso.PersonalInfo.PhoneNumbers" m:type="#Collection(String)">
-    <m:element>(203)555-1718</m:element>
-    <m:element>(203)555-1719</m:element>
-  </m:annotation>  
-</entry>
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/atom_cleanup.xsl
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/atom_cleanup.xsl b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/atom_cleanup.xsl
deleted file mode 100644
index f80a315..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/atom_cleanup.xsl
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns="http://www.w3.org/2005/Atom"
-                xmlns:atom="http://www.w3.org/2005/Atom"
-                xmlns:m="http://docs.oasis-open.org/odata/ns/metadata"
-                version="1.0">
-
-  <xsl:template match="atom:updated"/>
-  <xsl:template match="atom:author"/>
-  <xsl:template match="atom:summary"/>
-  <xsl:template match="atom:title">
-    <xsl:if test="string-length(.) &gt; 0">
-      <title type="{@type}">
-        <xsl:apply-templates/>
-      </title>
-    </xsl:if>
-  </xsl:template>
-  <xsl:template match="atom:link[@rel = 'self' or @rel = 'edit' or @rel = 'edit-media']"/>
-  
-  <xsl:template match="m:action"/>
-
-  <xsl:template match="@*[name() = 'm:etag' or name() = 'm:context' or name() = 'm:metadata-etag']"/>
-
-  <xsl:template match="node()|@*">
-    <xsl:copy>
-      <xsl:apply-templates select="@*|node()"/>
-    </xsl:copy>
-  </xsl:template>
-</xsl:stylesheet>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/collectionOfEntityReferences.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/collectionOfEntityReferences.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/collectionOfEntityReferences.json
deleted file mode 100644
index 7646ee8..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/collectionOfEntityReferences.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Collection($ref)",
-  "value": [
-    {
-      "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=5)"
-    },
-    {
-      "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=6)"
-    }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/collectionOfEntityReferences.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/collectionOfEntityReferences.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/collectionOfEntityReferences.xml
deleted file mode 100644
index 9534270..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/collectionOfEntityReferences.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<feed xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
-      m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#Collection($ref)" 
-      xmlns="http://www.w3.org/2005/Atom">
-  <m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=5)"/>
-  <m:ref id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/OrderDetails(OrderID=7,ProductID=6)"/>
-</feed>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/crossjoin.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/crossjoin.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/crossjoin.json
deleted file mode 100644
index 248ae34..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/crossjoin.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "@odata.context": "http://host/service/$metadata#Collection(Edm.ComplexType)",
-  "value":
-          [
-            {
-              "Products@odata.navigationLink": "Products(0)",
-              "Sales@odata.navigationLink": "Sales(42)"
-            },
-            {
-              "Products@odata.navigationLink": "Products(0)",
-              "Sales@odata.navigationLink": "Sales(57)"
-            },
-            {
-              "Products@odata.navigationLink": "Products(99)",
-              "Sales@odata.navigationLink": "Sales(21)"
-            }
-          ]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/delta.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/delta.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/delta.json
deleted file mode 100644
index d8e8f54..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/delta.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-  "@odata.context": "http://host/service/$metadata#Customers/$delta",
-  "@odata.count": 5,
-  "value":
-          [
-            {
-              "@odata.id": "Customers('BOTTM')'",
-              "ContactName": "Susan Halvenstern"
-            },
-            {
-              "@odata.context": "#Customers/$deletedLink",
-              "source": "Customers('ALFKI')",
-              "relationship": "Orders",
-              "target": "Orders(10643)"
-            },
-            {
-              "@odata.context": "#Customers/$link",
-              "source": "Customers('BOTTM')",
-              "relationship": "Orders",
-              "target": "Orders(10645)"
-            },
-            {
-              "@odata.context": "#Orders/$entity",
-              "@odata.id": "Orders(10643)",
-              "ShippingAddress": {
-                "Street": "23 Tsawassen Blvd.",
-                "City": " Tsawassen ",
-                "Region": "BC",
-                "PostalCode": "T2F 8M4"
-              }
-            },
-            {
-              "@odata.context": "#Customers/$deletedEntity",
-              "id": "Customers('ANTON')",
-              "reason": "deleted"
-            }
-          ],
-  "@odata.deltaLink": "Customers?$expand=Orders&$deltatoken=8015"
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/delta.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/delta.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/delta.xml
deleted file mode 100644
index df65b49..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/delta.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<feed xml:base="http://host/service/"
-      xmlns:data="http://docs.oasis-open.org/odata/ns/data"
-      xmlns:metadata="http://docs.oasis-open.org/odata/ns/metadata"
-      xmlns="http://www.w3.org/2005/Atom"
-      xmlns:at="http://purl.org/atompub/tombstones/1.0"
-      metadata:context="$metadata#Customers/$delta">
-  <title type="text">Customers</title>
-  <id>http://host/service/Customers</id>
-  <updated>2012-11-27T15:38:25Z</updated>
-  <metadata:count>5</metadata:count>
-  <entry>
-    <id>http://host/service/Customers('BOTTM')</id>
-    <title type="text" />
-    <updated>2012-11-17T15:38:22Z</updated>
-    <author>
-      <name />
-    </author>
-    <link rel="edit" title="Customer" href="Customers('BOTTM')"/>
-    <category term="#Model.Customer"
-          scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
-    <content type="application/xml">
-      <metadata:properties>
-        <data:ContactName>Susan Halvenstern</data:ContactName>
-      </metadata:properties>
-    </content>
-  </entry>
-  <metadata:deleted-link
-    metadata:context="$metadata#Customers/$deleted-link"
-    source="http://host/service/Customers('ALFKI')"
-    relationship="Orders"
-    target="http://host/service/Orders(10643)"/>
-  <metadata:link
-    metadata:context="$metadata#Customers/$link"
-    source="http://host/service/Customers('BOTTM')"
-    relationship="Orders"
-    target="http://host/service/Orders(10645)"/>
-  <entry metadata:context="$metadata#Orders/$entity">
-    <id>http://host/service/Orders(10643)</id>
-    <title type="text" />
-    <updated>2012-11-27T15:38:24Z</updated>
-    <author>
-      <name/>
-    </author>
-    <link rel="edit" title="Order" href="Orders(10643)" />
-    <category term="#Model.Order"
-          scheme="http://docs.oasis-open.org/odata/ns/scheme" />
-    <content type="application/xml">
-      <metadata:properties>
-        <data:ShippingAddress>
-          <data:Street>23 Tsawassen Blvd.</data:Street>
-          <data:City>Tsawassen</data:City>
-          <data:Region>BC</data:Region>
-          <data:PostalCode>T2F 8M4</data:PostalCode>
-        </data:ShippingAddress>
-      </metadata:properties>
-    </content>
-  </entry>
-  <at:deleted-entry
-    metadata:context="$metadata#Customers/$deleted-entry"
-    ref="http://host/service/Customers('ANTON')"
-    when="2012-11-27T15:38:25Z"
-    metadata:reason="deleted"/>
-  <link
-    rel="http://docs.oasis-open.org/odata/ns/delta"
-    href="http://host/service/Customers?$expand=Orders&amp;$deltatoken=8015"/>
-</feed>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/demo-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/demo-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/demo-metadata.xml
deleted file mode 100644
index 1f75859..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/demo-metadata.xml
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
-  <edmx:DataServices>
-    <Schema Namespace="ODataDemo" xmlns="http://docs.oasis-open.org/odata/ns/edm">
-      <EntityType Name="Product">
-        <Key>
-          <PropertyRef Name="ID"/>
-        </Key>
-        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-        <Property Name="Description" Type="Edm.String"/>
-        <Property Name="ReleaseDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <Property Name="DiscontinuedDate" Type="Edm.DateTimeOffset"/>
-        <Property Name="Rating" Type="Edm.Int16" Nullable="false"/>
-        <Property Name="Price" Type="Edm.Double" Nullable="false"/>
-        <NavigationProperty Name="Categories" Type="Collection(ODataDemo.Category)" Partner="Products"/>
-        <NavigationProperty Name="Supplier" Type="ODataDemo.Supplier" Partner="Products"/>
-        <NavigationProperty Name="ProductDetail" Type="ODataDemo.ProductDetail" Partner="Product"/>
-      </EntityType>
-      <EntityType Name="FeaturedProduct" BaseType="ODataDemo.Product">
-        <NavigationProperty Name="Advertisement" Type="ODataDemo.Advertisement" Partner="FeaturedProduct"/>
-      </EntityType>
-      <EntityType Name="ProductDetail">
-        <Key>
-          <PropertyRef Name="ProductID"/>
-        </Key>
-        <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Details" Type="Edm.String"/>
-        <NavigationProperty Name="Product" Type="ODataDemo.Product" Partner="ProductDetail"/>
-      </EntityType>
-      <EntityType Name="Category" OpenType="true">
-        <Key>
-          <PropertyRef Name="ID"/>
-        </Key>
-        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-        <NavigationProperty Name="Products" Type="Collection(ODataDemo.Product)" Partner="Categories"/>
-      </EntityType>
-      <EntityType Name="Supplier">
-        <Key>
-          <PropertyRef Name="ID"/>
-        </Key>
-        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-        <Property Name="Address" Type="ODataDemo.Address"/>
-        <Property Name="Location" Type="Edm.GeographyPoint" SRID="Variable"/>
-        <Property Name="Concurrency" Type="Edm.Int32" ConcurrencyMode="Fixed" Nullable="false"/>
-        <NavigationProperty Name="Products" Type="Collection(ODataDemo.Product)" Partner="Supplier"/>
-      </EntityType>
-      <ComplexType Name="Address">
-        <Property Name="Street" Type="Edm.String"/>
-        <Property Name="City" Type="Edm.String"/>
-        <Property Name="State" Type="Edm.String"/>
-        <Property Name="ZipCode" Type="Edm.String"/>
-        <Property Name="Country" Type="Edm.String"/>
-      </ComplexType>
-      <EntityType Name="Person">
-        <Key>
-          <PropertyRef Name="ID"/>
-        </Key>
-        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-        <NavigationProperty Name="PersonDetail" Type="ODataDemo.PersonDetail" Partner="Person"/>
-      </EntityType>
-      <EntityType Name="Customer" BaseType="ODataDemo.Person">
-        <Property Name="TotalExpense" Type="Edm.Decimal" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="Employee" BaseType="ODataDemo.Person">
-        <Property Name="EmployeeID" Type="Edm.Int64" Nullable="false"/>
-        <Property Name="HireDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <Property Name="Salary" Type="Edm.Single" Nullable="false"/>
-      </EntityType>
-      <EntityType Name="PersonDetail">
-        <Key>
-          <PropertyRef Name="PersonID"/>
-        </Key>
-        <Property Name="PersonID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Age" Type="Edm.Byte" Nullable="false"/>
-        <Property Name="Gender" Type="Edm.Boolean" Nullable="false"/>
-        <Property Name="Phone" Type="Edm.String"/>
-        <Property Name="Address" Type="ODataDemo.Address"/>
-        <Property Name="Photo" Type="Edm.Stream" Nullable="false"/>
-        <NavigationProperty Name="Person" Type="ODataDemo.Person" Partner="PersonDetail"/>
-      </EntityType>
-      <EntityType Name="Advertisement" HasStream="true">
-        <Key>
-          <PropertyRef Name="ID"/>
-        </Key>
-        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-        <Property Name="AirDate" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <NavigationProperty Name="FeaturedProduct" Type="ODataDemo.FeaturedProduct" Partner="Advertisement"/>
-      </EntityType>
-      <EntityContainer Name="DemoService">
-        <EntitySet Name="Products" EntityType="ODataDemo.Product">
-          <NavigationPropertyBinding Path="ODataDemo.FeaturedProduct/Advertisement" Target="Advertisements"/>
-          <NavigationPropertyBinding Path="Categories" Target="Categories"/>
-          <NavigationPropertyBinding Path="Supplier" Target="Suppliers"/>
-          <NavigationPropertyBinding Path="ProductDetail" Target="ProductDetails"/>
-        </EntitySet>
-        <EntitySet Name="ProductDetails" EntityType="ODataDemo.ProductDetail">
-          <NavigationPropertyBinding Path="Product" Target="Products"/>
-        </EntitySet>
-        <EntitySet Name="Categories" EntityType="ODataDemo.Category">
-          <NavigationPropertyBinding Path="Products" Target="Products"/>
-        </EntitySet>
-        <EntitySet Name="Suppliers" EntityType="ODataDemo.Supplier">
-          <NavigationPropertyBinding Path="Products" Target="Products"/>
-        </EntitySet>
-        <EntitySet Name="Persons" EntityType="ODataDemo.Person">
-          <NavigationPropertyBinding Path="PersonDetail" Target="PersonDetails"/>
-        </EntitySet>
-        <EntitySet Name="PersonDetails" EntityType="ODataDemo.PersonDetail">
-          <NavigationPropertyBinding Path="Person" Target="Persons"/>
-        </EntitySet>
-        <EntitySet Name="Advertisements" EntityType="ODataDemo.Advertisement">
-          <NavigationPropertyBinding Path="FeaturedProduct" Target="Products"/>
-        </EntitySet>
-      </EntityContainer>
-      <Annotations Target="ODataDemo.DemoService">
-        <Annotation Term="Org.OData.Display.V1.Description" String="This is a sample OData service with vocabularies"/>
-      </Annotations>
-      <Annotations Target="ODataDemo.Product">
-        <Annotation Term="Org.OData.Display.V1.Description" String="All Products available in the online store"/>
-      </Annotations>
-      <Annotations Target="ODataDemo.Product/Name">
-        <Annotation Term="Org.OData.Display.V1.DisplayName" String="Product Name"/>
-      </Annotations>
-      <Annotations Target="ODataDemo.DemoService/Suppliers">
-        <Annotation Term="Org.OData.Publication.V1.PublisherName" String="Microsoft Corp."/>
-        <Annotation Term="Org.OData.Publication.V1.PublisherId" String="MSFT"/>
-        <Annotation Term="Org.OData.Publication.V1.Keywords" String="Inventory, Supplier, Advertisers, Sales, Finance"/>
-        <Annotation Term="Org.OData.Publication.V1.AttributionUrl" String="http://www.odata.org/"/>
-        <Annotation Term="Org.OData.Publication.V1.AttributionDescription" String="All rights reserved"/>
-        <Annotation Term="Org.OData.Publication.V1.DocumentationUrl " String="http://www.odata.org/"/>
-        <Annotation Term="Org.OData.Publication.V1.TermsOfUseUrl" String="All rights reserved"/>
-        <Annotation Term="Org.OData.Publication.V1.PrivacyPolicyUrl" String="http://www.odata.org/"/>
-        <Annotation Term="Org.OData.Publication.V1.LastModified" String="4/2/2013"/>
-        <Annotation Term="Org.OData.Publication.V1.ImageUrl " String="http://www.odata.org/"/>
-      </Annotations>
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.collection.complex.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.collection.complex.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.collection.complex.json
deleted file mode 100644
index 0bf131e..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.collection.complex.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "PhoneNumbers": [
-    {
-      "Number": "425-555-1212",
-      "Type": "Home"
-    },
-    {
-      "@odata.type": "#Model.CellPhoneNumber",
-      "Number": "425-555-0178",
-      "Type": "Cell",
-      "Carrier": "Sprint"
-    }
-  ]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.collection.primitive.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.collection.primitive.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.collection.primitive.json
deleted file mode 100644
index dc811b4..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.collection.primitive.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "@odata.context": "http://host/service/$metadata#Customers/$entity",
-  "EmailAddresses": [
-    "Julie@Swansworth.com",
-    "Julie.Swansworth@work.com"
-  ]
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.complex.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.complex.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.complex.json
deleted file mode 100644
index 189613f..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.complex.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "CompanyID": 0,
-  "CompanyCategory": "IT",
-  "Revenue": 100000,
-  "Name": "MS",
-  "Address": {
-    "Street": "1 Microsoft Way",
-    "City": "Redmond",
-    "PostalCode": "98052",
-    "CompanyName": "Microsoft"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.minimal.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.minimal.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.minimal.json
deleted file mode 100644
index de0a50b..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.minimal.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "@odata.context": "http://host/service/$metadata#Customers/$entity",
-  "ID": "ALFKI",
-  "CompanyName": "Alfreds Futterkiste",
-  "ContactName": "Maria Anders",
-  "ContactTitle": "Sales Representative",
-  "Phone": "030-0074321",
-  "Fax": "030-0076545",
-  "Address": {
-    "Street": "Obere Str. 57",
-    "City": "Berlin",
-    "Region": null,
-    "PostalCode": "D-12209"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.primitive.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.primitive.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.primitive.json
deleted file mode 100644
index c66f15d..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.primitive.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "NullValue": null,
-  "TrueValue": true,
-  "FalseValue": false,
-  "BinaryValue": "T0RhdGE",
-  "IntegerValue": -128,
-  "DoubleValue": 3.1415926535897931,
-  "SingleValue": "INF",
-  "DecimalValue": 34.95,
-  "StringValue": "Say \"Hello\",\nthen go",
-  "DateValue": "2012-12-03",
-  "DateTimeOffsetValue": "2012-12-03T07:16:23Z",
-  "DurationValue": "P12DT23H59M59.999999999999S",
-  "TimeOfDayValue": "07:59:59.999",
-  "GuidValue": "01234567-89ab-cdef-0123-456789abcdef",
-  "Int64Value": 0,
-  "ColorEnumValue": "Yellow",
-  "GeographyPoint": {
-    "type": "Point",
-    "coordinates": [142.1, 64.1]
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.withcomplexnavigation.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.withcomplexnavigation.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.withcomplexnavigation.json
deleted file mode 100644
index bcd1dba..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.withcomplexnavigation.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "@odata.context": "http://host/service/$metadata#Customers/$entity",
-  "@odata.id": "Customers('ALFKI')",
-  "@odata.etag": "W/\"MjAxMy0wNS0yN1QxMTo1OFo=\"",
-  "@odata.editLink": "Customers('ALFKI')",
-  "ID": "ALFKI",
-  "CompanyName": "Alfreds Futterkiste",
-  "ContactName": "Maria Anders",
-  "ContactTitle": "Sales Representative",
-  "Phone": "030-0074321",
-  "Fax": "030-0076545",
-  "Address": {
-    "Street": "Obere Str. 57",
-    "City": "Berlin",
-    "Region": null,
-    "PostalCode": "D-12209",
-    "Country@odata.associationLink": "Customers('ALFKI')/Address/Country/$ref",
-    "Country@odata.navigationLink": "Customers('ALFKI')/Address/Country"
-  },
-  "Orders@odata.associationLink": "Customers('ALFKI')/Orders/$ref",
-  "Orders@odata.navigationLink": "Customers('ALFKI')/Orders"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.withcomplexnavigation.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.withcomplexnavigation.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.withcomplexnavigation.xml
deleted file mode 100644
index 94cb766..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entity.withcomplexnavigation.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<entry xmlns="http://www.w3.org/2005/Atom"
-       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata"
-       xmlns:d="http://docs.oasis-open.org/odata/ns/data"
-       xml:base="http://host/service/"
-       m:context="$metadata#Customers/$entity"
-       m:metadata-etag="W/&quot;MjAxMy0wNS0xM1QxNDo1NFo=&quot;">
-  <id>http://host/service/$metadata#Customers('ALFKI')</id>
-  <title/>
-  <summary/>
-  <updated>2012-03-30T07:11:05Z</updated>
-  <author>
-    <name/>
-  </author>
-  <link rel="edit" title="Customer" href="Customers('ALFKI')"/>
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Orders"
-        type="application/atom+xml;type=feed"
-        title="Orders">
-        <m:inline><feed><m:ref id="Customers('ALFKI')/Orders"/></feed></m:inline> </link>        
-  <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier"
-        type="application/atom+xml;type=entry"
-        title="Supplier" href="Customers('ALFKI')/Supplier"/>
-  <category term="#ODataDemo.Customer"
-            scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
-  <content type="application/xml">
-    <m:properties>
-      <d:ID>ALFKI</d:ID>
-      <d:CompanyName>Alfreds Futterkiste</d:CompanyName>
-      <d:ContactName>Maria Anders</d:ContactName>
-      <d:ContactTitle>Sales Representative</d:ContactTitle>
-      <d:Phone>030-0074321</d:Phone>
-      <d:Fax>030-0076545</d:Fax>
-      <d:Address>
-        <d:Street>Obere Str. 57</d:Street>
-        <d:City>Berlin</d:City>
-        <d:Region m:null="true"/>
-        <d:PostalCode>D-12209</d:PostalCode>
-        <link rel="http://docs.oasis-open.org/odata/ns/related/Country"
-              type="application/atom+xml;type=entry"
-              title="Country"
-              href="Customers('ALFKI')/Address/Country"/>
-      </d:Address>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entityReference.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entityReference.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entityReference.json
deleted file mode 100644
index d0b6960..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entityReference.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "@odata.context": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#$ref",
-  "@odata.id": "http://odatae2etest.azurewebsites.net/javatest/DefaultService/Employees(PersonID=3)"
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entityReference.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entityReference.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entityReference.xml
deleted file mode 100644
index d04613b..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/entityReference.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<m:ref m:context="http://odatae2etest.azurewebsites.net/javatest/DefaultService/$metadata#$ref" 
-       id="http://odatae2etest.azurewebsites.net/javatest/DefaultService/Employees(PersonID=3)" 
-       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata"/>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/error.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/error.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/error.json
deleted file mode 100644
index 30a50d8..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/error.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "error": {
-    "code": "501",
-    "message": "Unsupported functionality",
-    "target": "query",
-    "details": [
-      {
-        "code": "301",
-        "target": "$search",
-        "message": "$search query option not supported"
-      }
-    ]
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/error.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/error.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/error.xml
deleted file mode 100644
index 149b799..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/error.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.
--->
-<error xmlns="http://docs.oasis-open.org/odata/ns/metadata">
-  <code>501</code>
-  <message>Unsupported functionality</message>
-  <target>query</target>
-  <details>
-    <detail>
-      <code>301</code>
-      <message>$search query option not supported</message>
-      <target>$search</target>
-    </detail>
-  </details>
-</error>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc1-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc1-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc1-metadata.xml
deleted file mode 100644
index 74a71d4..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc1-metadata.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/cs01/vocabularies/Org.OData.Core.V1.xml">
-    <edmx:Include Namespace="Org.OData.Core.V1" Alias="Core"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/cs01/vocabularies/Org.OData.Measures.V1.xml">
-    <edmx:Include Alias="UoM" Namespace="Org.OData.Measures.V1"/>
-  </edmx:Reference>
-  <edmx:DataServices>
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="ODataDemo">
-      <TypeDefinition Name="Length" UnderlyingType="Edm.Int32">
-        <Annotation Term="Org.OData.Measures.V1.Unit" String="Centimeters"/>
-      </TypeDefinition>
-      <TypeDefinition Name="Weight" UnderlyingType="Edm.Int32">
-        <Annotation Term="Org.OData.Measures.V1.Unit" String="Kilograms"/>
-      </TypeDefinition>
-      <ComplexType Name="Size">
-        <Property Name="Height" Type="Self.Length" />
-        <Property Name="Weight" Type="Self.Weight" />
-      </ComplexType>
-      <EntityType Name="Product" HasStream="true">
-        <Key>
-          <PropertyRef Name="ID"/>
-        </Key>
-        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Description" Type="Edm.String">
-          <Annotation Term="Core.IsLanguageDependent"/>
-        </Property>
-        <Property Name="ReleaseDate" Type="Edm.Date"/>
-        <Property Name="DiscontinuedDate" Type="Edm.Date"/>
-        <Property Name="Rating" Type="Edm.Int32"/>
-        <Property Name="Price" Type="Edm.Decimal">
-          <Annotation Term="UoM.ISOCurrency" Path="Currency"/>
-        </Property>
-        <Property Name="Currency" Type="Edm.String" MaxLength="3"/>
-        <NavigationProperty Name="Category" Type="ODataDemo.Category" Nullable="false" Partner="Products"/>
-        <NavigationProperty Name="Supplier" Type="ODataDemo.Supplier" Partner="Products"/>
-      </EntityType>
-      <EntityType Name="Category">
-        <Key>
-          <PropertyRef Name="ID"/>
-        </Key>
-        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String">
-          <Annotation Term="Core.IsLanguageDependent"/>
-        </Property>
-        <NavigationProperty Name="Products" Partner="Category" Type="Collection(ODataDemo.Product)">
-          <OnDelete Action="Cascade"/>
-        </NavigationProperty>
-      </EntityType>
-      <EntityType Name="Supplier">
-        <Key>
-          <PropertyRef Name="ID"/>
-        </Key>
-        <Property Name="ID" Type="Edm.String" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-        <Property Name="Address" Type="ODataDemo.Address" Nullable="false"/>
-        <Property Name="Concurrency" Type="Edm.Int32" Nullable="false"/>
-        <NavigationProperty Name="Products" Partner="Supplier"/>                                                                                                                                                    Type="Collection(ODataDemo.Product)"/>
-      </EntityType>
-      <EntityType Name="Country">
-        <Key>
-          <PropertyRef Name="Code"/>
-        </Key>
-        <Property Name="Code" Type="Edm.String" MaxLength="2" Nullable="false"/>
-        <Property Name="Name" Type="Edm.String"/>
-      </EntityType>
-      <ComplexType Name="Address">
-        <Property Name="Street" Type="Edm.String"/>
-        <Property Name="City" Type="Edm.String"/>
-        <Property Name="State" Type="Edm.String"/>
-        <Property Name="ZipCode" Type="Edm.String"/>
-        <Property Name="CountryName" Type="Edm.String"/>
-        <NavigationProperty Name="Country" Type="ODataDemo.Country">
-          <ReferentialConstraint Property="CountryName" ReferencedProperty="Name"/>
-        </NavigationProperty>
-      </ComplexType>
-      <Function Name="ProductsByRating">
-        <Parameter Name="Rating" Type="Edm.Int32"/>
-        <ReturnType Type="Collection(ODataDemo.Product)"/>
-      </Function>
-      <EntityContainer Name="DemoService">
-        <EntitySet Name="Products" EntityType="ODataDemo.Product">
-          <NavigationPropertyBinding Path="Category" Target="Categories"/>
-        </EntitySet>
-        <EntitySet Name="Categories" EntityType="ODataDemo.Category">
-          <NavigationPropertyBinding Path="Products" Target="Products"/>
-        </EntitySet>
-        <EntitySet Name="Suppliers" EntityType="ODataDemo.Supplier">
-          <NavigationPropertyBinding Path="Products" Target="Products"/>
-          <NavigationPropertyBinding Path="Address/Country" Target="Countries"/>
-          <Annotation Term="Core.OptimisticConcurrencyControl">
-            <Collection>
-              <PropertyPath>Concurrency</PropertyPath>
-            </Collection>
-          </Annotation>
-        </EntitySet>
-        <Singleton Name="Contoso" Type="Self.Supplier">
-          <NavigationPropertyBinding Path="Products" Target="Products"/>
-        </Singleton>
-        <EntitySet Name="Countries" EntityType="ODataDemo.Country"/>
-        <FunctionImport Name="ProductsByRating" EntitySet="Products" Function="ODataDemo.ProductsByRating"/>
-      </EntityContainer>
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc2-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc2-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc2-metadata.xml
deleted file mode 100644
index 60387f2..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc2-metadata.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-  <edmx:Reference Uri="http://host/service/$metadata">
-    <edmx:Include Namespace="ODataDemo"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://somewhere/Vocabulary/V1">
-    <edmx:Include Alias="Vocabulary1" Namespace="Some.Vocabulary.V1"/>
-  </edmx:Reference>
-  <edmx:DataServices>
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Annotations">
-      <Annotations Target="ODataDemo.Supplier">
-        <Annotation Term="Vocabulary1.EMail">
-          <Null/>
-        </Annotation>
-        <Annotation Term="Vocabulary1.AccountID" Path="ID"/>
-        <Annotation Term="Vocabulary1.Title" String="Supplier Info"/>
-        <Annotation Term="Vocabulary1.DisplayName">
-          <Apply Function="odata.concat">
-            <Path>Name</Path>
-            <String> in </String>
-            <Path>Address/CountryName</Path>
-          </Apply>
-        </Annotation>
-      </Annotations>
-      <Annotations Target="ODataDemo.Product">
-        <Annotation Term="Vocabulary1.Tags">
-          <Collection>
-            <String>MasterData</String>
-          </Collection>
-        </Annotation>        
-      </Annotations>
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc3-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc3-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc3-metadata.xml
deleted file mode 100644
index 36e5216..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc3-metadata.xml
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-  <edmx:Reference Uri="http://host/service/$metadata">
-    <edmx:Include Namespace="ODataDemo"/>
-  </edmx:Reference>
-  <edmx:Reference Uri="http://somewhere/Vocabulary/V1">
-    <edmx:Include Alias="Vocabulary1" Namespace="Some.Vocabulary.V1"/>
-  </edmx:Reference>
-  <edmx:DataServices>
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Annotations">
-      <Annotations Target="Test">
-        <Annotation Term="org.example.display.EndTime" TimeOfDay="21:45:00"/>
-        <Annotation Term="org.example.display.EndTime">
-          <TimeOfDay>21:45:00</TimeOfDay>
-        </Annotation>
-        <Annotation Term='Test' Path="IsMale"/>
-        <Annotation Term='Test'>
-          <Not>
-            <Path>IsMale</Path>
-          </Not>
-        </Annotation>
-        <Annotation Term='Test'>
-          <And>
-            <Path>IsMale</Path>
-            <Path>IsMarried</Path>
-          </And>
-        </Annotation>
-        <Annotation Term="UI.ReferenceFacet" AnnotationPath="Product/Supplier/@UI.LineItem"/>
-        <Annotation Term="UI.ReferenceFacet">
-          <AnnotationPath>Product/Supplier/@UI.LineItem</AnnotationPath>
-        </Annotation>
-        <Annotation Term="Vocabulary1.DisplayName">
-          <Apply Function="odata.concat">
-            <Path>Name</Path>
-            <String> in </String>
-            <Path>Address/CountryName</Path>
-          </Apply>
-        </Annotation>
-        <Annotation Term="org.example.display.Threshold">
-          <Cast Type="Edm.Decimal">
-            <Path>Average</Path>
-          </Cast>
-        </Annotation>
-        <Annotation Term="Vocabulary1.Tags">
-          <Collection>
-            <String>MasterData</String>
-          </Collection>
-        </Annotation>
-        <Annotation Term="org.example.person.Gender">
-          <If>
-            <Bool>true</Bool>
-            <String>Female</String>
-            <String>Male</String>
-          </If>
-        </Annotation>
-        <Annotation Term="org.example.person.Gender">
-          <If>
-            <Path>IsFemale</Path>
-            <String>Female</String>
-            <String>Male</String>
-          </If>
-        </Annotation>
-        <Annotation Term="Self.IsPreferredCustomer">
-          <IsOf Type="Self.PreferredCustomer">
-            <Path>Customer</Path>
-          </IsOf>
-        </Annotation>
-        <Annotation Term="org.example.display.DisplayName">
-          <LabeledElement Name="CustomerFirstName" Path="FirstName" />
-        </Annotation>
-        <Annotation Term="org.example.display.DisplayName">
-          <LabeledElement Name="CustomerFirstName">
-            <Path>FirstName</Path>
-          </LabeledElement>
-        </Annotation>
-        <Annotation Term="org.example.person.Employee">
-          <Record>
-            <PropertyValue Property="GivenName" Path="FirstName" />
-            <PropertyValue Property="Surname" Path="LastName" />
-            <PropertyValue Property="Manager" Path="DirectSupervisor" />
-            <PropertyValue Property="CostCenter"> 
-              <UrlRef>
-                <Apply Function="odata.fillUriTemplate">
-                  <String>http://host/anotherservice/CostCenters('{ccid}')</String>
-                  <LabeledElement Name="ccid" Path="CostCenterID" /> 
-                </Apply> 
-              </UrlRef>
-            </PropertyValue>
-          </Record>
-        </Annotation>
-        <Annotation Term="Vocab.Supplier">
-          <UrlRef>
-            <Apply Function="odata.fillUriTemplate">
-              <String>http://host/service/Suppliers({suppID})</String>
-              <LabeledElement Name="suppID">
-                <Apply Function="odata.uriEncode">
-                  <Path>SupplierId</Path>
-                </Apply>
-              </LabeledElement>
-            </Apply>
-          </UrlRef>
-        </Annotation>
-        <Annotation Term="Core.LongDescription">
-          <UrlRef>
-            <String>http://host/wiki/HowToUse</String>
-          </UrlRef>
-        </Annotation>
-      </Annotations>
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc4-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc4-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc4-metadata.xml
deleted file mode 100644
index 6602960..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/fromdoc4-metadata.xml
+++ /dev/null
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
-  <edmx:DataServices>
-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Annotations">
-      <Annotations Target="Test">
-        <Annotation Term="org.example.display.Threshold">
-          <Cast Type="Edm.Decimal">
-            <Path>Average</Path>
-          </Cast>
-        </Annotation>   
-        <Annotation Term="And">
-          <And>
-            <Path>IsMale</Path>
-            <Path>IsMarried</Path>
-          </And>          
-        </Annotation>
-        <Annotation Term="Or">
-          <Or>
-            <Path>IsMale</Path>
-            <Path>IsMarried</Path>
-          </Or>          
-        </Annotation>
-        <Annotation Term="Not">
-          <Not>
-            <Path>IsMale</Path>
-          </Not>         
-        </Annotation>
-        <Annotation Term="Eq">
-          <Eq>
-            <Null/>
-            <Path>IsMale</Path>
-          </Eq>        
-        </Annotation>
-        <Annotation Term="UI.ReferenceFacet" AnnotationPath="Product/Supplier/@UI.LineItem"/>
-        <Annotation Term="UI.CollectionFacet" Qualifier="Contacts">
-          <Collection>
-            <AnnotationPath>Supplier/@Communication.Contact</AnnotationPath>
-            <AnnotationPath>Customer/@Communication.Contact</AnnotationPath>
-          </Collection>
-        </Annotation>
-        <Annotation Term="org.example.display.DisplayName">
-          <Apply Function="odata.concat">
-            <String>Product: </String>
-            <Path>ProductName</Path>
-            <String> (</String>
-            <Path>Available/Quantity</Path>
-            <String> </String>
-            <Path>Available/Unit</Path>
-            <String> available)</String>
-          </Apply>
-        </Annotation>
-        <Annotation Term="Apply2">
-          <Apply Function="odata.fillUriTemplate">
-            <String>http://host/service/Genres('{genreName}')</String>
-            <LabeledElement Name="genreName" Path="NameOfMovieGenre"/>
-          </Apply>
-        </Annotation>
-        <Annotation Term="Apply3">
-          <Apply Function="odata.fillUriTemplate">
-            <String>http://host/service/Genres({genreName})</String>
-            <LabeledElement Name="genreName">
-              <Apply Function="odata.uriEncode" >
-                <Path>NameOfMovieGenre</Path>
-              </Apply>
-            </LabeledElement>
-          </Apply>
-        </Annotation>     
-        <Annotation Term="org.example.seo.SeoTerms">
-          <Collection>
-            <String>Product</String>
-            <String>Supplier</String>
-            <String>Customer</String>
-          </Collection>
-        </Annotation>
-        <Annotation Term="org.example.person.Gender">
-          <If>
-            <Path>IsFemale</Path>
-            <String>Female</String>
-            <String>Male</String>
-          </If>
-        </Annotation>
-        <Annotation Term="Self.IsPreferredCustomer">
-          <IsOf Type="Self.PreferredCustomer">
-            <Path>Customer</Path>
-          </IsOf>
-        </Annotation>
-        <Annotation Term="org.example.display.DisplayName">
-          <LabeledElement Name="CustomerFirstName" Path="FirstName"/>
-        </Annotation>
-        <Annotation Term="org.example.display.DisplayName">
-          <LabeledElement Name="CustomerFirstName">
-            <Path>FirstName</Path>
-          </LabeledElement>
-        </Annotation>
-        <Annotation Term="org.example.display.DisplayName">
-          <LabeledElementReference>Model.CustomerFirstName</LabeledElementReference>
-        </Annotation>
-        <Annotation Term="UI.HyperLink" NavigationPropertyPath="Supplier"/>
-        <Annotation Term="Capabilities.UpdateRestrictions">
-          <Record>
-            <PropertyValue Property="NonUpdatableNavigationProperties">
-              <Collection>
-                <NavigationPropertyPath>Supplier</NavigationPropertyPath>
-                <NavigationPropertyPath>Category</NavigationPropertyPath>
-              </Collection>
-            </PropertyValue>
-          </Record>
-        </Annotation>
-        <Annotation Term="org.example.display.DisplayName" Path="FirstName"/>
-        <Annotation Term="org.example.display.DisplayName">
-          <Path>@vCard.Address#work/FullName</Path>
-        </Annotation>   
-        <Annotation Term="UI.RefreshOnChangeOf" PropertyPath="ChangedAt"/>
-        <Annotation Term="Capabilities.UpdateRestrictions">
-          <Record>
-            <PropertyValue Property="NonUpdatableProperties">
-              <Collection>
-                <PropertyPath>CreatedAt</PropertyPath>
-                <PropertyPath>ChangedAt</PropertyPath>
-              </Collection>
-            </PropertyValue>
-          </Record>
-        </Annotation>             
-        <Annotation Term="Vocab.Supplier">
-          <UrlRef>
-            <Apply Function="odata.fillUriTemplate">
-              <String>http://host/service/Suppliers({suppID})</String>
-              <LabeledElement Name="suppID">
-                <Apply Function="odata.uriEncode">
-                  <Path>SupplierId</Path>
-                </Apply>
-              </LabeledElement>
-            </Apply>
-          </UrlRef>
-        </Annotation>
-        <Annotation Term="Core.LongDescription">
-          <UrlRef>
-            <String>http://host/wiki/HowToUse</String>
-          </UrlRef>
-        </Annotation>
-      </Annotations>
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/metadata.xml
deleted file mode 100644
index 3f992ac..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/metadata.xml
+++ /dev/null
@@ -1,232 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    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.
-
--->
-<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
-  <edmx:DataServices m:DataServiceVersion="4.0" m:MaxDataServiceVersion="4.0" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">
-    <Schema Namespace="Microsoft.Exchange.Services.OData.Model" xmlns="http://docs.oasis-open.org/odata/ns/edm">
-      <EnumType Name="BodyType">
-        <Member Name="Text" Value="0" />
-        <Member Name="HTML" Value="1" />
-      </EnumType>
-      <EnumType Name="Importance">
-        <Member Name="Normal" Value="0" />
-        <Member Name="Low" Value="1" />
-        <Member Name="High" Value="2" />
-      </EnumType>
-      <EnumType Name="AttendeeType">
-        <Member Name="Required" Value="1" />
-        <Member Name="Optional" Value="2" />
-        <Member Name="Resource" Value="3" />
-      </EnumType>
-      <EnumType Name="ResponseType">
-        <Member Name="None" Value="0" />
-        <Member Name="Organizer" Value="1" />
-        <Member Name="TentativelyAccepted" Value="2" />
-        <Member Name="Accepted" Value="3" />
-        <Member Name="Declined" Value="4" />
-        <Member Name="NotResponded" Value="5" />
-      </EnumType>
-      <EnumType Name="EventType">
-        <Member Name="SingleInstance" Value="0" />
-        <Member Name="Occurrence" Value="1" />
-        <Member Name="Exception" Value="2" />
-        <Member Name="SeriesMaster" Value="3" />
-      </EnumType>
-      <EnumType Name="FreeBusyStatus">
-        <Member Name="Free" Value="0" />
-        <Member Name="Tentative" Value="1" />
-        <Member Name="Busy" Value="2" />
-        <Member Name="Oof" Value="3" />
-        <Member Name="WorkingElsewhere" Value="4" />
-        <Member Name="Unknown" Value="-1" />
-      </EnumType>
-      <ComplexType Name="Recipient">
-        <Property Name="Name" Type="Edm.String" />
-        <Property Name="Address" Type="Edm.String" />
-      </ComplexType>
-      <ComplexType Name="Attendee" BaseType="Microsoft.Exchange.Services.OData.Model.Recipient">
-        <Property Name="Status" Type="Microsoft.Exchange.Services.OData.Model.ResponseStatus" />
-        <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.AttendeeType" />
-      </ComplexType>
-      <ComplexType Name="ItemBody">
-        <Property Name="ContentType" Type="Microsoft.Exchange.Services.OData.Model.BodyType" />
-        <Property Name="Content" Type="Edm.String" />
-      </ComplexType>
-      <ComplexType Name="Location">
-        <Property Name="DisplayName" Type="Edm.String" />
-      </ComplexType>
-      <ComplexType Name="ResponseStatus" BaseType="Microsoft.Exchange.Services.OData.Model.Recipient">
-        <Property Name="Response" Type="Microsoft.Exchange.Services.OData.Model.ResponseType" />
-        <Property Name="Time" Type="Edm.DateTimeOffset" />
-      </ComplexType>
-      <EntityType Name="Entity" Abstract="true">
-        <Key>
-          <PropertyRef Name="Id" />
-        </Key>
-        <Property Name="Id" Type="Edm.String" Nullable="false" />
-      </EntityType>
-      <EntityType Name="User" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
-        <Property Name="DisplayName" Type="Edm.String" />
-        <Property Name="Alias" Type="Edm.String" />
-        <Property Name="MailboxGuid" Type="Edm.Guid" />
-        <NavigationProperty Name="Folders" Type="Collection(Microsoft.Exchange.Services.OData.Model.Folder)" />
-        <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.EmailMessage)" />
-        <NavigationProperty Name="RootFolder" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
-        <NavigationProperty Name="Inbox" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
-        <NavigationProperty Name="Drafts" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
-        <NavigationProperty Name="SentItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
-        <NavigationProperty Name="DeletedItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
-        <NavigationProperty Name="Calendars" Type="Collection(Microsoft.Exchange.Services.OData.Model.Calendar)" />
-        <NavigationProperty Name="CalendarGroups" Type="Collection(Microsoft.Exchange.Services.OData.Model.CalendarGroup)" />
-        <NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" />
-      </EntityType>
-      <EntityType Name="Folder" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
-        <Property Name="ParentFolderId" Type="Edm.String" />
-        <Property Name="DisplayName" Type="Edm.String" />
-        <Property Name="ClassName" Type="Edm.String" />
-        <Property Name="TotalCount" Type="Edm.Int32" />
-        <Property Name="ChildFolderCount" Type="Edm.Int32" />
-        <Property Name="UnreadItemCount" Type="Edm.Int32" />
-        <NavigationProperty Name="ChildFolders" Type="Collection(Microsoft.Exchange.Services.OData.Model.Folder)" />
-        <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.EmailMessage)" />
-      </EntityType>
-      <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.Folder">
-        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
-        <Parameter Name="DestinationId" Type="Edm.String" />
-      </Action>
-      <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.Folder">
-        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
-        <Parameter Name="DestinationId" Type="Edm.String" />
-      </Action>
-      <EntityType Name="Item" BaseType="Microsoft.Exchange.Services.OData.Model.Entity" Abstract="true">
-        <Property Name="ChangeKey" Type="Edm.String" />
-        <Property Name="ClassName" Type="Edm.String" />
-        <Property Name="Subject" Type="Edm.String" />
-        <Property Name="Body" Type="Microsoft.Exchange.Services.OData.Model.ItemBody" />
-        <Property Name="BodyPreview" Type="Edm.String" />
-        <Property Name="Importance" Type="Microsoft.Exchange.Services.OData.Model.Importance" />
-        <Property Name="Categories" Type="Collection(Edm.String)" />
-        <Property Name="HasAttachments" Type="Edm.Boolean" />
-        <Property Name="DateTimeCreated" Type="Edm.DateTimeOffset" />
-        <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
-        <NavigationProperty Name="Attachments" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attachment)" />
-      </EntityType>
-      <EntityType Name="EmailMessage" BaseType="Microsoft.Exchange.Services.OData.Model.Item">
-        <Property Name="ParentFolderId" Type="Edm.String" />
-        <Property Name="From" Type="Microsoft.Exchange.Services.OData.Model.Recipient" />
-        <Property Name="Sender" Type="Microsoft.Exchange.Services.OData.Model.Recipient" />
-        <Property Name="ToRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
-        <Property Name="CcRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
-        <Property Name="BccRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
-        <Property Name="ReplyTo" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
-        <Property Name="ConversationIndex" Type="Edm.String" />
-        <Property Name="UniqueBody" Type="Microsoft.Exchange.Services.OData.Model.ItemBody" />
-        <Property Name="DateTimeReceived" Type="Edm.DateTimeOffset" />
-        <Property Name="DateTimeSent" Type="Edm.DateTimeOffset" />
-        <Property Name="IsDeliveryReceiptRequested" Type="Edm.Boolean" />
-        <Property Name="IsReadReceiptRequested" Type="Edm.Boolean" />
-        <Property Name="IsDraft" Type="Edm.Boolean" />
-        <Property Name="IsRead" Type="Edm.Boolean" />
-      </EntityType>
-      <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.EmailMessage">
-        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.EmailMessage" />
-        <Parameter Name="DestinationId" Type="Edm.String" />
-      </Action>
-      <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.EmailMessage">
-        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.EmailMessage" />
-        <Parameter Name="DestinationId" Type="Edm.String" />
-      </Action>
-      <EntityType Name="Attachment" BaseType="Microsoft.Exchange.Services.OData.Model.Entity" Abstract="true">
-        <Property Name="Name" Type="Edm.String" />
-        <Property Name="ContentType" Type="Edm.String" />
-        <Property Name="IsInline" Type="Edm.Boolean" Nullable="false" />
-        <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
-      </EntityType>
-      <EntityType Name="FileAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment">
-        <Property Name="ContentId" Type="Edm.String" />
-        <Property Name="ContentLocation" Type="Edm.String" />
-        <Property Name="Size" Type="Edm.Int32" Nullable="false" />
-        <Property Name="IsContactPhoto" Type="Edm.Boolean" Nullable="false" />
-        <Property Name="ContentBytes" Type="Edm.Binary" MaxLength="Max" FixedLength="false" />
-      </EntityType>
-      <EntityType Name="ItemAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment">
-        <NavigationProperty Name="Item" Type="Microsoft.Exchange.Services.OData.Model.Item" />
-      </EntityType>
-      <EntityType Name="Calendar" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
-        <Property Name="Name" Type="Edm.String" />
-        <Property Name="ChangeKey" Type="Edm.String" />
-        <NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" />
-      </EntityType>
-      <EntityType Name="CalendarGroup" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
-        <Property Name="Name" Type="Edm.String" />
-        <Property Name="ChangeKey" Type="Edm.String" />
-        <Property Name="ClassId" Type="Edm.Guid" />
-      </EntityType>
-      <EntityType Name="Event" BaseType="Microsoft.Exchange.Services.OData.Model.Item">
-        <Property Name="Start" Type="Edm.DateTimeOffset" />
-        <Property Name="End" Type="Edm.DateTimeOffset" />
-        <Property Name="Location" Type="Microsoft.Exchange.Services.OData.Model.Location" />
-        <Property Name="ShowAs" Type="Microsoft.Exchange.Services.OData.Model.FreeBusyStatus" />
-        <Property Name="IsAllDay" Type="Edm.Boolean" />
-        <Property Name="IsCancelled" Type="Edm.Boolean" />
-        <Property Name="IsOrganizer" Type="Edm.Boolean" />
-        <Property Name="ResponseRequested" Type="Edm.Boolean" />
-        <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.EventType" />
-        <Property Name="SeriesId" Type="Edm.String" />
-        <Property Name="Attendees" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attendee)" />
-        <NavigationProperty Name="Calendar" Type="Microsoft.Exchange.Services.OData.Model.Calendar" />
-      </EntityType>
-      <EntityContainer Name="EntityContainer" m:IsDefaultEntityContainer="true">
-        <EntitySet Name="Users" EntityType="Microsoft.Exchange.Services.OData.Model.User">
-          <NavigationPropertyBinding Path="Folders" Target="Folders" />
-          <NavigationPropertyBinding Path="Messages" Target="Messages" />
-          <NavigationPropertyBinding Path="RootFolder" Target="Folders" />
-          <NavigationPropertyBinding Path="Inbox" Target="Folders" />
-          <NavigationPropertyBinding Path="Drafts" Target="Folders" />
-          <NavigationPropertyBinding Path="SentItems" Target="Folders" />
-          <NavigationPropertyBinding Path="DeletedItems" Target="Folders" />
-          <NavigationPropertyBinding Path="Calendars" Target="Calendars" />
-          <NavigationPropertyBinding Path="CalendarGroups" Target="CalendarGroups" />
-          <NavigationPropertyBinding Path="Events" Target="Events" />
-        </EntitySet>
-        <EntitySet Name="Folders" EntityType="Microsoft.Exchange.Services.OData.Model.Folder">
-          <NavigationPropertyBinding Path="ChildFolders" Target="Folders" />
-          <NavigationPropertyBinding Path="Messages" Target="Messages" />
-        </EntitySet>
-        <EntitySet Name="Items" EntityType="Microsoft.Exchange.Services.OData.Model.Item" />
-        <EntitySet Name="Messages" EntityType="Microsoft.Exchange.Services.OData.Model.EmailMessage">
-          <NavigationPropertyBinding Path="Attachments" Target="Attachments" />
-        </EntitySet>
-        <EntitySet Name="Attachments" EntityType="Microsoft.Exchange.Services.OData.Model.Attachment">
-          <NavigationPropertyBinding Path="Microsoft.Exchange.Services.OData.Model.ItemAttachment/Item" Target="Items" />
-        </EntitySet>
-        <EntitySet Name="Calendars" EntityType="Microsoft.Exchange.Services.OData.Model.Calendar">
-          <NavigationPropertyBinding Path="Events" Target="Events" />
-        </EntitySet>
-        <EntitySet Name="CalendarGroups" EntityType="Microsoft.Exchange.Services.OData.Model.CalendarGroup" />
-        <EntitySet Name="Events" EntityType="Microsoft.Exchange.Services.OData.Model.Event">
-          <NavigationPropertyBinding Path="Attachments" Target="Attachments" />
-          <NavigationPropertyBinding Path="Calendar" Target="Calendars" />
-        </EntitySet>
-      </EntityContainer>
-    </Schema>
-  </edmx:DataServices>
-</edmx:Edmx>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/752bfad3/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/minimalEntity.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/minimalEntity.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/minimalEntity.json
deleted file mode 100644
index a6bd671..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v4/minimalEntity.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "odata.context": "http://host/service/$metadata#Customers/$entity", "odata.id": "Customers('ALFKI')",
-  "odata.etag": "W/\"MjAxMy0wNS0yN1QxMTo1OFo=\"",
-  "odata.editLink": "Customers('ALFKI')",
-  "Orders@odata.navigationLink": "Customers('ALFKI')/Orders",
-  "Orders@odata.associationLink": "Customers('ALFKI')/Orders/$ref",
-  "ID": "ALFKI",
-  "CompanyName": "Alfreds Futterkiste",
-  "ContactName": "Maria Anders",
-  "ContactTitle": "Sales Representative",
-  "Phone": "030-0074321",
-  "Fax": "030-0076545",
-  "Address": {
-    "Street": "Obere Str. 57",
-    "City": "Berlin",
-    "Region": null,
-    "PostalCode": "D-12209",
-    "Country@odata.navigationLink": "Customers('ALFKI')/Address/Country", 
-    "Country@odata.associationLink": "Customers('ALFKI')/Address/Country/$ref"
-  }
-}