[OLINGO-439] fix for node tests
diff --git a/odatajs/test/test-demo-scenario.js b/odatajs/test/test-demo-scenario.js
index ab9cb99..bae2b66 100644
--- a/odatajs/test/test-demo-scenario.js
+++ b/odatajs/test/test-demo-scenario.js
@@ -103,19 +103,19 @@
   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,"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"}',
-  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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams@odata.type":"#Byte","ProteinGrams":3,"FatGrams@odata.type":"#Int16","FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight@odata.type":"#Single","Weight":10,"AvailableUnits@odata.type":"#SByte","AvailableUnits":1,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Length":7.922816251426434e+28,"Height@odata.type":"#Int16","Height":32767,"Width@odata.type":"#Int64","Width":9223372036854776000,"Volume":1.7976931348623157e+308,"Volume@odata.type":"#Int32"},"Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"},"CookedSize":{"@odata.type":"#DataJS.Tests.V4.CookedDimensions","Length@odata.type":"#Decimal","Length":2,"Height@odata.type":"#Int16","Height":1,"Width@odata.type":"#Int64","Width":3,"Volume":6,"Volume@odata.type":"#Int32"},"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":["ground cereal","ground grain"],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","Aliases@odata.type":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001,"Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"Name@odata.type":"#String"},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","Aliases@odata.type":"#Collection(String)","Aliases":[],"Details":null,"Name@odata.type":"#String"}],"SpatialData@odata.type":"#GeometryCollection","SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5,5],"type@odata.type":"#String"}],"crs":{"type":"name","properties":{"name":"EPSG:4326","name@odata.type":"#String"},"type@odata.type":"#String"},"type@odata.type":"#String"},"Category@odata.navigationLink":"Foods(0)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#Boolean"},{"@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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":"tsp","ProteinGrams@odata.type":"#Byte","ProteinGrams":0,"FatGrams@odata.type":"#Int16","FatGrams":0,"CarbohydrateGrams":4,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":16,"IsAvailable":false,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"ffffffff-ffff-ffff-ffff-ffffffffffff","Weight@odata.type":"#Single","Weight":0.1,"AvailableUnits@odata.type":"#SByte","AvailableUnits":0,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Length":-7.922816251426434e+28,"Height@odata.type":"#Int16","Height":-32768,"Width@odata.type":"#Int64","Width":-9223372036854776000,"Volume":-1.7976931348623157e+308,"Volume@odata.type":"#Int32"},"Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"},"CookedSize":null,"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":[],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Category@odata.navigationLink":"Foods(1)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":null,"ProteinGrams@odata.type":"#Byte","ProteinGrams":6,"FatGrams@odata.type":"#Int16","FatGrams":1,"CarbohydrateGrams":1,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":70,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"00000000-0000-0000-0000-000000000000","Weight@odata.type":"#Single","Weight":0,"AvailableUnits@odata.type":"#SByte","AvailableUnits":-128,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":"18     - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null,"Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"},"CookedSize":null,"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":[],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Category@odata.navigationLink":"Foods(2)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":"TSP.","ProteinGrams@odata.type":"#Byte","ProteinGrams":0,"FatGrams@odata.type":"#Int16","FatGrams":0,"CarbohydrateGrams":5,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":16,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight@odata.type":"#Single","Weight":4.5,"AvailableUnits@odata.type":"#SByte","AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":[],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Category@odata.navigationLink":"Foods(3)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#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,"ServingSize@odata.type":"#Decimal","ServingSize":-1,"MeasurementUnit":"cups","ProteinGrams@odata.type":"#Byte","ProteinGrams":6,"FatGrams@odata.type":"#Int16","FatGrams":1,"CarbohydrateGrams":3,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":5,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight@odata.type":"#Single","Weight":5.674,"AvailableUnits@odata.type":"#SByte","AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":[],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","NumberOfIngredients@odata.type":"#Single","NumberOfIngredients":4,"Category@odata.navigationLink":"Foods(4)/DataJS.Tests.V4.PreparedFood/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#Boolean","Instructions@odata.type":"#String"}],"@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","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset"},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6,"@odata.type":"#DataJS.Tests.V4.CookedDimensions","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#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","Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)"},{"Name":"Ground Grains","Aliases":[],"Details":null,"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)","Details@odata.type":"#DataJS.Tests.V4.ProviderDetails"}],"SpatialData":{"type":"GeometryCollection","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)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)"},{"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":-7.922816251426434e+28,"Height":-32768,"Width":-9223372036854776000,"Volume":-1.7976931348623157e+308,"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset"},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(1)","@odata.editLink":"Foods(1)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","CookedSize@odata.type":"#DataJS.Tests.V4.CookedDimensions","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","SpatialData@odata.type":"#GeometryCollection"},{"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,"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset","PackageDimensions@odata.type":"#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)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","CookedSize@odata.type":"#DataJS.Tests.V4.CookedDimensions","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","SpatialData@odata.type":"#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://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(3)","@odata.editLink":"Foods(3)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","Packaging@odata.type":"#DataJS.Tests.V4.Package","CookedSize@odata.type":"#DataJS.Tests.V4.CookedDimensions","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","SpatialData@odata.type":"#GeometryCollection"},{"@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.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(4)","@odata.editLink":"Foods(4)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","Packaging@odata.type":"#DataJS.Tests.V4.Package","CookedSize@odata.type":"#DataJS.Tests.V4.CookedDimensions","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","SpatialData@odata.type":"#GeometryCollection","Instructions@odata.type":"#String","NumberOfIngredients@odata.type":"#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}],"SpatialData":{"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","@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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams@odata.type":"#Byte","ProteinGrams":3,"FatGrams@odata.type":"#Int16","FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight@odata.type":"#Single","Weight":10,"AvailableUnits@odata.type":"#SByte","AvailableUnits":1,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Length":7.922816251426434e+28,"Height@odata.type":"#Int16","Height":32767,"Width@odata.type":"#Int64","Width":9223372036854776000,"Volume":1.7976931348623157e+308,"Volume@odata.type":"#Int32"},"Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"},"CookedSize":{"@odata.type":"#DataJS.Tests.V4.CookedDimensions","Length@odata.type":"#Decimal","Length":2,"Height@odata.type":"#Int16","Height":1,"Width@odata.type":"#Int64","Width":3,"Volume":6,"Volume@odata.type":"#Int32"},"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":["ground cereal","ground grain"],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","Aliases@odata.type":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001,"Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"Name@odata.type":"#String"},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","Aliases@odata.type":"#Collection(String)","Aliases":[],"Details":null,"Name@odata.type":"#String"}],"SpatialData@odata.type":"#GeometryCollection","SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5,5],"type@odata.type":"#String"}],"crs":{"type":"name","properties":{"name":"EPSG:4326","name@odata.type":"#String"},"type@odata.type":"#String"},"type@odata.type":"#String"},"Category@odata.navigationLink":"Foods(0)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#Boolean"}
+  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","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset"},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6,"@odata.type":"#DataJS.Tests.V4.CookedDimensions","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#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","Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)"},{"Name":"Ground Grains","Aliases":[],"Details":null,"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)","Details@odata.type":"#DataJS.Tests.V4.ProviderDetails"}],"SpatialData":{"type":"GeometryCollection","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)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#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","@odata.type":"#Collection(DataJS.Tests.V4.Provider)","value":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","Aliases@odata.type":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001,"Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"Name@odata.type":"#String"},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","Aliases@odata.type":"#Collection(String)","Aliases":[],"Details":null,"Name@odata.type":"#String"}]}
+  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","Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"@odata.type":"#DataJS.Tests.V4.Provider","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)"},{"Name":"Ground Grains","Aliases":[],"Details":null,"@odata.type":"#DataJS.Tests.V4.Provider","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)","Details@odata.type":"#DataJS.Tests.V4.ProviderDetails"}],"@odata.type":"#Collection(DataJS.Tests.V4.Provider)"}
 },{
   description: "Collection of Simple with metadata=minimal",
   header:  "application/json;odata.metadata=minimal",
@@ -127,7 +127,7 @@
   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","@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Length":7.922816251426434e+28,"Height@odata.type":"#Int16","Height":32767,"Width@odata.type":"#Int64","Width":9223372036854776000,"Volume":1.7976931348623157e+308,"Volume@odata.type":"#Int32"},"Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"}
+  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","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset"}
 },{
   description: "Simple Property with metadata=minimal",
   header:  "application/json;odata.metadata=minimal",
@@ -176,65 +176,68 @@
 }];
 
 
