http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/503b4417/test/test-odata-json.js ---------------------------------------------------------------------- diff --git a/test/test-odata-json.js b/test/test-odata-json.js new file mode 100644 index 0000000..bfbb99f --- /dev/null +++ b/test/test-odata-json.js @@ -0,0 +1,435 @@ +/* + * 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. + */ + +var odatajs = require('./../src/index-node.js'); +var chai = require('chai'); +var assert = chai.assert; + +var callTest_None = function(testData,context) { + var testData = testData; + var context = { + response: { requestUri: testData.usedUrl }, + contentType : { properties : { "odata.metadata" : 'none'}}, + dataServiceVersion: "4.0" + }; + it(testData.description, function () { + var actual = odatajs.oData.json.jsonParser( + odatajs.oData.json.jsonHandler, + testData.input, + context); + assert.deepEqual(actual, testData.expected, "test '" + testData.description + "' didn't return the expected data"); + }); +}; + +var callTest_Minimal = function(testData,context) { + var testData = testData; + var context = { + response: { requestUri: testData.usedUrl }, + contentType : { properties : { "odata.metadata" : 'minimal'}}, + dataServiceVersion: "4.0" + }; + it(testData.description, function () { + var actual = odatajs.oData.json.jsonParser( + odatajs.oData.json.jsonHandler, + testData.input, + context); + assert.deepEqual(actual, testData.expected, "test '" + testData.description + "' didn't return the expected data"); + }); +}; +var callTest_MinimalToFull = function(testData,context) { + var testData = testData; + var context = { + response: { requestUri: testData.usedUrl }, + contentType : { properties : { "odata.metadata" : 'minimal'}}, + dataServiceVersion: "4.0", + metadata : testDataJsonParserMetadataMinimalToFullMetaData + }; + it(testData.description, function () { + var actual = odatajs.oData.json.jsonParser( + odatajs.oData.json.jsonHandler, + testData.input, + context); + assert.deepEqual(actual, testData.expected, "test '" + testData.description + "' didn't return the expected data"); + }); +}; + +var callTest_Full = function(testData,context) { + var testData = testData; + var context = { + response: { requestUri: testData.usedUrl }, + contentType : { properties : { "odata.metadata" : 'full'}}, + dataServiceVersion: "4.0" + }; + it(testData.description, function () { + var actual = odatajs.oData.json.jsonParser( + odatajs.oData.json.jsonHandler, + testData.input, + context); + assert.deepEqual(actual, testData.expected, "test '" + testData.description + "' didn't return the expected data"); + }); +}; + +var testDataJsonParserMetadataNone = [{ + description: "Feed with metadata=none", + header: "application/json;odata.metadata=none", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods", + input: '{"value":[{"FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}],"SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"c rs":{"type":"name","properties":{"name":"EPSG:4326"}}}},{"FoodID":1,"Name":"sugar","UnitPrice":0.2,"ServingSize":1,"MeasurementUnit":"tsp","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":4,"CaloriesPerServing":16,"IsAvailable":false,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"ffffffff-ffff-ffff-ffff-ffffffffffff","Weight":0.1,"AvailableUnits":0,"Packaging":{"Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":-79228162514264337593543950335,"Height":-32768,"Width":-9223372036854775808,"Volume":-1.7976931348623157E+308}},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":2,"Name":"1 Chicken Egg","UnitPrice":0.55,"ServingSize":1,"MeasurementUnit":null,"ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":1,"CaloriesPerServing":70,"IsAvailable":true,"ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID":"00000000-0000-0000-0000-000000000000","Weight":0,"A vailableUnits":-128,"Packaging":{"Type":"18 - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":3,"Name":"Brown Sugar","UnitPrice":1.6,"ServingSize":1,"MeasurementUnit":"TSP.","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":5,"CaloriesPerServing":16,"IsAvailable":true,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":4.5,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":4,"Name":"Cobb Salad","UnitPrice":1.99,"ServingSize":-1,"MeasurementUnit":"cups","ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":3,"CaloriesPerServing":5,"IsAvailable":true,"ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":5.674,"AvailableUnits":127,"Packaging":null,"Cooke dSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","NumberOfIngredients":4}],"@odata.nextLink":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods?$skiptoken=4"}', + expected: {"value":[{"FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}],"SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"c rs":{"type":"name","properties":{"name":"EPSG:4326"}}}},{"FoodID":1,"Name":"sugar","UnitPrice":0.2,"ServingSize":1,"MeasurementUnit":"tsp","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":4,"CaloriesPerServing":16,"IsAvailable":false,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"ffffffff-ffff-ffff-ffff-ffffffffffff","Weight":0.1,"AvailableUnits":0,"Packaging":{"Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":-79228162514264337593543950335,"Height":-32768,"Width":-9223372036854775808,"Volume":-1.7976931348623157E+308}},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":2,"Name":"1 Chicken Egg","UnitPrice":0.55,"ServingSize":1,"MeasurementUnit":null,"ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":1,"CaloriesPerServing":70,"IsAvailable":true,"ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID":"00000000-0000-0000-0000-000000000000","Weight":0,"A vailableUnits":-128,"Packaging":{"Type":"18 - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":3,"Name":"Brown Sugar","UnitPrice":1.6,"ServingSize":1,"MeasurementUnit":"TSP.","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":5,"CaloriesPerServing":16,"IsAvailable":true,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":4.5,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":4,"Name":"Cobb Salad","UnitPrice":1.99,"ServingSize":-1,"MeasurementUnit":"cups","ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":3,"CaloriesPerServing":5,"IsAvailable":true,"ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":5.674,"AvailableUnits":127,"Packaging":null,"Cooke dSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","NumberOfIngredients":4}],"@odata.nextLink":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods?$skiptoken=4"} +},{ + description: "Entry with metadata=none", + header: "application/json;odata.metadata=none", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)", + input: '{"FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}],"SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type ":"name","properties":{"name":"EPSG:4326"}}}}', + expected: {"FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}],"SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type ":"name","properties":{"name":"EPSG:4326"}}}} +},{ + description: "Collection of Complex with metadata=none", + header: "application/json;odata.metadata=none", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Providers", + input: '{"value":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}]}', + expected: {"value":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}]} +},{ + description: "Collection of Simple with metadata=none", + header: "application/json;odata.metadata=none", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/AlternativeNames", + input: '{"value":["ground cereal","ground grain"]}', + expected: {"value":["ground cereal","ground grain"]} +},{ + description: "Collection Property with metadata=none", + header: "application/json;odata.metadata=none", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Packaging", + input: '{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}}', + expected: {"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}} +},{ + description: "Simple Property with metadata=none", + header: "application/json;odata.metadata=none", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Name", + input: '{"value":"flour"}', + expected: {"value":"flour"} +}]; + +var testDataJsonParserMetadataMinimal = [{ + description: "Feed with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods","value":[{"FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}]," SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}},{"FoodID":1,"Name":"sugar","UnitPrice":0.2,"ServingSize":1,"MeasurementUnit":"tsp","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":4,"CaloriesPerServing":16,"IsAvailable":false,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"ffffffff-ffff-ffff-ffff-ffffffffffff","Weight":0.1,"AvailableUnits":0,"Packaging":{"Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":-79228162514264337593543950335,"Height":-32768,"Width":-9223372036854775808,"Volume":-1.7976931348623157E+308}},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":2,"Name":"1 Chicken Egg","UnitPrice":0.55,"ServingSize":1,"MeasurementUnit":null,"ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":1,"CaloriesPerServing":70,"IsAvailable":true,"Ex pirationDate":"2000-12-29T00:00:00Z","ItemGUID":"00000000-0000-0000-0000-000000000000","Weight":0,"AvailableUnits":-128,"Packaging":{"Type":"18 - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":3,"Name":"Brown Sugar","UnitPrice":1.6,"ServingSize":1,"MeasurementUnit":"TSP.","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":5,"CaloriesPerServing":16,"IsAvailable":true,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":4.5,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"@odata.type":"#DataJS.Tests.V4.PreparedFood","FoodID":4,"Name":"Cobb Salad","UnitPrice":1.99,"ServingSize":-1,"MeasurementUnit":"cups","ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":3,"CaloriesPerServing":5,"IsAvailable":true,"Ex pirationDate":"2000-12-29T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":5.674,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","NumberOfIngredients":4}],"@odata.nextLink":"Foods?$skiptoken=4"}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods","value":[{"FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}]," SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}},{"FoodID":1,"Name":"sugar","UnitPrice":0.2,"ServingSize":1,"MeasurementUnit":"tsp","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":4,"CaloriesPerServing":16,"IsAvailable":false,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"ffffffff-ffff-ffff-ffff-ffffffffffff","Weight":0.1,"AvailableUnits":0,"Packaging":{"Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":-79228162514264337593543950335,"Height":-32768,"Width":-9223372036854775808,"Volume":-1.7976931348623157E+308}},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":2,"Name":"1 Chicken Egg","UnitPrice":0.55,"ServingSize":1,"MeasurementUnit":null,"ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":1,"CaloriesPerServing":70,"IsAvailable":true,"Ex pirationDate":"2000-12-29T00:00:00Z","ItemGUID":"00000000-0000-0000-0000-000000000000","Weight":0,"AvailableUnits":-128,"Packaging":{"Type":"18 - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":3,"Name":"Brown Sugar","UnitPrice":1.6,"ServingSize":1,"MeasurementUnit":"TSP.","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":5,"CaloriesPerServing":16,"IsAvailable":true,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":4.5,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"@odata.type":"#DataJS.Tests.V4.PreparedFood","FoodID":4,"Name":"Cobb Salad","UnitPrice":1.99,"ServingSize":-1,"MeasurementUnit":"cups","ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":3,"CaloriesPerServing":5,"IsAvailable":true,"Ex pirationDate":"2000-12-29T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":5.674,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","NumberOfIngredients":4}],"@odata.nextLink":"Foods?$skiptoken=4"} +},{ + description: "Entry with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods/$entity","FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}],"Sp atialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods/$entity","FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}],"Sp atialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}} +},{ + description: "Collection of Complex with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Providers", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Providers","value":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}]}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Providers","value":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}]} +},{ + description: "Collection of Simple with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/AlternativeNames", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/AlternativeNames","value":["ground cereal","ground grain"]}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/AlternativeNames","value":["ground cereal","ground grain"]} +},{ + description: "Collection Property with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Packaging", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Packaging","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Packaging","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}} +},{ + description: "Simple Property with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Name", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Name","value":"flour"}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Name","value":"flour"} +}]; + + +var testDataJsonParserMetadataMinimalToFullMetaData = {"version":"4.0","dataServices":{"schema":[{"namespace":"DataJS.Tests.V4","entityType":[{"name":"Category","key":[{"propertyRef":[{"name":"CategoryID"}]}],"property":[{"name":"CategoryID","type":"Edm.Int32","nullable":"false"},{"name":"Name","type":"Edm.String"}],"navigationProperty":[{"name":"Foods","type":"Collection(DataJS.Tests.V4.Food)","partner":"Category"}]},{"name":"Food","key":[{"propertyRef":[{"name":"FoodID"}]}],"property":[{"name":"FoodID","type":"Edm.Int32","nullable":"false"},{"name":"Name","type":"Edm.String"},{"name":"UnitPrice","type":"Edm.Double","nullable":"false"},{"name":"ServingSize","type":"Edm.Decimal","nullable":"false"},{"name":"MeasurementUnit","type":"Edm.String"},{"name":"ProteinGrams","type":"Edm.Byte","nullable":"false"},{"name":"FatGrams","type":"Edm.Int16","nullable":"false"},{"name":"CarbohydrateGrams","type":"Edm.Int32","nullable":"false"},{"name":"CaloriesPerServing","type":"Edm.Int64","nullabl e":"false"},{"name":"IsAvailable","type":"Edm.Boolean","nullable":"false"},{"name":"ExpirationDate","type":"Edm.DateTimeOffset","nullable":"false"},{"name":"ItemGUID","type":"Edm.Guid","nullable":"false"},{"name":"Weight","type":"Edm.Single","nullable":"false"},{"name":"AvailableUnits","type":"Edm.SByte","nullable":"false"},{"name":"Packaging","type":"DataJS.Tests.V4.Package"},{"name":"CookedSize","type":"DataJS.Tests.V4.CookedDimensions"},{"name":"AlternativeNames","type":"Collection(Edm.String)","nullable":"false"},{"name":"Providers","type":"Collection(DataJS.Tests.V4.Provider)","nullable":"false"},{"name":"SpatialData","type":"Edm.GeometryCollection","SRID":"Variable"}],"navigationProperty":[{"name":"Category","type":"DataJS.Tests.V4.Category","partner":"Foods"}]},{"name":"PreparedFood","baseType":"DataJS.Tests.V4.Food","property":[{"name":"Instructions","type":"Edm.String"},{"name":"NumberOfIngredients","type":"Edm.Single","nullable":"false"}]}],"complexType":[{"name":"Package" ,"property":[{"name":"Type","type":"Edm.String"},{"name":"Color","type":"Edm.String"},{"name":"NumberPerPackage","type":"Edm.Int32","nullable":"false"},{"name":"RequiresRefridgeration","type":"Edm.Boolean","nullable":"false"},{"name":"ShipDate","type":"Edm.DateTimeOffset","nullable":"false"},{"name":"PackageDimensions","type":"DataJS.Tests.V4.Dimensions"}]},{"name":"Dimensions","property":[{"name":"Length","type":"Edm.Decimal","nullable":"false"},{"name":"Height","type":"Edm.Int16","nullable":"false"},{"name":"Width","type":"Edm.Int64","nullable":"false"},{"name":"Volume","type":"Edm.Double","nullable":"false"}]},{"name":"CookedDimensions","property":[{"name":"Length","type":"Edm.Decimal","nullable":"false"},{"name":"Height","type":"Edm.Int16","nullable":"false"},{"name":"Width","type":"Edm.Int64","nullable":"false"},{"name":"Volume","type":"Edm.Double","nullable":"false"}]},{"name":"Provider","property":[{"name":"Name","type":"Edm.String"},{"name":"Aliases","type":"Collection(Edm.S tring)","nullable":"false"},{"name":"Details","type":"DataJS.Tests.V4.ProviderDetails"}]},{"name":"ProviderDetails","property":[{"name":"Telephone","type":"Edm.String"},{"name":"PreferredCode","type":"Edm.Int32","nullable":"false"}]}],"action":[{"name":"ResetData","returnType":{"type":"Edm.String"}}],"function":[{"name":"FoodsAvailable","isComposable":"true","returnType":{"type":"Collection(Edm.String)"}},{"name":"PackagingTypes","isComposable":"true","returnType":{"type":"Collection(DataJS.Tests.V4.Package)"}},{"name":"UserNameAndPassword","returnType":{"type":"Edm.String"}}],"entityContainer":{"name":"FoodContainer","entitySet":[{"name":"Categories","entityType":"DataJS.Tests.V4.Category","navigationPropertyBinding":[{"path":"Foods","target":"Foods"}]},{"name":"Foods","entityType":"DataJS.Tests.V4.Food","navigationPropertyBinding":[{"path":"Category","target":"Categories"}]}],"actionImport":[{"name":"ResetData","action":"DataJS.Tests.V4.ResetData"}],"functionImport":[{"name":"Food sAvailable","function":"DataJS.Tests.V4.FoodsAvailable"},{"name":"PackagingTypes","function":"DataJS.Tests.V4.PackagingTypes"},{"name":"UserNameAndPassword","function":"DataJS.Tests.V4.UserNameAndPassword"}]}}]}}; +var testDataJsonParserMetadataMinimalToFull = [{ + description: "Feed with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods","value":[{"FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}]," SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}},{"FoodID":1,"Name":"sugar","UnitPrice":0.2,"ServingSize":1,"MeasurementUnit":"tsp","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":4,"CaloriesPerServing":16,"IsAvailable":false,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"ffffffff-ffff-ffff-ffff-ffffffffffff","Weight":0.1,"AvailableUnits":0,"Packaging":{"Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":-79228162514264337593543950335,"Height":-32768,"Width":-9223372036854775808,"Volume":-1.7976931348623157E+308}},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":2,"Name":"1 Chicken Egg","UnitPrice":0.55,"ServingSize":1,"MeasurementUnit":null,"ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":1,"CaloriesPerServing":70,"IsAvailable":true,"Ex pirationDate":"2000-12-29T00:00:00Z","ItemGUID":"00000000-0000-0000-0000-000000000000","Weight":0,"AvailableUnits":-128,"Packaging":{"Type":"18 - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"FoodID":3,"Name":"Brown Sugar","UnitPrice":1.6,"ServingSize":1,"MeasurementUnit":"TSP.","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":5,"CaloriesPerServing":16,"IsAvailable":true,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":4.5,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null},{"@odata.type":"#DataJS.Tests.V4.PreparedFood","FoodID":4,"Name":"Cobb Salad","UnitPrice":1.99,"ServingSize":-1,"MeasurementUnit":"cups","ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":3,"CaloriesPerServing":5,"IsAvailable":true,"Ex pirationDate":"2000-12-29T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":5.674,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","NumberOfIngredients":4}],"@odata.nextLink":"Foods?$skiptoken=4"}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods","value":[{"FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":7.922816251426434e+28,"Height":32767,"Width":9223372036854776000,"Volume":1.7976931348623157e+308,"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","[email protected]":"#Int16","[email protected]":"#Int64","[email protected]":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","[email protected]":"#String","[email protected]":"#String","[email protected]":"#Int32","RequiresRe [email protected]":"#Boolean","[email protected]":"#DateTimeOffset"},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6,"@odata.type":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Decimal","[email protected]":"#Int16","[email protected]":"#Int64","[email protected]":"#Double"},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001,"@odata.type":"#DataJS.Tests.V4.ProviderDetails","[email protected]":"#String","[email protected]":"#Int32"},"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","[email protected]":"#String","[email protected]":"#Collection(String)"},{"Name":"Ground Grains","Aliases":[],"Details":null,"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","[email protected]":"#String","[email protected]":"#Collection(String)","[email protected]":"#DataJS.Tests.V4.ProviderDetails"}],"SpatialData":{"type":"Geometr yCollection","geometries":[{"type":"Point","coordinates":[5,5]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}},"@odata.type":"#Edm.GeometryCollection"},"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)","@odata.editLink":"Foods(0)","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Double","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Byte","[email protected]":"#Int16","[email protected]":"#Int32","[email protected]":"#Int64","[email protected]":"#Boolean","[email protected]":"#DateTimeOffset","[email protected]":"#Guid","[email protected]":"#Single","[email protected]":"#SByte","[email protected]":"#Collection(String)","[email protected]":"#Collection(DataJS.Tests.V4.Provider)"},{"FoodID":1,"Name":"sugar","UnitPrice":0.2,"ServingSize":1,"MeasurementUni t":"tsp","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":4,"CaloriesPerServing":16,"IsAvailable":false,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"ffffffff-ffff-ffff-ffff-ffffffffffff","Weight":0.1,"AvailableUnits":0,"Packaging":{"Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":-7.922816251426434e+28,"Height":-32768,"Width":-9223372036854776000,"Volume":-1.7976931348623157e+308,"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","[email protected]":"#Int16","[email protected]":"#Int64","[email protected]":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","[email protected]":"#String","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean","[email protected]":"#DateTimeOffset"},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"@odata.type":"#DataJS.Tests.V4.Food","@od ata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(1)","@odata.editLink":"Foods(1)","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Double","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Byte","[email protected]":"#Int16","[email protected]":"#Int32","[email protected]":"#Int64","[email protected]":"#Boolean","[email protected]":"#DateTimeOffset","[email protected]":"#Guid","[email protected]":"#Single","[email protected]":"#SByte","[email protected]":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Collection(String)","[email protected]":"#Collection(DataJS.Tests.V4.Provider)","[email protected]":"#GeometryCollection"},{"FoodID":2,"Name":"1 Chicken Egg","UnitPrice":0.55,"ServingSize":1,"MeasurementUnit":null,"ProteinGrams":6,"FatGrams":1,"CarbohydrateGrams":1,"CaloriesPerServing":70,"IsA vailable":true,"ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID":"00000000-0000-0000-0000-000000000000","Weight":0,"AvailableUnits":-128,"Packaging":{"Type":"18 - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null,"@odata.type":"#DataJS.Tests.V4.Package","[email protected]":"#String","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean","[email protected]":"#DateTimeOffset","[email protected]":"#DataJS.Tests.V4.Dimensions"},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(2)","@odata.editLink":"Foods(2)","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Double","[email protected]":"#Decimal","[email protected]":"#String","ProteinGrams @odata.type":"#Byte","[email protected]":"#Int16","[email protected]":"#Int32","[email protected]":"#Int64","[email protected]":"#Boolean","[email protected]":"#DateTimeOffset","[email protected]":"#Guid","[email protected]":"#Single","[email protected]":"#SByte","[email protected]":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Collection(String)","[email protected]":"#Collection(DataJS.Tests.V4.Provider)","[email protected]":"#GeometryCollection"},{"FoodID":3,"Name":"Brown Sugar","UnitPrice":1.6,"ServingSize":1,"MeasurementUnit":"TSP.","ProteinGrams":0,"FatGrams":0,"CarbohydrateGrams":5,"CaloriesPerServing":16,"IsAvailable":true,"ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":4.5,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://loca lhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(3)","@odata.editLink":"Foods(3)","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Double","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Byte","[email protected]":"#Int16","[email protected]":"#Int32","[email protected]":"#Int64","[email protected]":"#Boolean","[email protected]":"#DateTimeOffset","[email protected]":"#Guid","[email protected]":"#Single","[email protected]":"#SByte","[email protected]":"#DataJS.Tests.V4.Package","[email protected]":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Collection(String)","[email protected]":"#Collection(DataJS.Tests.V4.Provider)","[email protected]":"#GeometryCollection"},{"@odata.type":"#DataJS.Tests.V4.PreparedFood","FoodID":4,"Name":"Cobb Salad","UnitPrice":1.99,"ServingSize":-1,"MeasurementUnit":"cups","Pro teinGrams":6,"FatGrams":1,"CarbohydrateGrams":3,"CaloriesPerServing":5,"IsAvailable":true,"ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight":5.674,"AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","NumberOfIngredients":4,"@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(4)","@odata.editLink":"Foods(4)","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Double","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Byte","[email protected]":"#Int16","[email protected]":"#Int32","[email protected]":"#Int64","[email protected]":"#Boolean","[email protected]":"#DateTimeOffset","[email protected]":"#Guid","[email protected]":"#Single","[email protected]":"#SByte","[email protected]":"# DataJS.Tests.V4.Package","[email protected]":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Collection(String)","[email protected]":"#Collection(DataJS.Tests.V4.Provider)","[email protected]":"#GeometryCollection","[email protected]":"#String","[email protected]":"#Single"}],"@odata.nextLink":"Foods?$skiptoken=4"} +},{ + description: "Entry with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods/$entity","FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6.0},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}],"Sp atialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods/$entity","FoodID":0,"Name":"flour","UnitPrice":0.19999,"ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams":3,"FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight":10,"AvailableUnits":1,"Packaging":{"Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":7.922816251426434e+28,"Height":32767,"Width":9223372036854776000,"Volume":1.7976931348623157e+308,"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","[email protected]":"#Int16","[email protected]":"#Int64","[email protected]":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","[email protected]":"#String","[email protected]":"#String","[email protected]":"#Int32","RequiresRefr [email protected]":"#Boolean","[email protected]":"#DateTimeOffset"},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6,"@odata.type":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Decimal","[email protected]":"#Int16","[email protected]":"#Int64","[email protected]":"#Double"},"AlternativeNames":["ground cereal","ground grain"],"Providers":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001,"@odata.type":"#DataJS.Tests.V4.ProviderDetails","[email protected]":"#String","[email protected]":"#Int32"},"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","[email protected]":"#String","[email protected]":"#Collection(String)"},{"Name":"Ground Grains","Aliases":[],"Details":null,"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","[email protected]":"#String","[email protected]":"#Collection(String)","[email protected]":"#DataJS.Tests.V4.ProviderDetails"}],"SpatialData":{"type":"GeometryC ollection","geometries":[{"type":"Point","coordinates":[5,5]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}},"@odata.type":"#Edm.GeometryCollection"},"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)","@odata.editLink":"Foods(0)","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Double","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Byte","[email protected]":"#Int16","[email protected]":"#Int32","[email protected]":"#Int64","[email protected]":"#Boolean","[email protected]":"#DateTimeOffset","[email protected]":"#Guid","[email protected]":"#Single","[email protected]":"#SByte","[email protected]":"#Collection(String)","[email protected]":"#Collection(DataJS.Tests.V4.Provider)"} +},{ + description: "Collection of Complex with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Providers", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Providers","value":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001}},{"Name":"Ground Grains","Aliases":[],"Details":null}]}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Providers","value":[{"Name":"Flour Provider","Aliases":["fp1","flour provider1"],"Details":{"Telephone":"555-555-555","PreferredCode":1001,"@odata.type":"#DataJS.Tests.V4.ProviderDetails","[email protected]":"#String","[email protected]":"#Int32"},"@odata.type":"#DataJS.Tests.V4.Provider","[email protected]":"#String","[email protected]":"#Collection(String)"},{"Name":"Ground Grains","Aliases":[],"Details":null,"@odata.type":"#DataJS.Tests.V4.Provider","[email protected]":"#String","[email protected]":"#Collection(String)","[email protected]":"#DataJS.Tests.V4.ProviderDetails"}],"@odata.type":"#Collection(DataJS.Tests.V4.Provider)"} +},{ + description: "Collection of Simple with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/AlternativeNames", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/AlternativeNames","value":["ground cereal","ground grain"]}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/AlternativeNames","value":["ground cereal","ground grain"],"@odata.type":"#Collection(String)"} +},{ + description: "Collection Property with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Packaging", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Packaging","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":79228162514264337593543950335,"Height":32767,"Width":9223372036854775807,"Volume":1.7976931348623157E+308}}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Packaging","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"Length":7.922816251426434e+28,"Height":32767,"Width":9223372036854776000,"Volume":1.7976931348623157e+308,"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","[email protected]":"#Int16","[email protected]":"#Int64","[email protected]":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","[email protected]":"#String","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean","[email protected]":"#DateTimeOffset"} +},{ + description: "Simple Property with metadata=minimal", + header: "application/json;odata.metadata=minimal", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Name", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Name","value":"flour"}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Name","value":"flour","[email protected]":"#String"} +}]; + + +var testDataJsonParserMetadataFull = [{ + description: "Feed with metadata=full", + header: "application/json;odata.metadata=full", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods","value":[{"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)","@odata.editLink":"Foods(0)","FoodID":0,"Name":"flour","UnitPrice":0.19999,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":"Cup","[email protected]":"#Byte","ProteinGrams":3,"[email protected]":"#Int16","FatGrams":1,"CarbohydrateGrams":20,"[email protected]":"#Int64","CaloriesPerServing":140,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2010-12-25T12:00:00Z","[email protected]":"#Guid","ItemGUID":"27272727-2727-2727-2727-272727272727","[email protected]":"#Single","Weight":10,"[email protected]":"#SByte","AvailableUnits":1,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration ":false,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","Length":79228162514264337593543950335,"[email protected]":"#Int16","Height":32767,"[email protected]":"#Int64","Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"@odata.type":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Decimal","Length":2,"[email protected]":"#Int16","Height":1,"[email protected]":"#Int64","Width":3,"Volume":6.0},"[email protected]":"#Collection(String)","AlternativeNames":["ground cereal","ground grain"],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","[email protected]":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001}},{"@odata.typ e":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","[email protected]":"#Collection(String)","Aliases":[],"Details":null}],"[email protected]":"#GeometryCollection","SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"[email protected]":"Foods(0)/Category"},{"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(1)","@odata.editLink":"Foods(1)","FoodID":1,"Name":"sugar","UnitPrice":0.2,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":"tsp","[email protected]":"#Byte","ProteinGrams":0,"[email protected]":"#Int16","FatGrams":0,"CarbohydrateGrams":4,"[email protected]":"#Int64","CaloriesPerServing":16,"IsAvailable":false,"[email protected]":"#DateTimeOffset","ExpirationDate":"2011-12-28T00:00:00Z","[email protected]":"#Guid","ItemGUID":"ffffffff-f fff-ffff-ffff-ffffffffffff","[email protected]":"#Single","Weight":0.1,"[email protected]":"#SByte","AvailableUnits":0,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","Length":-79228162514264337593543950335,"[email protected]":"#Int16","Height":-32768,"[email protected]":"#Int64","Width":-9223372036854775808,"Volume":-1.7976931348623157E+308}},"CookedSize":null,"[email protected]":"#Collection(String)","AlternativeNames":[],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"[email protected]":"Foods(1)/Category"},{"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(2)","@odata.edit Link":"Foods(2)","FoodID":2,"Name":"1 Chicken Egg","UnitPrice":0.55,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":null,"[email protected]":"#Byte","ProteinGrams":6,"[email protected]":"#Int16","FatGrams":1,"CarbohydrateGrams":1,"[email protected]":"#Int64","CaloriesPerServing":70,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2000-12-29T00:00:00Z","[email protected]":"#Guid","ItemGUID":"00000000-0000-0000-0000-000000000000","[email protected]":"#Single","Weight":0,"[email protected]":"#SByte","AvailableUnits":-128,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":"18 - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null},"CookedSize":null,"[email protected]":"#Collection(String)","AlternativeNames":[],"[email protected]":"#Collection(DataJS.Test s.V4.Provider)","Providers":[],"SpatialData":null,"[email protected]":"Foods(2)/Category"},{"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(3)","@odata.editLink":"Foods(3)","FoodID":3,"Name":"Brown Sugar","UnitPrice":1.6,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":"TSP.","[email protected]":"#Byte","ProteinGrams":0,"[email protected]":"#Int16","FatGrams":0,"CarbohydrateGrams":5,"[email protected]":"#Int64","CaloriesPerServing":16,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2011-12-28T00:00:00Z","[email protected]":"#Guid","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","[email protected]":"#Single","Weight":4.5,"[email protected]":"#SByte","AvailableUnits":127,"Packaging":null,"CookedSize":null,"[email protected]":"#Collection(String)","AlternativeNames":[],"[email protected]":"#Collection( DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"[email protected]":"Foods(3)/Category"},{"@odata.type":"#DataJS.Tests.V4.PreparedFood","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(4)","@odata.editLink":"Foods(4)/DataJS.Tests.V4.PreparedFood","FoodID":4,"Name":"Cobb Salad","UnitPrice":1.99,"[email protected]":"#Decimal","ServingSize":-1,"MeasurementUnit":"cups","[email protected]":"#Byte","ProteinGrams":6,"[email protected]":"#Int16","FatGrams":1,"CarbohydrateGrams":3,"[email protected]":"#Int64","CaloriesPerServing":5,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2000-12-29T00:00:00Z","[email protected]":"#Guid","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","[email protected]":"#Single","Weight":5.674,"[email protected]":"#SByte","AvailableUnits":127,"Packaging":null,"CookedSize":null,"[email protected]":"#Collection(String)","Alterna tiveNames":[],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","[email protected]":"#Single","NumberOfIngredients":4,"[email protected]":"Foods(4)/DataJS.Tests.V4.PreparedFood/Category"}],"@odata.nextLink":"Foods?$skiptoken=4"}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods","value":[{"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)","@odata.editLink":"Foods(0)","FoodID":0,"Name":"flour","UnitPrice":0.19999,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":"Cup","[email protected]":"#Byte","ProteinGrams":3,"[email protected]":"#Int16","FatGrams":1,"CarbohydrateGrams":20,"[email protected]":"#Int64","CaloriesPerServing":140,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2010-12-25T12:00:00Z","[email protected]":"#Guid","ItemGUID":"27272727-2727-2727-2727-272727272727","[email protected]":"#Single","Weight":10,"[email protected]":"#SByte","AvailableUnits":1,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration ":false,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","Length":7.922816251426434e+28,"[email protected]":"#Int16","Height":32767,"[email protected]":"#Int64","Width":9223372036854776000,"Volume":1.7976931348623157e+308,"[email protected]":"#Int32"},"[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean"},"CookedSize":{"@odata.type":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Decimal","Length":2,"[email protected]":"#Int16","Height":1,"[email protected]":"#Int64","Width":3,"Volume":6,"[email protected]":"#Int32"},"[email protected]":"#Collection(String)","AlternativeNames":["ground cereal","ground grain"],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","[email protected]":"#Collection(Str ing)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001,"[email protected]":"#String","[email protected]":"#Int32"},"[email protected]":"#String"},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","[email protected]":"#Collection(String)","Aliases":[],"Details":null,"[email protected]":"#String"}],"[email protected]":"#GeometryCollection","SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5,5],"[email protected]":"#String"}],"crs":{"type":"name","properties":{"name":"EPSG:4326","[email protected]":"#String"},"[email protected]":"#String"},"[email protected]":"#String"},"[email protected]":"Foods(0)/Category","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean"},{"@odata.typ e":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(1)","@odata.editLink":"Foods(1)","FoodID":1,"Name":"sugar","UnitPrice":0.2,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":"tsp","[email protected]":"#Byte","ProteinGrams":0,"[email protected]":"#Int16","FatGrams":0,"CarbohydrateGrams":4,"[email protected]":"#Int64","CaloriesPerServing":16,"IsAvailable":false,"[email protected]":"#DateTimeOffset","ExpirationDate":"2011-12-28T00:00:00Z","[email protected]":"#Guid","ItemGUID":"ffffffff-ffff-ffff-ffff-ffffffffffff","[email protected]":"#Single","Weight":0.1,"[email protected]":"#SByte","AvailableUnits":0,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4. Dimensions","[email protected]":"#Decimal","Length":-7.922816251426434e+28,"[email protected]":"#Int16","Height":-32768,"[email protected]":"#Int64","Width":-9223372036854776000,"Volume":-1.7976931348623157e+308,"[email protected]":"#Int32"},"[email protected]":"#String","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean"},"CookedSize":null,"[email protected]":"#Collection(String)","AlternativeNames":[],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"[email protected]":"Foods(1)/Category","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean"},{"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(2)","@odata.editLink":"Foods(2)","FoodID" :2,"Name":"1 Chicken Egg","UnitPrice":0.55,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":null,"[email protected]":"#Byte","ProteinGrams":6,"[email protected]":"#Int16","FatGrams":1,"CarbohydrateGrams":1,"[email protected]":"#Int64","CaloriesPerServing":70,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2000-12-29T00:00:00Z","[email protected]":"#Guid","ItemGUID":"00000000-0000-0000-0000-000000000000","[email protected]":"#Single","Weight":0,"[email protected]":"#SByte","AvailableUnits":-128,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":"18 - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null,"[email protected]":"#String","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean"},"CookedSize":null,"Al [email protected]":"#Collection(String)","AlternativeNames":[],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"[email protected]":"Foods(2)/Category","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Decimal","[email protected]":"#Int32","[email protected]":"#Boolean"},{"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(3)","@odata.editLink":"Foods(3)","FoodID":3,"Name":"Brown Sugar","UnitPrice":1.6,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":"TSP.","[email protected]":"#Byte","ProteinGrams":0,"[email protected]":"#Int16","FatGrams":0,"CarbohydrateGrams":5,"[email protected]":"#Int64","CaloriesPerServing":16,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2011-12-28T00:00:00Z","[email protected]":"#Guid","ItemGUID": "01234567-89ab-cdef-0123-456789abcdef","[email protected]":"#Single","Weight":4.5,"[email protected]":"#SByte","AvailableUnits":127,"Packaging":null,"CookedSize":null,"[email protected]":"#Collection(String)","AlternativeNames":[],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"[email protected]":"Foods(3)/Category","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean"},{"@odata.type":"#DataJS.Tests.V4.PreparedFood","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(4)","@odata.editLink":"Foods(4)/DataJS.Tests.V4.PreparedFood","FoodID":4,"Name":"Cobb Salad","UnitPrice":1.99,"[email protected]":"#Decimal","ServingSize":-1,"MeasurementUnit":"cups","[email protected]":"#Byte","ProteinGrams":6,"[email protected]": "#Int16","FatGrams":1,"CarbohydrateGrams":3,"[email protected]":"#Int64","CaloriesPerServing":5,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2000-12-29T00:00:00Z","[email protected]":"#Guid","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","[email protected]":"#Single","Weight":5.674,"[email protected]":"#SByte","AvailableUnits":127,"Packaging":null,"CookedSize":null,"[email protected]":"#Collection(String)","AlternativeNames":[],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","[email protected]":"#Single","NumberOfIngredients":4,"[email protected]":"Foods(4)/DataJS.Tests.V4.PreparedFood/Category","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean","Instru [email protected]":"#String"}],"@odata.nextLink":"Foods?$skiptoken=4"} +},{ + description: "Entry with metadata=full", + header: "application/json;odata.metadata=full", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods/$entity","@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)","@odata.editLink":"Foods(0)","FoodID":0,"Name":"flour","UnitPrice":0.19999,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":"Cup","[email protected]":"#Byte","ProteinGrams":3,"[email protected]":"#Int16","FatGrams":1,"CarbohydrateGrams":20,"[email protected]":"#Int64","CaloriesPerServing":140,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2010-12-25T12:00:00Z","[email protected]":"#Guid","ItemGUID":"27272727-2727-2727-2727-272727272727","[email protected]":"#Single","Weight":10,"[email protected]":"#SByte","AvailableUnits":1,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration": false,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","Length":79228162514264337593543950335,"[email protected]":"#Int16","Height":32767,"[email protected]":"#Int64","Width":9223372036854775807,"Volume":1.7976931348623157E+308}},"CookedSize":{"@odata.type":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Decimal","Length":2,"[email protected]":"#Int16","Height":1,"[email protected]":"#Int64","Width":3,"Volume":6.0},"[email protected]":"#Collection(String)","AlternativeNames":["ground cereal","ground grain"],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","[email protected]":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001}},{"@odata.type" :"#DataJS.Tests.V4.Provider","Name":"Ground Grains","[email protected]":"#Collection(String)","Aliases":[],"Details":null}],"[email protected]":"#GeometryCollection","SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5.0,5.0]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"[email protected]":"Foods(0)/Category"}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods/$entity","@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)","@odata.editLink":"Foods(0)","FoodID":0,"Name":"flour","UnitPrice":0.19999,"[email protected]":"#Decimal","ServingSize":1,"MeasurementUnit":"Cup","[email protected]":"#Byte","ProteinGrams":3,"[email protected]":"#Int16","FatGrams":1,"CarbohydrateGrams":20,"[email protected]":"#Int64","CaloriesPerServing":140,"IsAvailable":true,"[email protected]":"#DateTimeOffset","ExpirationDate":"2010-12-25T12:00:00Z","[email protected]":"#Guid","ItemGUID":"27272727-2727-2727-2727-272727272727","[email protected]":"#Single","Weight":10,"[email protected]":"#SByte","AvailableUnits":1,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration": false,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","Length":7.922816251426434e+28,"[email protected]":"#Int16","Height":32767,"[email protected]":"#Int64","Width":9223372036854776000,"Volume":1.7976931348623157e+308,"[email protected]":"#Int32"},"[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean"},"CookedSize":{"@odata.type":"#DataJS.Tests.V4.CookedDimensions","[email protected]":"#Decimal","Length":2,"[email protected]":"#Int16","Height":1,"[email protected]":"#Int64","Width":3,"Volume":6,"[email protected]":"#Int32"},"[email protected]":"#Collection(String)","AlternativeNames":["ground cereal","ground grain"],"[email protected]":"#Collection(DataJS.Tests.V4.Provider)","Providers":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","[email protected]":"#Collection(Strin g)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001,"[email protected]":"#String","[email protected]":"#Int32"},"[email protected]":"#String"},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","[email protected]":"#Collection(String)","Aliases":[],"Details":null,"[email protected]":"#String"}],"[email protected]":"#GeometryCollection","SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5,5],"[email protected]":"#String"}],"crs":{"type":"name","properties":{"name":"EPSG:4326","[email protected]":"#String"},"[email protected]":"#String"},"[email protected]":"#String"},"[email protected]":"Foods(0)/Category","[email protected]":"#Int32","[email protected]":"#String","[email protected]":"#Decimal","[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean"} +},{ + description: "Collection of Complex with metadata=full", + header: "application/json;odata.metadata=full", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Providers", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Providers","@odata.type":"#Collection(DataJS.Tests.V4.Provider)","value":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","[email protected]":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001}},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","[email protected]":"#Collection(String)","Aliases":[],"Details":null}]}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Providers","@odata.type":"#Collection(DataJS.Tests.V4.Provider)","value":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","[email protected]":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001,"[email protected]":"#String","[email protected]":"#Int32"},"[email protected]":"#String"},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","[email protected]":"#Collection(String)","Aliases":[],"Details":null,"[email protected]":"#String"}]} +},{ + description: "Collection of Simple with metadata=full", + header: "application/json;odata.metadata=full", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/AlternativeNames", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/AlternativeNames","@odata.type":"#Collection(String)","value":["ground cereal","ground grain"]}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/AlternativeNames","@odata.type":"#Collection(String)","value":["ground cereal","ground grain"]} +},{ + description: "Collection Property with metadata=full", + header: "application/json;odata.metadata=full", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Packaging", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Packaging","@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","Length":79228162514264337593543950335,"[email protected]":"#Int16","Height":32767,"[email protected]":"#Int64","Width":9223372036854775807,"Volume":1.7976931348623157E+308}}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Packaging","@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"[email protected]":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","[email protected]":"#Decimal","Length":7.922816251426434e+28,"[email protected]":"#Int16","Height":32767,"[email protected]":"#Int64","Width":9223372036854776000,"Volume":1.7976931348623157e+308,"[email protected]":"#Int32"},"[email protected]":"#String","[email protected]":"#Int32","[email protected]":"#Boolean"} +},{ + description: "Simple Property with metadata=full", + header: "application/json;odata.metadata=full", + usedUrl: "http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)/Name", + input: '{"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Name","value":"flour"}', + expected: {"@odata.context":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/$metadata#Foods(0)/Name","value":"flour","[email protected]":"#String"} +}]; + + +var testDataJsonParser1= [ + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, expected: {} }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, + expected: { + "@odata.context": "http://foo/OData.svc/$metadata", + value: [ + { + name: "Products", + kind: "EntitySet", + url: "Products" + }, + { + name: "ProductDetails", + kind: "EntitySet", + url: "ProductDetails" + } + ] + } + }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, + expected: { + value: [ + { + name: "Products", + kind: "EntitySet", + url: "http://foo/OData.svc/Products" + }, + { + name: "ProductDetails", + kind: "EntitySet", + url: "http://foo/OData.svc/ProductDetails" + } + ] + } + }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, expected: { "@odata.context": "http://foo/OData.svc/$metadata#Products(0)/Name", value: "Bread"} }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, + expected: { + "@odata.context": "http://foo/OData.svc/$metadata#Products", + value: [ + { + "@odata.type": "#ODataDemo.Product", + "@odata.id": "http://foo/OData.svc/Products(0)", + "@odata.editLink": "Products(0)", + "[email protected]": "Products(0)/Categories", + "[email protected]": "Products(0)/Categories/$ref", + "[email protected]": "Products(0)/Supplier", + "[email protected]": "Products(0)/Supplier/$ref", + "[email protected]": "Products(0)/ProductDetail", + "[email protected]": "Products(0)/ProductDetail/$ref", + ID: 0, + Name: "Bread", + Description: "Whole grain bread", + "[email protected]": "#DateTimeOffset", + ReleaseDate: "1992-01-01T00:00:00Z", + DiscontinuedDate: null, + "[email protected]": "#Int16", + Rating: 4, + Price: 2.5 + }] + } + }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, + expected: { + "@odata.context": "http://foo/OData.svc/$metadata#Products", + value: [ + { + ID: 0, + Name: "Bread", + Description: "Whole grain bread", + ReleaseDate: "1992-01-01T00:00:00Z", + DiscontinuedDate: null, + Rating: 4, + Price: 2.5 + }] + } + }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, + expected: { + value: [ + { + ID: 0, + Name: "Bread", + Description: "Whole grain bread", + ReleaseDate: "1992-01-01T00:00:00Z", + DiscontinuedDate: null, + Rating: 4, + Price: 2.5 + }] + } + }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, + expected: { + "@odata.context": "http://foo/OData.svc/$metadata#Products/$entry", + "@odata.type": "#ODataDemo.Product", + "@odata.id": "http://foo/OData.svc/Products(0)", + "@odata.editLink": "Products(0)", + "[email protected]": "Products(0)/Categories", + "[email protected]": "Products(0)/Categories/$ref", + "[email protected]": "Products(0)/Supplier", + "[email protected]": "Products(0)/Supplier/$ref", + "[email protected]": "Products(0)/ProductDetail", + "[email protected]": "Products(0)/ProductDetail/$ref", + ID: 0, + Name: "Bread", + Description: "Whole grain bread", + "[email protected]": "#DateTimeOffset", + ReleaseDate: "1992-01-01T00:00:00Z", + DiscontinuedDate: null, + "[email protected]": "#Int16", + Rating: 4, + Price: 2.5 + } + }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, + expected: { + "@odata.context": "http://foo/OData.svc/$metadata#Products/$entry", + ID: 0, + Name: "Bread", + Description: "Whole grain bread", + ReleaseDate: "1992-01-01T00:00:00Z", + DiscontinuedDate: null, + Rating: 4, + Price: 2.5 + } + }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, + expected: { + ID: 0, + Name: "Bread", + Description: "Whole grain bread", + ReleaseDate: "1992-01-01T00:00:00Z", + DiscontinuedDate: null, + Rating: 4, + Price: 2.5 + } + }, + { context: { response: { requestUri: "http://base.org" }, dataServiceVersion: "4.0" }, + expected: { + "@odata.context": "http://foo/$metadata#Customer(-10)/PrimaryContactInfo/AlternativeNames", + "@odata.type": "#Collection(String)", + value: [ + "ã°ããããºï¾ã½ãã¼ã½ã²ããã´ã½æ¹ä¹ï¾ããÑãã½çã¯Ñãã¹æ¹ç±Ð¯æ¬²ã¿ããã裹ã¼ããヲæ¹ãã²ä¹ã²åãï½", + "qckrnuruxcbhjfimnsykgfquffobcadpsaocixoeljhspxrhebkudppgndgcrlyvynqhbujrnvyxyymhnroemigogsqulvgallta", + "btsnhqrjqryqzgxducl", + "qbtlssjhunufmzdv", + "ããЯããã¹ã¼ããã»ï½åãã¼ä¹ãã²ãç±é»ãããã¿ã³æ¦ã¯ã½ã½ãã¾ãããã¼ãã²ã¿ãã¿ããå¼ã²ã¹å", + "vicqasfdkxsuyuzspjqunxpyfuhlxfhgfqnlcpdfivqnxqoothnfsbuykfguftgulgldnkkzufssbae", + "ä¹ã½ããããã¾ãÑï½ããЯã¾ã¾ã¿ãã¿ã²ç¸·ããï½ããã¼ã½", + "ã½ãã¿ããé»ã½ã¼ãã¼åï½ã½ãããã¡ã¾ã½ãï½ã¿ã¾å¼ãã¼ã¿ãï½ãºãã裹ããããヲãºãããåã", + "hssiiÃuamtctgqhglmusexyikhcsqctusonubxorssyizhyqpbtbdÃjnelxqttkhdalabibuqhiubtÃsptrmzelud", + "gbjssllxzzxkmÃppyyrhgmoeÃizlcmsuqqnvjÃudszevtfunflqzqcuubukypÃqjcix" + ] + } + } + ]; + + + + +/*-----------------------------------------------*/ +/*-----------------------------------------------*/ +/*-----------------------------------------------*/ +/*-----------------------------------------------*/ +/*-----------------------------------------------*/ +/*-----------------------------------------------*/ +/*-----------------------------------------------*/ +describe('TEST odata-json.js', function() { + describe('with odata.metadata=none', function() { + for( var i = 0; i < testDataJsonParserMetadataNone.length;i++) { + callTest_None(testDataJsonParserMetadataNone[i],context); + } + }); + + describe('with odata.metadata=minimal', function() { + for( var i = 0; i < testDataJsonParserMetadataMinimal.length;i++) { + callTest_Minimal(testDataJsonParserMetadataMinimal[i],context); + } + }); + + describe('with odata.metadata=minimal to full', function() { + for( var i = 0; i < testDataJsonParserMetadataMinimalToFull.length;i++) { + callTest_MinimalToFull(testDataJsonParserMetadataMinimalToFull[i],context); + } + }); + + describe('with odata.metadata=full', function() { + for( var i = 0; i < testDataJsonParserMetadataFull.length;i++) { + callTest_Full(testDataJsonParserMetadataFull[i],context); + } + }); +}); \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/503b4417/test/test-utils.js ---------------------------------------------------------------------- diff --git a/test/test-utils.js b/test/test-utils.js new file mode 100644 index 0000000..de48b41 --- /dev/null +++ b/test/test-utils.js @@ -0,0 +1,33 @@ +/* + * 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. + */ + +var odatajs = require('./../src/index-node.js'); +var chai = require('chai'); +var assert = chai.assert; + +describe('TEST utils.js', function() { + it('utils.isArray', function () { + assert.isTrue(odatajs.utils.isArray([])); + assert.isTrue(odatajs.utils.isArray([1, 2])); + assert.isTrue(!odatajs.utils.isArray({})); + assert.isTrue(!odatajs.utils.isArray("1,2,3,4")); + assert.isTrue(!odatajs.utils.isArray()); + assert.isTrue(!odatajs.utils.isArray(null)); + }); +});
