示例#1
0
        public void OnPageHandlerExecuted_ResultIsNotRedirectToPageResult_ExpectNoAttemptsToAccessTempData()
        {
            var tempDataDictionary = new Mock <ITempDataDictionary>();

            var modelStateDataCount = 0;
            var pageModelDataCount  = 0;

            tempDataDictionary.SetupSet(x => x["PrgPageModelModelState"] = It.IsAny <object>()).Callback(() =>
            {
                modelStateDataCount++;
            });
            tempDataDictionary.SetupSet(x => x["PrgPageModelPageModel"] = It.IsAny <object>()).Callback(() =>
            {
                pageModelDataCount++;
            });

            var pageContext = new PageContext(new ActionContext(
                                                  new DefaultHttpContext(),
                                                  new RouteData(),
                                                  new PageActionDescriptor(),
                                                  new ModelStateDictionary()));

            var model = new Mock <PageModel>();

            var pageHandlerExecutedContext = new PageHandlerExecutedContext(
                pageContext,
                Array.Empty <IFilterMetadata>(),
                new HandlerMethodDescriptor(),
                model.Object)
            {
                Result = new PageResult()
            };

            var page = new TestablePrgPageModel
            {
                TempData = tempDataDictionary.Object,
            };

            page.OnPageHandlerExecuted(pageHandlerExecutedContext);

            Assert.Equal(0, modelStateDataCount);
            Assert.Equal(0, pageModelDataCount);
        }
示例#2
0
        OnPageHandlerExecuted_ResultIsRedirectToPageResultAndModelStateNotValidAndPrgStateIsFailedOrInError_ExpectTwoAttemptsToAccessTempData()
        {
            var tempDataDictionary = new Mock <ITempDataDictionary>();

            var modelStateDataCount = 0;
            var pageModelDataCount  = 0;

            tempDataDictionary.SetupSet(x => x["PrgPageModelModelState"] = It.IsAny <object>()).Callback(() =>
            {
                modelStateDataCount++;
            });
            tempDataDictionary.SetupSet(x => x["PrgPageModelPageModel"] = It.IsAny <object>()).Callback(() =>
            {
                pageModelDataCount++;
            });
            var pageContext = new PageContext(new ActionContext(
                                                  new DefaultHttpContext(),
                                                  new RouteData(),
                                                  new PageActionDescriptor(),
                                                  new ModelStateDictionary()));

            pageContext.ModelState.AddModelError <TestablePrgPageModel.Model>(x => x.Name, "some-error");

            var model = new Mock <PageModel>();

            var pageHandlerExecutedContext = new PageHandlerExecutedContext(
                pageContext,
                Array.Empty <IFilterMetadata>(),
                new HandlerMethodDescriptor(),
                model.Object)
            {
                Result = new RedirectToPageResult("some-page")
            };

            var page = new TestablePrgPageModel {
                TempData = tempDataDictionary.Object, PrgState = PrgState.InError
            };

            page.OnPageHandlerExecuted(pageHandlerExecutedContext);

            Assert.Equal(1, modelStateDataCount);
            Assert.Equal(1, pageModelDataCount);
        }
示例#3
0
        OnPageHandlerExecuting_GivenResultIsNotRedirectToPageResultAndTempDataContainsModelState_ExpectTwoAttemptToAccessTempDataAndOneAttemptToRemoveTempData()
        {
            var pageContext = new PageContext(new ActionContext(
                                                  new DefaultHttpContext(),
                                                  new RouteData(),
                                                  new PageActionDescriptor(),
                                                  new ModelStateDictionary()));
            var tempDataDictionary = new Mock <ITempDataDictionary>();

            var modelStateDataCount = 0;
            var pageModelDataCount  = 0;

            tempDataDictionary.SetupGet(x => x["PrgPageModelModelState"]).Callback(() => { modelStateDataCount++; })
            .Returns(
                "[{\"Key\":\"Name\",\"AttemptedValue\":null,\"RawValue\":null,\"ErrorMessages\":[\"some-error\"]}]");
            tempDataDictionary.SetupGet(x => x["PrgPageModelPageModel"]).Callback(() => { pageModelDataCount++; })
            .Returns(null);

            tempDataDictionary.Setup(x => x.Remove(It.IsAny <string>()));

            var page = new TestablePrgPageModel
            {
                TempData = tempDataDictionary.Object,
            };

            var pageHandlerExecutingContext = new PageHandlerExecutingContext(
                pageContext,
                Array.Empty <IFilterMetadata>(),
                new HandlerMethodDescriptor(),
                new Dictionary <string, object>(),
                page)
            {
                Result = new PageResult()
            };

            page.OnPageHandlerExecuting(pageHandlerExecutingContext);
            Assert.Equal(1, modelStateDataCount);
            Assert.Equal(1, pageModelDataCount);
            Assert.Equal(default, page.PageModel);