public void Query_String_ComplexType_Type_Post(string action, string queryString, string itemName, int quantity, string customerName) { // Arrange HttpRequestMessage request = new HttpRequestMessage() { RequestUri = new Uri(baseAddress + String.Format("ModelBinding/{0}?{1}", action, queryString)), Method = HttpMethod.Post }; ModelBindOrder expectedItem = new ModelBindOrder() { ItemName = itemName, Quantity = quantity, Customer = new ModelBindCustomer { Name = customerName } }; // Act HttpResponseMessage response = httpClient.SendAsync(request).Result; // Assert ModelBindOrder actualItem = response.Content.ReadAsAsync <ModelBindOrder>().Result; Assert.Equal <ModelBindOrder>(expectedItem, actualItem, new ModelBindOrderEqualityComparer()); }
public void Body_Binds_ComplexType_Type_Whole_Body_Read(string action, string mediaType) { // Arrange ModelBindOrder expectedItem = new ModelBindOrder() { ItemName = "Bike", Quantity = 1, Customer = new ModelBindCustomer { Name = "Fred" } }; var formatter = new MediaTypeFormatterCollection().Find(mediaType); HttpRequestMessage request = new HttpRequestMessage { Content = new ObjectContent <ModelBindOrder>(expectedItem, formatter), RequestUri = new Uri(baseAddress + String.Format("ModelBinding/{0}", action)), Method = HttpMethod.Post, }; // Act HttpResponseMessage response = httpClient.SendAsync(request).Result; // Assert ModelBindOrder actualItem = response.Content.ReadAsAsync <ModelBindOrder>().Result; Assert.Equal <ModelBindOrder>(expectedItem, actualItem, new ModelBindOrderEqualityComparer()); }
// check if HttpRequestMessage prevents binding other parameters public int PostComplexTypeHttpRequestMessage( HttpRequestMessage request, ModelBindOrder order ) { return(Int32.Parse(order.ItemName) + order.Quantity); }
public async Task Body_Binds_ComplexType_Type_Key_Value_Read( string action, string mediaType ) { // Arrange ModelBindOrder expectedItem = new ModelBindOrder() { ItemName = "Bike", Quantity = 1, Customer = new ModelBindCustomer { Name = "Fred" } }; var formatter = new MediaTypeFormatterCollection().FindWriter( typeof(ModelBindOrder), new MediaTypeHeaderValue(mediaType) ); HttpRequestMessage request = new HttpRequestMessage { Content = new ObjectContent <ModelBindOrder>(expectedItem, formatter), RequestUri = new Uri(BaseAddress + String.Format("ModelBinding/{0}", action)), Method = HttpMethod.Post, }; // Act HttpResponseMessage response = await Client.SendAsync(request); // Assert ModelBindOrder actualItem = await response.Content.ReadAsAsync <ModelBindOrder>(); Assert.Equal(expectedItem, actualItem, new ModelBindOrderEqualityComparer()); }
public void Body_Binds_EmptyContentWithOrWithoutContentTypeHeader(string mediaType) { // Arrange StringContent stringContent = new StringContent(String.Empty); stringContent.Headers.ContentType = mediaType != null ? new MediaTypeHeaderValue(mediaType) : null; HttpRequestMessage request = new HttpRequestMessage() { RequestUri = new Uri(BaseAddress + "ModelBinding/PostComplexTypeFromBody"), Method = HttpMethod.Post, Content = stringContent, }; // Act HttpResponseMessage response = Client.SendAsync(request).Result; // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); ModelBindOrder actualItem = response.Content.ReadAsAsync <ModelBindOrder>().Result; Assert.Equal(null, actualItem); }
public ModelBindOrder GetComplexTypeFromUri([FromUri] ModelBindOrder item) { return(item); }
public ModelBindOrder GetComplexType(ModelBindOrder item) { return(item); }
public ModelBindOrder PostComplexTypeFromBody([FromBody] ModelBindOrder item) { return(item); }