public void OpenComplexType_SimpleSerialization(bool enableNullDynamicProperty) { // Arrange const string RequestUri = "http://localhost/odata/OpenCustomers(2)/Address"; var configuration = new[] { typeof(OpenCustomersController) }.GetHttpConfiguration(); configuration.SetSerializeNullDynamicProperty(enableNullDynamicProperty); configuration.MapODataServiceRoute("odata", "odata", GetEdmModel()); HttpClient client = new HttpClient(new HttpServer(configuration)); // Act HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, RequestUri); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/json;odata.metadata=full")); HttpResponseMessage response = client.SendAsync(request).Result; // Assert Assert.True(response.IsSuccessStatusCode); JObject result = JObject.Parse(response.Content.ReadAsStringAsync().Result); Assert.Equal("http://localhost/odata/$metadata#OpenCustomers(2)/Address", result["@odata.context"]); Assert.Equal("Street 2", result["Street"]); Assert.Equal("City 2", result["City"]); Assert.Equal("300", result["IntProp"]); Assert.Equal("My Dynamic Country", result["Country"]); Assert.Equal("2c1f450a-a2a7-4fe1-a25d-4d9332fc0694", result["Token"]); Assert.Equal("2015-03-02", result["Birthday"]); if (enableNullDynamicProperty) { Assert.NotNull(result["Region"]); Assert.Equal(JValue.CreateNull(), result["Region"]); } else { Assert.Null(result["Region"]); } }
public void Get_OpenEntityType(bool enableNullDynamicProperty) { // Arrange const string RequestUri = "http://localhost/odata/SimpleOpenCustomers(9)"; var configuration = new[] { typeof(SimpleOpenCustomersController) }.GetHttpConfiguration(); configuration.SetSerializeNullDynamicProperty(enableNullDynamicProperty); configuration.MapODataServiceRoute("odata", "odata", GetEdmModel()); HttpClient client = new HttpClient(new HttpServer(configuration)); // Act HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, RequestUri); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/json;odata.metadata=full")); HttpResponseMessage response = client.SendAsync(request).Result; // Assert Assert.True(response.IsSuccessStatusCode); JObject result = JObject.Parse(response.Content.ReadAsStringAsync().Result); Assert.Equal("http://localhost/odata/$metadata#SimpleOpenCustomers/$entity", result["@odata.context"]); Assert.Equal("#System.Web.OData.SimpleVipCustomer", result["@odata.type"]); Assert.Equal(9, result["CustomerId"]); Assert.Equal("VipCustomer", result["Name"]); Assert.Equal("#Collection(Int32)", result["*****@*****.**"]); Assert.Equal(new JArray(new[] { 200, 100, 300, 0, 400 }), result["ListProp"]); Assert.Equal("0001-01-01", result["DateList"][0]); Assert.Equal("9999-12-31", result["DateList"][1]); if (enableNullDynamicProperty) { Assert.NotNull(result["Receipt"]); Assert.Equal(JValue.CreateNull(), result["Receipt"]); } else { Assert.Null(result["Receipt"]); } }