public async Task NoModelToProvide_Fails() { var modelProvider = new Mock <IRequestModelProvider>(); modelProvider.Setup(x => x.GetCurrentRequestModel()).Returns(null); var configurationProvider = new Mock <IListConfigurationProvider>(); var actionFilter = new PostRedirectGetActionFilter(modelProvider.Object, configurationProvider.Object); var httpContext = new Mock <HttpContext>(); var actionContext = new ActionContext(httpContext.Object, new RouteData(), new ControllerActionDescriptor()); actionFilter.Order.Should().Be(1); var httpRequest = new Mock <HttpRequest>(); var actionExecutionDelegate = new Mock <ActionExecutionDelegate>(); httpRequest.SetupGet(x => x.Method).Returns("POST"); httpContext.SetupGet(x => x.Request).Returns(httpRequest.Object); var controller = new Mock <Controller>(); var actionExecutingContext = new ActionExecutingContext(actionContext, new List <IFilterMetadata>(), new RouteValueDictionary(), controller.Object); await actionFilter.OnActionExecutionAsync(actionExecutingContext, actionExecutionDelegate.Object); actionExecutingContext.Result.Should().BeNull(); }
public async Task Succeeds() { var model = new TestRequest(); var modelProvider = new Mock <IRequestModelProvider>(); modelProvider.Setup(x => x.GetCurrentRequestModel()).Returns(model); var configurationProvider = new Mock <IListConfigurationProvider>(); var listConfiguration = new ListConfiguration(typeof(TestRequest), typeof(TestItem), typeof(TestResult)) { PostRedirectGetConfiguration = new PostRedirectGetConfiguration("Index", true), PageConfiguration = new PageConfiguration("Page", 1), RowsConfiguration = new RowsConfiguration("Rows", 20), SortColumnConfiguration = new SortColumnConfiguration("Ordx", "Text"), SortDirectionConfiguration = new SortDirectionConfiguration("Ordd", Direction.Ascending) }; configurationProvider.Setup(x => x.GetConfiguration(It.IsAny <Type>())).Returns(listConfiguration); var actionFilter = new PostRedirectGetActionFilter(modelProvider.Object, configurationProvider.Object); actionFilter.Order.Should().Be(1); var httpContext = new Mock <HttpContext>(); var actionContext = new ActionContext(httpContext.Object, new RouteData(), new ControllerActionDescriptor() { ActionName = "Index" }); var httpRequest = new Mock <HttpRequest>(); var actionExecutionDelegate = new Mock <ActionExecutionDelegate>(); httpRequest.SetupGet(x => x.Method).Returns("POST"); httpContext.SetupGet(x => x.Request).Returns(httpRequest.Object); var controller = new Mock <Controller>(); var actionExecutingContext = new ActionExecutingContext(actionContext, new List <IFilterMetadata>(), new RouteValueDictionary(), controller.Object); await actionFilter.OnActionExecutionAsync(actionExecutingContext, actionExecutionDelegate.Object); actionExecutingContext.Result.Should().BeOfType <RedirectToActionResult>(); }
public async Task Enabled_False_Fails() { var model = new TestRequest(); var modelProvider = new Mock <IRequestModelProvider>(); modelProvider.Setup(x => x.GetCurrentRequestModel()).Returns(model); var configurationProvider = new Mock <IListConfigurationProvider>(); var listConfiguration = new ListConfiguration(typeof(TestRequest), typeof(TestItem), typeof(TestResult)) { PostRedirectGetConfiguration = new PostRedirectGetConfiguration("Index", false) }; configurationProvider.Setup(x => x.GetConfiguration(It.IsAny <Type>())).Returns(listConfiguration); var actionFilter = new PostRedirectGetActionFilter(modelProvider.Object, configurationProvider.Object); actionFilter.Order.Should().Be(1); var httpContext = new Mock <HttpContext>(); var actionContext = new ActionContext(httpContext.Object, new RouteData(), new ControllerActionDescriptor() { ActionName = "Index" }); var httpRequest = new Mock <HttpRequest>(); var actionExecutionDelegate = new Mock <ActionExecutionDelegate>(); httpRequest.SetupGet(x => x.Method).Returns("POST"); httpContext.SetupGet(x => x.Request).Returns(httpRequest.Object); var controller = new Mock <Controller>(); var actionExecutingContext = new ActionExecutingContext(actionContext, new List <IFilterMetadata>(), new RouteValueDictionary(), controller.Object); await actionFilter.OnActionExecutionAsync(actionExecutingContext, actionExecutionDelegate.Object); actionExecutingContext.Result.Should().BeNull(); }