http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/5bff25da/test/test-odata-json.js ---------------------------------------------------------------------- diff --git a/test/test-odata-json.js b/test/test-odata-json.js index bfbb99f..32c243d 100644 --- a/test/test-odata-json.js +++ b/test/test-odata-json.js @@ -16,391 +16,1892 @@ * specific language governing permissions and limitations * under the License. */ +'use strict'; 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); +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); +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); +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); +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"} + 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]}], + "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, + "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 + }, + "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, + "CookedSize": 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"} + 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, + "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 + }, + "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, + "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.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}], + "SpatialData": { + "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 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", "nullable": "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.String)", + "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": "FoodsAvailable", + "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",
<TRUNCATED>
