OnResultExecuted() public method

public OnResultExecuted ( ResultExecutedContext context ) : void
context ResultExecutedContext
return void
        public void SaveTempDataFilter_OnResultExecuted_KeepsTempData_ForIKeepTempDataResult()
        {
            // Arrange
            var tempData = new Mock <ITempDataDictionary>(MockBehavior.Strict);

            tempData
            .Setup(m => m.Keep())
            .Verifiable();

            var tempDataFactory = new Mock <ITempDataDictionaryFactory>(MockBehavior.Strict);

            tempDataFactory
            .Setup(f => f.GetTempData(It.IsAny <HttpContext>()))
            .Returns(tempData.Object);

            var filter = new SaveTempDataFilter(tempDataFactory.Object);

            var context = new ResultExecutedContext(
                new ActionContext(new DefaultHttpContext(), new RouteData(), new ActionDescriptor()),
                new IFilterMetadata[] { },
                new Mock <IKeepTempDataResult>().Object,
                new object());

            // Act
            filter.OnResultExecuted(context);

            // Assert
            tempData.Verify();
        }
        public void OnResultExecuted_CanBeCalledTwice()
        {
            // Arrange
            var responseFeature = new TestResponseFeature();
            var httpContext     = GetHttpContext(responseFeature);
            var tempData        = GetTempDataDictionary();
            var tempDataFactory = new Mock <ITempDataDictionaryFactory>(MockBehavior.Strict);

            tempDataFactory
            .Setup(f => f.GetTempData(It.IsAny <HttpContext>()))
            .Returns(tempData.Object)
            .Verifiable();
            var filter  = new SaveTempDataFilter(tempDataFactory.Object);
            var context = GetResultExecutedContext(httpContext);

            // Act (No Assert)
            filter.OnResultExecuted(context);
            // Shouldn't have thrown
            filter.OnResultExecuted(context);
        }
Example #3
0
        public void OnResultExecuted_DoesNotSaveTempData_WhenResponseHas_AlreadyStarted()
        {
            // Arrange
            var tempDataFactory = new Mock <ITempDataDictionaryFactory>(MockBehavior.Strict);

            tempDataFactory
            .Setup(f => f.GetTempData(It.IsAny <HttpContext>()))
            .Verifiable();
            var filter      = new SaveTempDataFilter(tempDataFactory.Object);
            var httpContext = GetHttpContext(new TestResponseFeature(hasStarted: true));
            var context     = GetResultExecutedContext(httpContext);

            // Act
            filter.OnResultExecuted(context);

            // Assert
            tempDataFactory.Verify(tdf => tdf.GetTempData(It.IsAny <HttpContext>()), Times.Never());
        }
        public void SaveTempDataFilter_OnResultExecuted_DoesNotKeepTempData_ForNonIKeepTempDataResult()
        {
            // Arrange
            var tempData = new Mock <ITempDataDictionary>(MockBehavior.Strict);

            var tempDataFactory = new Mock <ITempDataDictionaryFactory>(MockBehavior.Strict);

            tempDataFactory
            .Setup(f => f.GetTempData(It.IsAny <HttpContext>()))
            .Returns(tempData.Object);

            var filter = new SaveTempDataFilter(tempDataFactory.Object);

            var context = new ResultExecutedContext(
                new ActionContext(new DefaultHttpContext(), new RouteData(), new ActionDescriptor()),
                new IFilterMetadata[] { },
                new Mock <IActionResult>().Object,
                new object());

            // Act
            filter.OnResultExecuted(context);

            // Assert - The mock will throw if we do the wrong thing.
        }