Exemplo n.º 1
0
        public void Request_ForApiController_EvaluatesOnce()
        {
            // Arrange
            HttpStatusCode                  statusCode = CreateStatusCode();
            object                          content    = CreateContent();
            MediaTypeFormatter              formatter  = CreateFormatter();
            MediaTypeHeaderValue            mediaType  = CreateMediaType();
            ApiController                   controller = CreateController();
            FormattedContentResult <object> result     = new FormattedContentResult <object>(statusCode, content, formatter,
                                                                                             mediaType, controller);

            using (HttpRequestMessage expectedRequest = CreateRequest())
            {
                controller.Request = expectedRequest;
                HttpRequestMessage ignore = result.Request;

                using (HttpRequestMessage otherRequest = CreateRequest())
                {
                    controller.Request = otherRequest;

                    // Act
                    HttpRequestMessage request = result.Request;

                    // Assert
                    Assert.Same(expectedRequest, request);
                }
            }
        }
Exemplo n.º 2
0
        public void ApiControllerContent_WithFormatterButNotMediaType_CreatesCorrectFormattedContentResult()
        {
            // Arrange
            HttpStatusCode     expectedStatusCode = CreateStatusCode();
            object             expectedContent    = CreateContent();
            MediaTypeFormatter expectedFormatter  = CreateFormatter();
            ApiController      controller         = CreateController();

            // Act
            FormattedContentResult <object> result = controller.Content(expectedStatusCode, expectedContent,
                                                                        expectedFormatter);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(expectedStatusCode, result.StatusCode);
            Assert.Same(expectedContent, result.Content);
            Assert.Same(expectedFormatter, result.Formatter);
            Assert.Null(result.MediaType);

            using (HttpRequestMessage expectedRequest = CreateRequest())
            {
                controller.Request = expectedRequest;
                Assert.Same(expectedRequest, result.Request);
            }
        }
Exemplo n.º 3
0
        public async Task ExecuteAsync_ForApiController_ReturnsCorrectResponse()
        {
            // Arrange
            HttpStatusCode       expectedStatusCode = CreateStatusCode();
            object               expectedContent    = CreateContent();
            MediaTypeFormatter   expectedFormatter  = CreateFormatter();
            MediaTypeHeaderValue expectedMediaType  = CreateMediaType();
            ApiController        controller         = CreateController();

            using (HttpRequestMessage expectedRequest = CreateRequest())
            {
                controller.Request = expectedRequest;
                IHttpActionResult result = new FormattedContentResult <object>(expectedStatusCode, expectedContent,
                                                                               expectedFormatter, expectedMediaType, controller);

                // Act
                Task <HttpResponseMessage> task = result.ExecuteAsync(CancellationToken.None);

                // Assert
                Assert.NotNull(task);

                using (HttpResponseMessage response = await task)
                {
                    Assert.NotNull(response);
                    Assert.Equal(expectedStatusCode, response.StatusCode);
                    HttpContent            content      = response.Content;
                    ObjectContent <object> typedContent = Assert.IsType <ObjectContent <object> >(content);
                    Assert.Same(expectedContent, typedContent.Value);
                    Assert.Same(expectedFormatter, typedContent.Formatter);
                    Assert.NotNull(typedContent.Headers);
                    Assert.Equal(expectedMediaType, typedContent.Headers.ContentType);
                    Assert.Equal(expectedRequest, response.RequestMessage);
                }
            }
        }
        public void Content_Returns_InstanceProvided()
        {
            // Arrange
            HttpStatusCode statusCode = CreateStatusCode();
            object expectedContent = CreateContent();
            MediaTypeFormatter formatter = CreateFormatter();
            MediaTypeHeaderValue mediaType = CreateMediaType();

            using (HttpRequestMessage request = CreateRequest())
            {
                FormattedContentResult<object> result = new FormattedContentResult<object>(
                    statusCode,
                    expectedContent,
                    formatter,
                    mediaType,
                    request
                );

                // Act
                object content = result.Content;

                // Assert
                Assert.Same(expectedContent, content);
            }
        }
        public void StatusCode_Returns_ValueProvided()
        {
            // Arrange
            HttpStatusCode expectedStatusCode = CreateStatusCode();
            object content = CreateContent();
            MediaTypeFormatter formatter = CreateFormatter();
            MediaTypeHeaderValue mediaType = CreateMediaType();

            using (HttpRequestMessage request = CreateRequest())
            {
                FormattedContentResult<object> result = new FormattedContentResult<object>(
                    expectedStatusCode,
                    content,
                    formatter,
                    mediaType,
                    request
                );

                // Act
                HttpStatusCode statusCode = result.StatusCode;

                // Assert
                Assert.Equal(expectedStatusCode, statusCode);
            }
        }
        public void Request_ForApiController_Throws_WhenControllerRequestIsNull()
        {
            // Arrange
            HttpStatusCode statusCode = CreateStatusCode();
            object content = CreateContent();
            MediaTypeFormatter formatter = CreateFormatter();
            MediaTypeHeaderValue mediaType = CreateMediaType();
            ApiController controller = CreateController();
            Assert.Null(controller.Request);
            FormattedContentResult<object> result = new FormattedContentResult<object>(
                statusCode,
                content,
                formatter,
                mediaType,
                controller
            );

            // Act & Assert
            InvalidOperationException exception = Assert.Throws<InvalidOperationException>(
                () =>
                {
                    HttpRequestMessage ignore = result.Request;
                },
                "ApiController.Request must not be null."
            );
        }
Exemplo n.º 7
0
        public void ExecuteAsync_Returns_CorrectResponse()
        {
            // Arrange
            HttpStatusCode       expectedStatusCode = CreateStatusCode();
            object               expectedContent    = CreateContent();
            MediaTypeFormatter   expectedFormatter  = CreateFormatter();
            MediaTypeHeaderValue expectedMediaType  = CreateMediaType();

            using (HttpRequestMessage expectedRequest = CreateRequest())
            {
                IHttpActionResult result = new FormattedContentResult <object>(expectedStatusCode, expectedContent,
                                                                               expectedFormatter, expectedMediaType, expectedRequest);

                // Act
                Task <HttpResponseMessage> task = result.ExecuteAsync(CancellationToken.None);

                // Assert
                Assert.NotNull(task);
                task.WaitUntilCompleted();

                using (HttpResponseMessage response = task.Result)
                {
                    Assert.NotNull(response);
                    Assert.Equal(expectedStatusCode, response.StatusCode);
                    HttpContent content = response.Content;
                    Assert.IsType <ObjectContent <object> >(content);
                    ObjectContent <object> typedContent = (ObjectContent <object>)content;
                    Assert.Same(expectedContent, typedContent.Value);
                    Assert.Same(expectedFormatter, typedContent.Formatter);
                    Assert.NotNull(typedContent.Headers);
                    Assert.Equal(expectedMediaType, typedContent.Headers.ContentType);
                    Assert.Same(expectedRequest, response.RequestMessage);
                }
            }
        }