コード例 #1
0
        public void GetPropertiesShouldNotThrowExceptionForPrivateProperties()
        {
            MyMvc.IsUsingDefaultConfiguration();

            var helper = ViewFeaturesControllerPropertyHelper.GetViewFeatureProperties <PrivatePocoController>();

            var controller = new PrivatePocoController(TestServiceProvider.Global);

            var gotTempData = helper.TempDataGetter(controller);

            Assert.NotNull(gotTempData);
        }
コード例 #2
0
        public void GetPropertiesShouldNotThrowExceptionForPocoController()
        {
            MyMvc
            .IsUsingDefaultConfiguration()
            .WithServices(services =>
            {
                services.AddHttpContextAccessor();
            });

            var helper = ViewFeaturesControllerPropertyHelper.GetViewFeatureProperties <FullPocoController>();

            var controllerContext = new ControllerContext();
            var controller        = new FullPocoController
            {
                CustomControllerContext = controllerContext
            };

            Assert.NotNull(controller.CustomControllerContext);
            Assert.Same(controllerContext, controller.CustomControllerContext);

            var gotControllerContext = helper.ControllerContextGetter(controller);

            Assert.NotNull(gotControllerContext);
            Assert.Same(gotControllerContext, controller.CustomControllerContext);

            var actionContext = new ActionContext();

            controller.CustomActionContext = actionContext;

            Assert.NotNull(controller.CustomActionContext);
            Assert.Same(actionContext, controller.CustomActionContext);

            var gotActionContext = helper.ActionContextGetter(controller);

            Assert.NotNull(gotActionContext);
            Assert.Same(gotActionContext, controller.CustomActionContext);

            var gotViewData = helper.ViewDataGetter(controller);

            Assert.NotNull(gotViewData);
            Assert.Same(gotViewData, controller.CustomViewData);

            var gotTempData = helper.TempDataGetter(controller);

            Assert.NotNull(gotTempData);
            Assert.Same(gotTempData, controller.CustomTempData);

            MyMvc.IsUsingDefaultConfiguration();
        }
コード例 #3
0
        public void GetPropertiesShouldNotThrowExceptionForNormalController()
        {
            MyMvc.IsUsingDefaultConfiguration();

            var helper = ViewFeaturesControllerPropertyHelper.GetViewFeatureProperties <MvcController>();

            var controller        = new MvcController();
            var controllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    RequestServices = TestServiceProvider.Global
                }
            };

            controller.ControllerContext = controllerContext;

            Assert.NotNull(controller.ControllerContext);
            Assert.Same(controllerContext, controller.ControllerContext);

            var gotControllerContext = helper.ControllerContextGetter(controller);

            Assert.NotNull(gotControllerContext);
            Assert.Same(gotControllerContext, controller.ControllerContext);

            Test.AssertException <InvalidOperationException>(
                () =>
            {
                var gotActionContext = helper.ActionContextGetter(controller);
            },
                "ActionContext could not be found on the provided MvcController. The property should be specified manually by providing controller instance or using the specified helper methods.");

            var gotViewData = helper.ViewDataGetter(controller);

            Assert.NotNull(gotViewData);
            Assert.Same(gotViewData, controller.ViewData);

            var tempData    = controller.TempData;
            var gotTempData = helper.TempDataGetter(controller);

            Assert.NotNull(gotTempData);
            Assert.Same(gotTempData, controller.TempData);
        }
 public static ViewDataDictionary GetViewData(this ControllerTestContext controllerTestContext)
 => controllerTestContext.ControllerAs <Controller>()?.ViewData
 ?? ViewFeaturesControllerPropertyHelper
 .GetViewFeatureProperties(controllerTestContext.Controller.GetType())
 .ViewDataGetter(controllerTestContext.Controller);