예제 #1
0
        /// <summary>
        /// Creates the HTTP request message from a lambda expression
        /// </summary>
        /// <typeparam name="TController">The type of the controller.</typeparam>
        /// <typeparam name="TResponse">The type of the response.</typeparam>
        /// <param name="expression">The expression.</param>
        /// <param name="headerBuilder">The header builder.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentNullException">expression</exception>
        public HttpRequestMessage CreateHttpRequestMessage <TController, TResponse>(
            Expression <Func <TController, TResponse> > expression, Action <HttpRequestHeaders> headerBuilder = null) where TController : ControllerBase
        {
            var message = RouteHelper.BuildRequestMessage(expression);

            headerBuilder?.Invoke(message.Headers);
            Debug(expression, headerBuilder, message);
            return(message);
        }
예제 #2
0
파일: UnitTest.cs 프로젝트: tulde23/URLinq
        public async Task PostComplexModel(ComplexModel complexModel)
        {
            var message = RouteHelper.BuildRequestMessage <UnitTestController, Task <string> >(controller => controller.PostComplexModel(complexModel));

            message.Should().NotBeNull();
            message.Method.Should().Be(System.Net.Http.HttpMethod.Post);
            message.Content.Should().BeOfType <StringContent>();
            var content = await message.Content.ReadAsStringAsync();

            var ogContent = JsonConvert.SerializeObject(complexModel);

            content.Should().Be(ogContent);
        }
예제 #3
0
파일: UnitTest.cs 프로젝트: tulde23/URLinq
        public async Task PostComplexModelWithRouteParameter(ComplexModel complexModel)
        {
            //this is how we add custom controller action parameter decomposers
            ControllerActionParameterBinders.AddBinders(new IdModelProvider());
            var message = RouteHelper.BuildRequestMessage <UnitTestController, Task <string> >(controller => controller.PostComplexModelWithId(complexModel));

            message.Should().NotBeNull();
            message.Method.Should().Be(System.Net.Http.HttpMethod.Post);
            message.Content.Should().BeOfType <StringContent>();
            message.RequestUri.ToString().Should().Be($"/api/v1/UnitTest/{complexModel.Id}");
            var content = await message.Content.ReadAsStringAsync();

            var ogContent = JsonConvert.SerializeObject(complexModel);

            content.Should().Be(ogContent);
        }