public void ApiControllerCreatedAtRoute_WithStringAndObject_CreatesCorrectResult() { // Arrange string expectedRouteName = CreateRouteName(); object routeValues = new { id = 1 }; object expectedContent = CreateContent(); ApiController controller = CreateController(); // Act CreatedAtRouteNegotiatedContentResult <object> result = controller.CreatedAtRoute(expectedRouteName, routeValues, expectedContent); // Assert Assert.NotNull(result); Assert.Same(expectedRouteName, result.RouteName); Assert.IsType <HttpRouteValueDictionary>(result.RouteValues); Assert.True(result.RouteValues.ContainsKey("id")); Assert.Equal(1, result.RouteValues["id"]); Assert.Same(expectedContent, result.Content); using (HttpConfiguration configuration = CreateConfiguration(CreateFormatter(), CreateDummyContentNegotiator())) using (HttpRequestMessage expectedRequest = CreateRequest()) { controller.Configuration = configuration; controller.Request = expectedRequest; Assert.Same(expectedRequest, result.Request); } }
public void Formatters_ForApiController_EvaluatesOnce() { // Arrange string routeName = CreateRouteName(); IDictionary <string, object> routeValues = CreateRouteValues(); object content = CreateContent(); ApiController controller = CreateController(); MediaTypeFormatter expectedFormatter = CreateFormatter(); IContentNegotiator contentNegotiator = CreateDummyContentNegotiator(); using (HttpConfiguration earlyConfiguration = CreateConfiguration(expectedFormatter, contentNegotiator)) using (HttpRequestMessage request = CreateRequest()) { controller.Configuration = earlyConfiguration; controller.Request = request; CreatedAtRouteNegotiatedContentResult <object> result = CreateProductUnderTest(routeName, routeValues, content, controller); IEnumerable <MediaTypeFormatter> ignore = result.Formatters; using (HttpConfiguration lateConfiguration = CreateConfiguration(CreateFormatter(), contentNegotiator)) { controller.Configuration = lateConfiguration; // Act IEnumerable <MediaTypeFormatter> formatters = result.Formatters; // Assert Assert.NotNull(formatters); Assert.Equal(1, formatters.Count()); Assert.Same(expectedFormatter, formatters.Single()); } } }
public void ApiControllerCreatedAtRoute_WithStringAndDictionary_CreatesCorrectResult() { // Arrange string expectedRouteName = CreateRouteName(); IDictionary <string, object> expectedRouteValues = CreateRouteValues(); object expectedContent = CreateContent(); ApiController controller = CreateController(); // Act CreatedAtRouteNegotiatedContentResult <object> result = controller.CreatedAtRoute(expectedRouteName, expectedRouteValues, expectedContent); // Assert Assert.NotNull(result); Assert.Same(expectedRouteName, result.RouteName); Assert.Same(expectedRouteValues, result.RouteValues); Assert.Same(expectedContent, result.Content); using (HttpConfiguration configuration = CreateConfiguration(CreateFormatter(), CreateDummyContentNegotiator())) using (HttpRequestMessage expectedRequest = CreateRequest()) { controller.Configuration = configuration; controller.Request = expectedRequest; Assert.Same(expectedRequest, result.Request); } }
public void ContentNegotiator_ForApiController_EvaluatesOnce() { // Arrange string routeName = CreateRouteName(); IDictionary <string, object> routeValues = CreateRouteValues(); object content = CreateContent(); IContentNegotiator expectedContentNegotiator = CreateDummyContentNegotiator(); ApiController controller = CreateController(); using (HttpConfiguration configuration = CreateConfiguration(CreateFormatter(), expectedContentNegotiator)) using (HttpRequestMessage request = CreateRequest()) { controller.Configuration = configuration; controller.Request = request; CreatedAtRouteNegotiatedContentResult <object> result = CreateProductUnderTest(routeName, routeValues, content, controller); IContentNegotiator ignore = result.ContentNegotiator; configuration.Services.Replace(typeof(IContentNegotiator), CreateDummyContentNegotiator()); // Act IContentNegotiator contentNegotiator = result.ContentNegotiator; // Assert Assert.Same(expectedContentNegotiator, contentNegotiator); } }
public void Request_ForApiController_EvaluatesOnce() { // Arrange string routeName = CreateRouteName(); IDictionary <string, object> routeValues = CreateRouteValues(); object content = CreateContent(); ApiController controller = CreateController(); using (HttpConfiguration configuration = CreateConfiguration(CreateFormatter(), CreateDummyContentNegotiator())) { controller.Configuration = configuration; CreatedAtRouteNegotiatedContentResult <object> result = CreateProductUnderTest(routeName, routeValues, content, 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 UrlFactory_ForApiController_EvaluatesOnce() { // Arrange string routeName = CreateRouteName(); IDictionary <string, object> routeValues = CreateRouteValues(); object content = CreateContent(); ApiController controller = CreateController(); using (HttpConfiguration configuration = CreateConfiguration(CreateFormatter(), CreateDummyContentNegotiator())) using (HttpRequestMessage request = CreateRequest()) { controller.Configuration = configuration; controller.Request = request; UrlHelper expectedUrlFactory = CreateDummyUrlFactory(); controller.Url = expectedUrlFactory; CreatedAtRouteNegotiatedContentResult <object> result = CreateProductUnderTest(routeName, routeValues, content, controller); UrlHelper ignore = result.UrlFactory; controller.Url = CreateDummyUrlFactory(); // Act UrlHelper urlFactory = result.UrlFactory; // Assert Assert.Same(expectedUrlFactory, urlFactory); } }
public void Formatters_Returns_InstanceProvided() { // Arrange string routeName = CreateRouteName(); IDictionary <string, object> routeValues = CreateRouteValues(); object content = CreateContent(); UrlHelper urlFactory = CreateDummyUrlFactory(); IContentNegotiator contentNegotiator = CreateDummyContentNegotiator(); using (HttpRequestMessage request = CreateRequest()) { IEnumerable <MediaTypeFormatter> expectedFormatters = CreateFormatters(); CreatedAtRouteNegotiatedContentResult <object> result = CreateProductUnderTest( routeName, routeValues, content, urlFactory, contentNegotiator, request, expectedFormatters ); // Act IEnumerable <MediaTypeFormatter> formatters = result.Formatters; // Assert Assert.Same(expectedFormatters, formatters); } }
public void Request_ForApiController_Throws_WhenControllerRequestIsNull() { // Arrange string routeName = CreateRouteName(); IDictionary <string, object> routeValues = CreateRouteValues(); object content = CreateContent(); ApiController controller = CreateController(); using ( HttpConfiguration configuration = CreateConfiguration( CreateFormatter(), CreateDummyContentNegotiator() ) ) { controller.Configuration = configuration; Assert.Null(controller.Request); CreatedAtRouteNegotiatedContentResult <object> result = CreateProductUnderTest( routeName, routeValues, content, controller ); // Act & Assert InvalidOperationException exception = Assert.Throws <InvalidOperationException>( () => { HttpRequestMessage ignore = result.Request; }, "ApiController.Request must not be null." ); } }
public void ContentNegotiator_ForApiController_Throws_WhenServiceIsNull() { // Arrange string routeName = CreateRouteName(); IDictionary <string, object> routeValues = CreateRouteValues(); object content = CreateContent(); ApiController controller = CreateController(); using (HttpConfiguration configuration = CreateConfiguration(CreateFormatter(), null)) using (HttpRequestMessage request = CreateRequest()) { controller.Configuration = configuration; controller.Request = request; CreatedAtRouteNegotiatedContentResult <object> result = CreateProductUnderTest( routeName, routeValues, content, controller ); // Act & Assert Assert.Throws <InvalidOperationException>( () => { IContentNegotiator ignore = result.ContentNegotiator; }, "The provided configuration does not have an instance of the " + "'System.Net.Http.Formatting.IContentNegotiator' service registered." ); } }
public void ContentNegotiator_ForApiController_Throws_WhenConfigurationIsNull() { // Arrange string routeName = CreateRouteName(); IDictionary <string, object> routeValues = CreateRouteValues(); object content = CreateContent(); ApiController controller = CreateController(); HttpControllerContext context = new HttpControllerContext(); using (HttpRequestMessage request = CreateRequest()) { controller.ControllerContext = context; controller.Request = request; CreatedAtRouteNegotiatedContentResult <object> result = CreateProductUnderTest( routeName, routeValues, content, controller ); // Act & Assert Assert.Throws <InvalidOperationException>( () => { IContentNegotiator ignore = result.ContentNegotiator; }, "HttpControllerContext.Configuration must not be null." ); } }