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);
 }
Пример #4
0
        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());
        }
Пример #5
0
        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);
 }