-var callTestNoMetadata = function(testData,done) {
+var callTestNoMetadata = function(testData) {
+  var testData = testData;
+  it(testData.description, function (done) {
+    var request = {
+        requestUri : testData.usedUrl,
+        headers :  {
+          Accept : testData.header
+        }
+    };
 
-  var request = {
-      requestUri : testData.usedUrl,
-      headers :  {
-        Accept : testData.header
-      }
-  };
+    var success = function success(data) {
+      assert.deepEqual(data, testData.expected, "test '" + testData.description + "' didn't return the expected data");
+      done();
+    };
 
-  var success = function success(data) {
-    assert.deepEqual(data, testData.expected, "test '" + testData.description + "' didn't return the expected data");
-    done();
-  };
-
-  var errorFunc = function errorFunc(err) {
-    assert.fail('errorFunc','success', 'success should called');
-    done(err);
-  };
- 
-   odatajs.oData.read(request, success, errorFunc);
+    var errorFunc = function errorFunc(err) {
+      assert.fail('errorFunc','success', 'success should called');
+      done(err);
+    };
+   
+     odatajs.oData.read(request, success, errorFunc);
+  });
 };
 
-var callTestMetadata = function(testData,metadata,done) {
-  var request = {
-      requestUri : testData.usedUrl,
-      headers :  {
-        Accept : testData.header
-      }
-  };
+var callTestMetadata = function(testData,metadataContainer) {
+  
+  var testData = testData;
+  it(testData.description, function (done) {
+    
+    var request = {
+        requestUri : testData.usedUrl,
+        headers :  {
+          Accept : testData.header
+        }
+    };
 
-  var success = function success(data) {
-    assert.deepEqual(data, testData.expected, "test '" + testData.description + "' didn't return the expected data");
-    done();
-  };
+    var success = function success(data) {
+      assert.deepEqual(data, testData.expected, "test '" + testData.description + "' didn't return the expected data");
+      done();
+    };
 
-  var errorFunc = function errorFunc(err) {
-    done(err);
-  };
+    var errorFunc = function errorFunc(err) {
+      done(err);
+    };
  
-  odatajs.oData.read(request, success, errorFunc, null, null, metadata);
+  odatajs.oData.read(request, success, errorFunc, null, null, metadataContainer.metadata);
+  });
 };
 
 describe('TEST Scenario (needs c# test server on localhost:4002)', function() {
 
     describe('with odata.metadata=none', function() {
         for( var i = 0; i < testDataJsonParserMetadataNone.length;i++) {
-          var testData = testDataJsonParserMetadataNone[i];
-          it(testData.description, function (done) {
-            callTestNoMetadata(testData,done);
-          });
+          
+            callTestNoMetadata(testDataJsonParserMetadataNone[i]);
+
         }
     });
 
     describe('with odata.metadata=minimal', function() {
         for( var i = 0; i < testDataJsonParserMetadataMinimal.length;i++) {
-          var testData = testDataJsonParserMetadataMinimal[i];
-          it(testData.description, function (done) {
-            callTestNoMetadata(testData,done);
-          });
+            callTestNoMetadata(testDataJsonParserMetadataMinimal[i]);
         }
     });
 
@@ -242,7 +245,7 @@
 
 
     describe('with odata.metadata=minimal to full', function() {
-      var metadata;
+      var metadataContainer = {};
 
       function errorFunc(err) {
             assert.fail('errorFunc','success', 'success should called');
@@ -251,7 +254,8 @@
 
       before('load Metadata',function(done) {
         var metaDatasuccess = function(lmetadata){
-            metadata = lmetadata;
+            
+            metadataContainer.metadata = lmetadata;
             done();
         };
         var oHeaders = {
@@ -271,19 +275,13 @@
       });
 
       for( var i = 0; i < testDataJsonParserMetadataMinimalToFull.length;i++) {
-        var testData = testDataJsonParserMetadataMinimalToFull[i];
-        it(testData.description, function (done) {
-          callTestMetadata(testData,metadata, done);
-        });
+            callTestMetadata(testDataJsonParserMetadataMinimalToFull[i],metadataContainer);
       }
     });
 
     describe('with odata.metadata=full', function() {
         for( var i = 0; i < testDataJsonParserMetadataFull.length;i++) {
-          var testData = testDataJsonParserMetadataFull[i];
-          it(testData.description, function (done) {
-            callTestNoMetadata(testData,done);
-          });
+            callTestNoMetadata(testDataJsonParserMetadataFull[i]);
         }
     });
 });
diff --git a/odatajs/test/test-odata-json.js b/odatajs/test/test-odata-json.js
index f0530f7..bfbb99f 100644
--- a/odatajs/test/test-odata-json.js
+++ b/odatajs/test/test-odata-json.js
@@ -21,12 +21,68 @@
 var chai = require('chai');
 var assert = chai.assert;
 
-var callTest = function(testData,context) {
-  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_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 = [{
@@ -112,31 +168,31 @@
   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,"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"}',
-  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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams@odata.type":"#Byte","ProteinGrams":3,"FatGrams@odata.type":"#Int16","FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight@odata.type":"#Single","Weight":10,"AvailableUnits@odata.type":"#SByte","AvailableUnits":1,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Length":7.922816251426434e+28,"Height@odata.type":"#Int16","Height":32767,"Width@odata.type":"#Int64","Width":9223372036854776000,"Volume":1.7976931348623157e+308,"Volume@odata.type":"#Int32"},"Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"},"CookedSize":{"@odata.type":"#DataJS.Tests.V4.CookedDimensions","Length@odata.type":"#Decimal","Length":2,"Height@odata.type":"#Int16","Height":1,"Width@odata.type":"#Int64","Width":3,"Volume":6,"Volume@odata.type":"#Int32"},"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":["ground cereal","ground grain"],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","Aliases@odata.type":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001,"Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"Name@odata.type":"#String"},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","Aliases@odata.type":"#Collection(String)","Aliases":[],"Details":null,"Name@odata.type":"#String"}],"SpatialData@odata.type":"#GeometryCollection","SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5,5],"type@odata.type":"#String"}],"crs":{"type":"name","properties":{"name":"EPSG:4326","name@odata.type":"#String"},"type@odata.type":"#String"},"type@odata.type":"#String"},"Category@odata.navigationLink":"Foods(0)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#Boolean"},{"@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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":"tsp","ProteinGrams@odata.type":"#Byte","ProteinGrams":0,"FatGrams@odata.type":"#Int16","FatGrams":0,"CarbohydrateGrams":4,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":16,"IsAvailable":false,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"ffffffff-ffff-ffff-ffff-ffffffffffff","Weight@odata.type":"#Single","Weight":0.1,"AvailableUnits@odata.type":"#SByte","AvailableUnits":0,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":" ","Color":"BLUE","NumberPerPackage":-2147483648,"RequiresRefridgeration":true,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Length":-7.922816251426434e+28,"Height@odata.type":"#Int16","Height":-32768,"Width@odata.type":"#Int64","Width":-9223372036854776000,"Volume":-1.7976931348623157e+308,"Volume@odata.type":"#Int32"},"Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"},"CookedSize":null,"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":[],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Category@odata.navigationLink":"Foods(1)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":null,"ProteinGrams@odata.type":"#Byte","ProteinGrams":6,"FatGrams@odata.type":"#Int16","FatGrams":1,"CarbohydrateGrams":1,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":70,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"00000000-0000-0000-0000-000000000000","Weight@odata.type":"#Single","Weight":0,"AvailableUnits@odata.type":"#SByte","AvailableUnits":-128,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":"18     - Carton","Color":" brown ","NumberPerPackage":0,"RequiresRefridgeration":true,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":null,"Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"},"CookedSize":null,"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":[],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Category@odata.navigationLink":"Foods(2)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":"TSP.","ProteinGrams@odata.type":"#Byte","ProteinGrams":0,"FatGrams@odata.type":"#Int16","FatGrams":0,"CarbohydrateGrams":5,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":16,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2011-12-28T00:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight@odata.type":"#Single","Weight":4.5,"AvailableUnits@odata.type":"#SByte","AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":[],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Category@odata.navigationLink":"Foods(3)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#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,"ServingSize@odata.type":"#Decimal","ServingSize":-1,"MeasurementUnit":"cups","ProteinGrams@odata.type":"#Byte","ProteinGrams":6,"FatGrams@odata.type":"#Int16","FatGrams":1,"CarbohydrateGrams":3,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":5,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2000-12-29T00:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"01234567-89ab-cdef-0123-456789abcdef","Weight@odata.type":"#Single","Weight":5.674,"AvailableUnits@odata.type":"#SByte","AvailableUnits":127,"Packaging":null,"CookedSize":null,"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":[],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[],"SpatialData":null,"Instructions":"1.) Open 2.) Eat","NumberOfIngredients@odata.type":"#Single","NumberOfIngredients":4,"Category@odata.navigationLink":"Foods(4)/DataJS.Tests.V4.PreparedFood/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#Boolean","Instructions@odata.type":"#String"}],"@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","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset"},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6,"@odata.type":"#DataJS.Tests.V4.CookedDimensions","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#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","Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)"},{"Name":"Ground Grains","Aliases":[],"Details":null,"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)","Details@odata.type":"#DataJS.Tests.V4.ProviderDetails"}],"SpatialData":{"type":"GeometryCollection","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)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)"},{"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":-7.922816251426434e+28,"Height":-32768,"Width":-9223372036854776000,"Volume":-1.7976931348623157e+308,"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset"},"CookedSize":null,"AlternativeNames":[],"Providers":[],"SpatialData":null,"@odata.type":"#DataJS.Tests.V4.Food","@odata.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(1)","@odata.editLink":"Foods(1)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","CookedSize@odata.type":"#DataJS.Tests.V4.CookedDimensions","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","SpatialData@odata.type":"#GeometryCollection"},{"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,"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset","PackageDimensions@odata.type":"#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)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","CookedSize@odata.type":"#DataJS.Tests.V4.CookedDimensions","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","SpatialData@odata.type":"#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://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(3)","@odata.editLink":"Foods(3)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","Packaging@odata.type":"#DataJS.Tests.V4.Package","CookedSize@odata.type":"#DataJS.Tests.V4.CookedDimensions","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","SpatialData@odata.type":"#GeometryCollection"},{"@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.id":"http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(4)","@odata.editLink":"Foods(4)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","Packaging@odata.type":"#DataJS.Tests.V4.Package","CookedSize@odata.type":"#DataJS.Tests.V4.CookedDimensions","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","SpatialData@odata.type":"#GeometryCollection","Instructions@odata.type":"#String","NumberOfIngredients@odata.type":"#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}],"SpatialData":{"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","@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,"ServingSize@odata.type":"#Decimal","ServingSize":1,"MeasurementUnit":"Cup","ProteinGrams@odata.type":"#Byte","ProteinGrams":3,"FatGrams@odata.type":"#Int16","FatGrams":1,"CarbohydrateGrams":20,"CaloriesPerServing@odata.type":"#Int64","CaloriesPerServing":140,"IsAvailable":true,"ExpirationDate@odata.type":"#DateTimeOffset","ExpirationDate":"2010-12-25T12:00:00Z","ItemGUID@odata.type":"#Guid","ItemGUID":"27272727-2727-2727-2727-272727272727","Weight@odata.type":"#Single","Weight":10,"AvailableUnits@odata.type":"#SByte","AvailableUnits":1,"Packaging":{"@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Length":7.922816251426434e+28,"Height@odata.type":"#Int16","Height":32767,"Width@odata.type":"#Int64","Width":9223372036854776000,"Volume":1.7976931348623157e+308,"Volume@odata.type":"#Int32"},"Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"},"CookedSize":{"@odata.type":"#DataJS.Tests.V4.CookedDimensions","Length@odata.type":"#Decimal","Length":2,"Height@odata.type":"#Int16","Height":1,"Width@odata.type":"#Int64","Width":3,"Volume":6,"Volume@odata.type":"#Int32"},"AlternativeNames@odata.type":"#Collection(String)","AlternativeNames":["ground cereal","ground grain"],"Providers@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Providers":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","Aliases@odata.type":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001,"Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"Name@odata.type":"#String"},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","Aliases@odata.type":"#Collection(String)","Aliases":[],"Details":null,"Name@odata.type":"#String"}],"SpatialData@odata.type":"#GeometryCollection","SpatialData":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[5,5],"type@odata.type":"#String"}],"crs":{"type":"name","properties":{"name":"EPSG:4326","name@odata.type":"#String"},"type@odata.type":"#String"},"type@odata.type":"#String"},"Category@odata.navigationLink":"Foods(0)/Category","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","CarbohydrateGrams@odata.type":"#Int32","IsAvailable@odata.type":"#Boolean"}
+  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","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset"},"CookedSize":{"Length":2,"Height":1,"Width":3,"Volume":6,"@odata.type":"#DataJS.Tests.V4.CookedDimensions","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#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","Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)"},{"Name":"Ground Grains","Aliases":[],"Details":null,"@odata.type":"#Collection(DataJS.Tests.V4.Provider)","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)","Details@odata.type":"#DataJS.Tests.V4.ProviderDetails"}],"SpatialData":{"type":"GeometryCollection","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)","FoodID@odata.type":"#Int32","Name@odata.type":"#String","UnitPrice@odata.type":"#Double","ServingSize@odata.type":"#Decimal","MeasurementUnit@odata.type":"#String","ProteinGrams@odata.type":"#Byte","FatGrams@odata.type":"#Int16","CarbohydrateGrams@odata.type":"#Int32","CaloriesPerServing@odata.type":"#Int64","IsAvailable@odata.type":"#Boolean","ExpirationDate@odata.type":"#DateTimeOffset","ItemGUID@odata.type":"#Guid","Weight@odata.type":"#Single","AvailableUnits@odata.type":"#SByte","AlternativeNames@odata.type":"#Collection(String)","Providers@odata.type":"#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","@odata.type":"#Collection(DataJS.Tests.V4.Provider)","value":[{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Flour Provider","Aliases@odata.type":"#Collection(String)","Aliases":["fp1","flour provider1"],"Details":{"@odata.type":"#DataJS.Tests.V4.ProviderDetails","Telephone":"555-555-555","PreferredCode":1001,"Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"Name@odata.type":"#String"},{"@odata.type":"#DataJS.Tests.V4.Provider","Name":"Ground Grains","Aliases@odata.type":"#Collection(String)","Aliases":[],"Details":null,"Name@odata.type":"#String"}]}
+  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","Telephone@odata.type":"#String","PreferredCode@odata.type":"#Int32"},"@odata.type":"#DataJS.Tests.V4.Provider","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)"},{"Name":"Ground Grains","Aliases":[],"Details":null,"@odata.type":"#DataJS.Tests.V4.Provider","Name@odata.type":"#String","Aliases@odata.type":"#Collection(String)","Details@odata.type":"#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","@odata.type":"#Collection(String)","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","@odata.type":"#DataJS.Tests.V4.Package","Type":null,"Color":"","NumberPerPackage":2147483647,"RequiresRefridgeration":false,"ShipDate@odata.type":"#DateTimeOffset","ShipDate":"2000-12-29T00:00:00Z","PackageDimensions":{"@odata.type":"#DataJS.Tests.V4.Dimensions","Length@odata.type":"#Decimal","Length":7.922816251426434e+28,"Height@odata.type":"#Int16","Height":32767,"Width@odata.type":"#Int64","Width":9223372036854776000,"Volume":1.7976931348623157e+308,"Volume@odata.type":"#Int32"},"Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean"}
+  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","Length@odata.type":"#Decimal","Height@odata.type":"#Int16","Width@odata.type":"#Int64","Volume@odata.type":"#Double"},"@odata.type":"#DataJS.Tests.V4.Package","Type@odata.type":"#String","Color@odata.type":"#String","NumberPerPackage@odata.type":"#Int32","RequiresRefridgeration@odata.type":"#Boolean","ShipDate@odata.type":"#DateTimeOffset"}
 },{
   description: "Simple Property with metadata=minimal",
   header:  "application/json;odata.metadata=minimal",
@@ -355,59 +411,25 @@
 describe('TEST odata-json.js', function() {
     describe('with odata.metadata=none', function() {
         for( var i = 0; i < testDataJsonParserMetadataNone.length;i++) {
-          var testData = testDataJsonParserMetadataNone[i];
-          var context =  { 
-            response: { requestUri: testData.usedUrl }, 
-            contentType : { properties : { "odata.metadata" : 'none'}},
-            dataServiceVersion: "4.0" 
-          };
-          it(testData.description, function () {
-            callTest(testData,context);
-          });
+            callTest_None(testDataJsonParserMetadataNone[i],context);
         }
     });
 
     describe('with odata.metadata=minimal', function() {
         for( var i = 0; i < testDataJsonParserMetadataMinimal.length;i++) {
-          var testData = testDataJsonParserMetadataMinimal[i];
-          var context =  { 
-            response: { requestUri: testData.usedUrl }, 
-            contentType : { properties : { "odata.metadata" : 'minimal'}},
-            dataServiceVersion: "4.0" 
-          };
-          it(testData.description, function () {
-            callTest(testData,context);
-          });
+            callTest_Minimal(testDataJsonParserMetadataMinimal[i],context);
         }
     });
 
     describe('with odata.metadata=minimal to full', function() {
         for( var i = 0; i < testDataJsonParserMetadataMinimalToFull.length;i++) {
-          var testData = testDataJsonParserMetadataMinimalToFull[i];
-          var context =  { 
-            response: { requestUri: testData.usedUrl }, 
-            contentType : { properties : { "odata.metadata" : 'minimal'}},
-            dataServiceVersion: "4.0",
-            metadata : testDataJsonParserMetadataMinimalToFullMetaData
-          };
-
-          it(testData.description, function () {
-            callTest(testData,context);
-          });
+            callTest_MinimalToFull(testDataJsonParserMetadataMinimalToFull[i],context);
         }
     });
 
     describe('with odata.metadata=full', function() {
         for( var i = 0; i < testDataJsonParserMetadataFull.length;i++) {
-          var testData = testDataJsonParserMetadataFull[i];
-          var context =  { 
-            response: { requestUri: testData.usedUrl }, 
-            contentType : { properties : { "odata.metadata" : 'full'}},
-            dataServiceVersion: "4.0" 
-          };
-          it(testData.description, function () {
-            callTest(testData,context);
-          });
+            callTest_Full(testDataJsonParserMetadataFull[i],context);
         }
     });
 });
\ No newline at end of file