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); } } }
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); } }
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." ); }
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); } } }