public async Task HttpStatus500_loads_template() { var templateRequest = new Mock <IEastSussexGovUKTemplateRequest>(); var defaultValues = new Mock <IViewModelDefaultValuesProvider>(); defaultValues.Setup(x => x.Breadcrumb).Returns(new Mock <IBreadcrumbProvider>().Object); var controller = new HttpStatusController(templateRequest.Object, defaultValues.Object, null, null, null, null); var action = await controller.Status500(); templateRequest.Verify(x => x.RequestTemplateHtmlAsync()); }
public async Task HttpStatus404_displays_view_if_no_redirect() { var templateRequest = new Mock <IEastSussexGovUKTemplateRequest>(); var defaultValues = new Mock <IViewModelDefaultValuesProvider>(); defaultValues.Setup(x => x.Breadcrumb).Returns(new Mock <IBreadcrumbProvider>().Object); var redirectMatcher = new Mock <IRedirectMatcher>(); redirectMatcher.Setup(x => x.MatchRedirect(It.IsAny <Uri>())).Returns <Redirect>(null); var controller = new HttpStatusController(templateRequest.Object, defaultValues.Object, null, redirectMatcher.Object, null, null); controller.ControllerContext.HttpContext = CreateHttpContextFor404Page(); var actionResult = await controller.Status404(); Assert.IsType <ViewResult>(actionResult); }
public async Task HttpStatus404_matching_redirect_returns_redirect_result() { var templateRequest = new Mock <IEastSussexGovUKTemplateRequest>(); var defaultValues = new Mock <IViewModelDefaultValuesProvider>(); defaultValues.Setup(x => x.Breadcrumb).Returns(new Mock <IBreadcrumbProvider>().Object); var redirectMatcher = new Mock <IRedirectMatcher>(); redirectMatcher.Setup(x => x.MatchRedirect(It.IsAny <Uri>())).Returns(new Redirect() { DestinationUrl = new Uri("https://www.example.org") }); var controller = new HttpStatusController(templateRequest.Object, defaultValues.Object, null, redirectMatcher.Object, null, null); controller.ControllerContext.HttpContext = CreateHttpContextFor404Page(); var actionResult = await controller.Status404(); Assert.IsType <StatusCodeResult>(actionResult); }
public async Task HttpStatus404_matching_redirect_sets_location_header() { var templateRequest = new Mock <IEastSussexGovUKTemplateRequest>(); var defaultValues = new Mock <IViewModelDefaultValuesProvider>(); defaultValues.Setup(x => x.Breadcrumb).Returns(new Mock <IBreadcrumbProvider>().Object); var redirect = new Redirect() { DestinationUrl = new Uri("https://www.example.org/") }; var redirectMatcher = new Mock <IRedirectMatcher>(); redirectMatcher.Setup(x => x.MatchRedirect(It.IsAny <Uri>())).Returns(redirect); var controller = new HttpStatusController(templateRequest.Object, defaultValues.Object, null, redirectMatcher.Object, null, null); controller.ControllerContext.HttpContext = CreateHttpContextFor404Page(); var actionResult = await controller.Status404(); Assert.True(controller.ControllerContext.HttpContext.Response.Headers.Contains(new KeyValuePair <string, StringValues>("Location", "https://www.example.org/"))); }
public async Task HttpStatus404_matching_redirect_preserves_querystring() { var templateRequest = new Mock <IEastSussexGovUKTemplateRequest>(); var defaultValues = new Mock <IViewModelDefaultValuesProvider>(); defaultValues.Setup(x => x.Breadcrumb).Returns(new Mock <IBreadcrumbProvider>().Object); var redirect = new Redirect() { DestinationUrl = new Uri("https://www.example.org") }; var redirectMatcher = new Mock <IRedirectMatcher>(); redirectMatcher.Setup(x => x.MatchRedirect(It.IsAny <Uri>())).Returns(redirect); var queryStringPreserver = new Mock <IPreserveQueryStringHandler>(); var controller = new HttpStatusController(templateRequest.Object, defaultValues.Object, null, redirectMatcher.Object, null, queryStringPreserver.Object); controller.ControllerContext.HttpContext = CreateHttpContextFor404Page(); var actionResult = await controller.Status404(); queryStringPreserver.Verify(x => x.HandleRedirect(redirect)); }