本文整理汇总了C#中ODataMessageWrapper.SetHeader方法的典型用法代码示例。如果您正苦于以下问题:C# ODataMessageWrapper.SetHeader方法的具体用法?C# ODataMessageWrapper.SetHeader怎么用?C# ODataMessageWrapper.SetHeader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ODataMessageWrapper
的用法示例。
在下文中一共展示了ODataMessageWrapper.SetHeader方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Can_deserialize_payload_with_primitive_parameters
public void Can_deserialize_payload_with_primitive_parameters()
{
string actionName = "Primitive";
int quantity = 1;
string productCode = "PCode";
string body = "{" + string.Format(@" ""Quantity"": {0} , ""ProductCode"": ""{1}"" ", quantity, productCode) + "}";
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(body));
message.SetHeader("Content-Type", "application/json;odata=verbose");
IEdmModel model = GetModel();
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), model);
ODataActionPayloadDeserializer deserializer = new ODataActionPayloadDeserializer(new DefaultODataDeserializerProvider());
ODataPath path = CreatePath(model, actionName);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = model };
ODataActionParameters payload = deserializer.Read(reader, context) as ODataActionParameters;
Assert.NotNull(payload);
Assert.Same(
model.EntityContainers().Single().FunctionImports().SingleOrDefault(f => f.Name == "Primitive"),
ODataActionPayloadDeserializer.GetFunctionImport(context));
Assert.True(payload.ContainsKey("Quantity"));
Assert.Equal(quantity, payload["Quantity"]);
Assert.True(payload.ContainsKey("ProductCode"));
Assert.Equal(productCode, payload["ProductCode"]);
}
示例2: Can_deserialize_payload_with_complex_parameters
public void Can_deserialize_payload_with_complex_parameters()
{
string actionName = "Complex";
string body = @"{ ""Quantity"": 1 , ""Address"": { ""StreetAddress"":""1 Microsoft Way"", ""City"": ""Redmond"", ""State"": ""WA"", ""ZipCode"": 98052 } }";
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(body));
message.SetHeader("Content-Type", "application/json;odata=verbose");
IEdmModel model = GetModel();
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), model);
ODataActionPayloadDeserializer deserializer = new ODataActionPayloadDeserializer(typeof(ODataActionParameters), new DefaultODataDeserializerProvider(model));
string url = "http://server/service/Customers(10)/" + actionName;
HttpRequestMessage request = GetPostRequest(url);
ODataDeserializerContext context = new ODataDeserializerContext { Request = request, Model = model };
ODataActionParameters payload = deserializer.Read(reader, context) as ODataActionParameters;
Assert.NotNull(payload);
Assert.Same(model.EntityContainers().Single().FunctionImports().SingleOrDefault(f => f.Name == "Complex"), payload.GetFunctionImport(context));
Assert.True(payload.ContainsKey("Quantity"));
Assert.Equal(1, payload["Quantity"]);
Assert.True(payload.ContainsKey("Address"));
MyAddress address = payload["Address"] as MyAddress;
Assert.NotNull(address);
Assert.Equal("1 Microsoft Way", address.StreetAddress);
Assert.Equal("Redmond", address.City);
Assert.Equal("WA", address.State);
Assert.Equal(98052, address.ZipCode);
}
示例3: Can_deserialize_payload_with_primitive_collection_parameters
public void Can_deserialize_payload_with_primitive_collection_parameters()
{
string actionName = "PrimitiveCollection";
string body = @"{ ""Name"": ""Avatar"", ""Ratings"": [ 5, 5, 3, 4, 5, 5, 4, 5, 5, 4 ] }";
int[] expectedRatings = new int[] { 5, 5, 3, 4, 5, 5, 4, 5, 5, 4 };
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(body));
message.SetHeader("Content-Type", "application/json;odata=verbose");
IEdmModel model = GetModel();
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), model);
ODataActionPayloadDeserializer deserializer = new ODataActionPayloadDeserializer(typeof(ODataActionParameters), new DefaultODataDeserializerProvider(model));
string url = "http://server/service/EntitySet(key)/" + actionName;
HttpRequestMessage request = GetPostRequest(url);
ODataDeserializerContext context = new ODataDeserializerContext { Request = request, Model = model };
ODataActionParameters payload = deserializer.Read(reader, context) as ODataActionParameters;
Assert.NotNull(payload);
Assert.Same(model.EntityContainers().Single().FunctionImports().SingleOrDefault(f => f.Name == "PrimitiveCollection"), payload.GetFunctionImport(context));
Assert.True(payload.ContainsKey("Name"));
Assert.Equal("Avatar", payload["Name"]);
Assert.True(payload.ContainsKey("Ratings"));
IList<int> ratings = payload["Ratings"] as IList<int>;
Assert.Equal(10, ratings.Count);
Assert.True(expectedRatings.Zip(ratings, (expected, actual) => expected - actual).All(diff => diff == 0));
}
示例4: Can_DeserializePayload_WithPrimitiveCollectionParameters
public void Can_DeserializePayload_WithPrimitiveCollectionParameters(string actionName, IEdmAction expectedAction, ODataPath path)
{
// Arrange
const string Body = @"{ ""Name"": ""Avatar"", ""Ratings"": [ 5, 5, 3, 4, 5, 5, 4, 5, 5, 4 ] }";
int[] expectedRatings = new int[] { 5, 5, 3, 4, 5, 5, 4, 5, 5, 4 };
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(Body));
message.SetHeader("Content-Type", "application/json");
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), _model);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = _model };
// Act
ODataActionParameters payload = _deserializer.Read(reader, typeof(ODataActionParameters), context) as ODataActionParameters;
IEdmAction action = ODataActionPayloadDeserializer.GetAction(context);
// Assert
Assert.NotNull(payload);
Assert.Same(expectedAction, action);
Assert.True(payload.ContainsKey("Name"));
Assert.Equal("Avatar", payload["Name"]);
Assert.True(payload.ContainsKey("Ratings"));
IEnumerable<int> ratings = payload["Ratings"] as IEnumerable<int>;
Assert.Equal(10, ratings.Count());
Assert.True(expectedRatings.Zip(ratings, (expected, actual) => expected - actual).All(diff => diff == 0));
}
示例5: Can_DeserializePayload_WithComplexParameters_InUntypedMode
public void Can_DeserializePayload_WithComplexParameters_InUntypedMode(string actionName, IEdmAction expectedAction, ODataPath path)
{
// Arrange
const string Body = @"{ ""Quantity"": 1 , ""Address"": { ""StreetAddress"":""1 Microsoft Way"", ""City"": ""Redmond"", ""State"": ""WA"", ""ZipCode"": 98052 } }";
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(Body));
message.SetHeader("Content-Type", "application/json");
ODataMessageReaderSettings settings = new ODataMessageReaderSettings();
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, settings, _model);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = _model, ResourceType = typeof(ODataUntypedActionParameters) };
// Act
ODataUntypedActionParameters payload = _deserializer.Read(reader, typeof(ODataUntypedActionParameters), context) as ODataUntypedActionParameters;
// Assert
Assert.NotNull(payload);
Assert.Same(expectedAction, payload.Action);
Assert.True(payload.ContainsKey("Quantity"));
Assert.Equal(1, payload["Quantity"]);
Assert.True(payload.ContainsKey("Address"));
dynamic address = payload["Address"] as EdmComplexObject;
Assert.IsType<EdmComplexObject>(address);
Assert.Equal("1 Microsoft Way", address.StreetAddress);
Assert.Equal("Redmond", address.City);
Assert.Equal("WA", address.State);
Assert.Equal(98052, address.ZipCode);
}
示例6: Can_DeserializePayload_WithPrimitiveParameters
public void Can_DeserializePayload_WithPrimitiveParameters(string actionName, IEdmAction expectedAction, ODataPath path)
{
// Arrange
const int Quantity = 1;
const string ProductCode = "PCode";
string body = "{" + string.Format(@" ""Quantity"": {0} , ""ProductCode"": ""{1}"" ", Quantity, ProductCode) + "}";
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(body));
message.SetHeader("Content-Type", "application/json");
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), _model);
ODataDeserializerContext context = new ODataDeserializerContext() { Path = path, Model = _model };
// Act
ODataActionParameters payload = _deserializer.Read(reader, typeof(ODataActionParameters), context) as ODataActionParameters;
IEdmAction action = ODataActionPayloadDeserializer.GetAction(context);
// Assert
Assert.Same(expectedAction, action);
Assert.NotNull(payload);
Assert.True(payload.ContainsKey("Quantity"));
Assert.Equal(Quantity, payload["Quantity"]);
Assert.True(payload.ContainsKey("ProductCode"));
Assert.Equal(ProductCode, payload["ProductCode"]);
}
示例7: Throws_ODataException_when_parameter_not_found
public void Throws_ODataException_when_parameter_not_found()
{
string body = @"{ ""Quantity"": 1 , ""ProductCode"": ""PCode"", ""MissingParameter"": 1 }";
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(body));
message.SetHeader("Content-Type", "application/json;odata=verbose");
IEdmModel model = GetModel();
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), model);
ODataActionPayloadDeserializer deserializer = new ODataActionPayloadDeserializer(new DefaultODataDeserializerProvider());
ODataPath path = CreatePath(model, "Primitive");
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = model };
Assert.Throws<ODataException>(() =>
{
ODataActionParameters payload = deserializer.Read(reader, context) as ODataActionParameters;
}, "The parameter 'MissingParameter' in the request payload is not a valid parameter for the function import 'Primitive'.");
}
示例8: Can_deserialize_payload_with_complex_collection_parameters
public void Can_deserialize_payload_with_complex_collection_parameters()
{
string actionName = "ComplexCollection";
string body = @"{ ""Name"": ""Microsoft"", ""Addresses"": [ { ""StreetAddress"":""1 Microsoft Way"", ""City"": ""Redmond"", ""State"": ""WA"", ""ZipCode"": 98052 } ] }";
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(body));
message.SetHeader("Content-Type", "application/json;odata=verbose");
IEdmModel model = GetModel();
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), model);
ODataActionPayloadDeserializer deserializer = new ODataActionPayloadDeserializer(new DefaultODataDeserializerProvider());
ODataPath path = CreatePath(model, actionName);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = model };
ODataActionParameters payload = deserializer.Read(reader, context) as ODataActionParameters;
Assert.NotNull(payload);
Assert.True(payload.ContainsKey("Name"));
Assert.Equal("Microsoft", payload["Name"]);
Assert.True(payload.ContainsKey("Addresses"));
IList<MyAddress> addresses = payload["Addresses"] as IList<MyAddress>;
Assert.NotNull(addresses);
Assert.Equal(1, addresses.Count);
MyAddress address = addresses[0];
Assert.NotNull(address);
Assert.Equal("1 Microsoft Way", address.StreetAddress);
Assert.Equal("Redmond", address.City);
Assert.Equal("WA", address.State);
Assert.Equal(98052, address.ZipCode);
}
示例9: Can_DeserializePayload_WithPrimitiveCollectionParameters
public void Can_DeserializePayload_WithPrimitiveCollectionParameters(string actionName, IEdmAction expectedAction, ODataPath path)
{
// Arrange
const string Body =
@"{ ""Name"": ""Avatar"", ""Ratings"": [ 5, 5, 3, 4, 5, 5, 4, 5, 5, 4 ], ""Time"": [""01:02:03.0040000"", ""12:13:14.1150000""], ""Colors"": [ ""Red"", null, ""Green""] }";
int[] expectedRatings = new int[] { 5, 5, 3, 4, 5, 5, 4, 5, 5, 4 };
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(Body));
message.SetHeader("Content-Type", "application/json");
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), _model);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = _model };
// Act
ODataActionParameters payload = _deserializer.Read(reader, typeof(ODataActionParameters), context) as ODataActionParameters;
IEdmAction action = ODataActionPayloadDeserializer.GetAction(context);
// Assert
Assert.NotNull(payload);
Assert.Same(expectedAction, action);
Assert.True(payload.ContainsKey("Name"));
Assert.Equal("Avatar", payload["Name"]);
Assert.True(payload.ContainsKey("Ratings"));
IEnumerable<int> ratings = payload["Ratings"] as IEnumerable<int>;
Assert.Equal(10, ratings.Count());
Assert.True(expectedRatings.Zip(ratings, (expected, actual) => expected - actual).All(diff => diff == 0));
Assert.True(payload.ContainsKey("Time"));
IEnumerable<TimeOfDay> times = payload["Time"] as IEnumerable<TimeOfDay>;
Assert.Equal(2, times.Count());
Assert.Equal(new[] {new TimeOfDay(1, 2, 3, 4), new TimeOfDay(12, 13, 14, 115) }, times.ToList());
Assert.True(payload.ContainsKey("Colors"));
IEnumerable<AColor?> colors = payload["Colors"] as IEnumerable<AColor?>;
Assert.Equal("Red|null|Green", String.Join("|", colors.Select(e => e == null ? "null" : e.ToString())));
}
示例10: Can_Deserialize_PrimitiveCollections_InUntypedMode
public void Can_Deserialize_PrimitiveCollections_InUntypedMode()
{
// Arrange
IEdmModel model = GetModel();
IEdmActionImport action = model.EntityContainers()
.Single()
.OperationImports()
.SingleOrDefault(o => o.Name == "PrimitiveCollection") as IEdmActionImport;
Assert.NotNull(action);
string body = @"{ ""Name"": ""Avatar"", ""Ratings"": [ 5, 5, 3, 4, 5, 5, 4, 5, 5, 4 ] }";
int[] expectedRatings = new int[] { 5, 5, 3, 4, 5, 5, 4, 5, 5, 4 };
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(body));
message.SetHeader("Content-Type", "application/json;odata=verbose");
ODataMessageReaderSettings settings = new ODataMessageReaderSettings();
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, settings, model);
ODataActionPayloadDeserializer deserializer = new ODataActionPayloadDeserializer(new DefaultODataDeserializerProvider());
ODataPath path = CreatePath(model, action.Name);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = model, ResourceType = typeof(ODataUntypedActionParameters) };
// Act
ODataUntypedActionParameters payload = deserializer.Read(reader, typeof(ODataUntypedActionParameters), context) as ODataUntypedActionParameters;
//Assert
Assert.NotNull(payload);
Assert.Same(
model.EntityContainers()
.Single()
.OperationImports()
.SingleOrDefault(f => f.Name == "PrimitiveCollection") as IEdmActionImport,
ODataActionPayloadDeserializer.GetActionImport(context));
Assert.True(payload.ContainsKey("Name"));
Assert.Equal("Avatar", payload["Name"]);
Assert.True(payload.ContainsKey("Ratings"));
IEnumerable<int> ratings = payload["Ratings"] as IEnumerable<int>;
Assert.Equal(10, ratings.Count());
Assert.True(expectedRatings.Zip(ratings, (expected, actual) => expected - actual).All(diff => diff == 0));
}
示例11: Can_Deserialize_ComplexCollections_InUntypedMode
void Can_Deserialize_ComplexCollections_InUntypedMode()
{
//Arrange
IEdmModel model = GetModel();
IEdmFunctionImport action = model.EntityContainers().Single().FunctionImports().SingleOrDefault(f => f.Name == "ComplexCollection");
string body = @"{ ""Name"": ""Avatar"" , ""Addresses"": [{ ""StreetAddress"":""1 Microsoft Way"", ""City"": ""Redmond"", ""State"": ""WA"", ""ZipCode"": 98052 }] }";
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(body));
message.SetHeader("Content-Type", "application/json;odata=verbose");
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), model);
ODataActionPayloadDeserializer deserializer = new ODataActionPayloadDeserializer(new DefaultODataDeserializerProvider());
ODataPath path = CreatePath(model, action.Name);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = model, ResourceType = typeof(ODataUntypedActionParameters) };
//Act
ODataUntypedActionParameters payload = deserializer.Read(reader, typeof(ODataUntypedActionParameters), context) as ODataUntypedActionParameters;
//Assert
Assert.NotNull(payload);
Assert.Same(
model.EntityContainers().Single().FunctionImports().SingleOrDefault(f => f.Name == "ComplexCollection"),
ODataActionPayloadDeserializer.GetFunctionImport(context));
Assert.True(payload.ContainsKey("Name"));
Assert.Equal("Avatar", payload["Name"]);
Assert.True(payload.ContainsKey("Addresses"));
IEnumerable<IEdmObject> addresses = payload["Addresses"] as EdmComplexObjectCollection;
dynamic address = addresses.SingleOrDefault();
Assert.NotNull(address);
Assert.Equal("1 Microsoft Way", address.StreetAddress);
Assert.Equal("Redmond", address.City);
Assert.Equal("WA", address.State);
Assert.Equal(98052, address.ZipCode);
}
示例12: Can_DeserializePayload_WithEntityCollectionParameters_InUntypedMode
public void Can_DeserializePayload_WithEntityCollectionParameters_InUntypedMode(IEdmAction expectedAction, ODataPath path)
{
// Arrange
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(EntityCollectionPayload));
message.SetHeader("Content-Type", "application/json");
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), _model);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = _model, ResourceType = typeof(ODataUntypedActionParameters) };
// Act
ODataUntypedActionParameters payload = _deserializer.Read(reader, typeof(ODataUntypedActionParameters), context) as ODataUntypedActionParameters;
// Assert
Assert.Same(expectedAction, payload.Action);
Assert.NotNull(payload);
Assert.True(payload.ContainsKey("Id"));
Assert.Equal(1, payload["Id"]);
IEnumerable<IEdmObject> customers = payload["Customers"] as EdmEntityObjectCollection;
Assert.Equal(2, customers.Count());
dynamic customer = customers.First();
Assert.NotNull(customer);
Assert.Equal(109, customer.Id);
Assert.Equal("Avatar", customer.Name);
customer = customers.Last();
Assert.NotNull(customer);
Assert.Equal(901, customer.Id);
Assert.Equal("Robot", customer.Name);
}
示例13: Can_DeserializePayload_WithEntityCollectionParameters
public void Can_DeserializePayload_WithEntityCollectionParameters(IEdmAction expectedAction, ODataPath path)
{
// Arrange
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(EntityCollectionPayload));
message.SetHeader("Content-Type", "application/json");
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), _model);
ODataDeserializerContext context = new ODataDeserializerContext() { Path = path, Model = _model };
// Act
ODataActionParameters payload = _deserializer.Read(reader, typeof(ODataActionParameters), context) as ODataActionParameters;
IEdmAction action = ODataActionPayloadDeserializer.GetAction(context);
// Assert
Assert.Same(expectedAction, action);
Assert.NotNull(payload);
Assert.True(payload.ContainsKey("Id"));
Assert.Equal(1, payload["Id"]);
IList<Customer> customers = (payload["Customers"] as IEnumerable<Customer>).ToList();
Assert.NotNull(customers);
Assert.Equal(2, customers.Count);
Customer customer = customers[0];
Assert.NotNull(customer);
Assert.Equal(109, customer.Id);
Assert.Equal("Avatar", customer.Name);
customer = customers[1];
Assert.NotNull(customer);
Assert.Equal(901, customer.Id);
Assert.Equal("Robot", customer.Name);
}
示例14: Can_DeserializePayload_WithComplexCollectionParameters
public void Can_DeserializePayload_WithComplexCollectionParameters(string actionName, IEdmAction expectedAction, ODataPath path)
{
// Arrange
const string Body = @"{ ""Name"": ""Microsoft"", ""Addresses"": [ { ""StreetAddress"":""1 Microsoft Way"", ""City"": ""Redmond"", ""State"": ""WA"", ""ZipCode"": 98052 } ] }";
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(Body));
message.SetHeader("Content-Type", "application/json");
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, new ODataMessageReaderSettings(), _model);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = _model };
// Act
ODataActionParameters payload = _deserializer.Read(reader, typeof(ODataActionParameters), context) as ODataActionParameters;
// Assert
Assert.NotNull(payload);
Assert.True(payload.ContainsKey("Name"));
Assert.Equal("Microsoft", payload["Name"]);
Assert.True(payload.ContainsKey("Addresses"));
IList<MyAddress> addresses = (payload["Addresses"] as IEnumerable<MyAddress>).ToList();
Assert.NotNull(addresses);
Assert.Equal(1, addresses.Count);
MyAddress address = addresses[0];
Assert.NotNull(address);
Assert.Equal("1 Microsoft Way", address.StreetAddress);
Assert.Equal("Redmond", address.City);
Assert.Equal("WA", address.State);
Assert.Equal(98052, address.ZipCode);
}
示例15: Can_DeserializePayload_InUntypedMode
public void Can_DeserializePayload_InUntypedMode()
{
// Arrange
IEdmModel model = GetModel();
IEdmActionImport action = model.EntityContainers().Single().OperationImports()
.SingleOrDefault(o => o.Name == "Complex") as IEdmActionImport;
string body = @"{ ""Quantity"": 1 , ""Address"": { ""StreetAddress"":""1 Microsoft Way"", ""City"": ""Redmond"", ""State"": ""WA"", ""ZipCode"": 98052 } }";
ODataMessageWrapper message = new ODataMessageWrapper(GetStringAsStream(body));
message.SetHeader("Content-Type", "application/json;odata=verbose");
ODataMessageReaderSettings settings = new ODataMessageReaderSettings();
ODataMessageReader reader = new ODataMessageReader(message as IODataRequestMessage, settings, model);
ODataActionPayloadDeserializer deserializer = new ODataActionPayloadDeserializer(new DefaultODataDeserializerProvider());
ODataPath path = CreatePath(model, action.Name);
ODataDeserializerContext context = new ODataDeserializerContext { Path = path, Model = model, ResourceType = typeof(ODataUntypedActionParameters) };
// Act
ODataUntypedActionParameters payload = deserializer.Read(reader, typeof(ODataUntypedActionParameters), context) as ODataUntypedActionParameters;
// Assert
Assert.NotNull(payload);
Assert.Same(action, payload.Action);
Assert.True(payload.ContainsKey("Quantity"));
Assert.Equal(1, payload["Quantity"]);
Assert.True(payload.ContainsKey("Address"));
dynamic address = payload["Address"] as EdmComplexObject;
Assert.IsType<EdmComplexObject>(address);
Assert.Equal("1 Microsoft Way", address.StreetAddress);
Assert.Equal("Redmond", address.City);
Assert.Equal("WA", address.State);
Assert.Equal(98052, address.ZipCode);
}