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/"MjAxMy0wNS0xM1QxNDo1NFo="">
- <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=""8zOOKKvgOtptr4gt8IrnapX3jds="" />
- <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=""8zOOKKvgOtptr4gt8IrnapX3jds="" />
+ <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(.) > 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&$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/"MjAxMy0wNS0xM1QxNDo1NFo="">
+ <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/"MjAxMy0wNS0xM1QxNDo1NFo="">
+ <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(.) > 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&$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/"MjAxMy0wNS0xM1QxNDo1NFo="">
- <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"
- }
-}