Exemple #1
0
        public void ExecuteRequest_Returns_Result_And_ControllerContext_From_Controller()
        {
            // Arrange
            var app = new ModuleApplication();

            ControllerContext controllerContext = MockHelper.CreateMockControllerContext();
            ActionResult      actionResult      = new Mock <ActionResult>().Object;

            var controller = SetupMockController(actionResult, controllerContext);

            var controllerFactory = SetupControllerFactory(controller.Object);

            app.ControllerFactory = controllerFactory.Object;

            ModuleRequestContext moduleRequestContext = CreateModuleContext(ControllerName, ActionName);

            // Act
            ModuleRequestResult result = app.ExecuteRequest(moduleRequestContext);

            // Assert
            Assert.AreSame(actionResult, result.ActionResult);
            Assert.AreSame(controllerContext, result.ControllerContext);
        }
        public void ExecuteRequest_Calls_ControllerFactory_To_Construct_Controller()
        {
            // Arrange
            var app = new ModuleApplication();

            var            controllerFactory    = new Mock <IControllerFactory>();
            RequestContext actualRequestContext = null;

            controllerFactory.Setup(f => f.CreateController(It.IsAny <RequestContext>(), ControllerName))
            .Callback <RequestContext, string>((c, n) => actualRequestContext = c)
            .Returns(new Mock <IDnnController>().Object);

            app.ControllerFactory = controllerFactory.Object;

            ModuleRequestContext moduleRequestContext = CreateModuleContext(ControllerName, ActionName);

            // Act
            app.ExecuteRequest(moduleRequestContext);

            // Assert
            controllerFactory.Verify(f => f.CreateController(It.IsAny <RequestContext>(), ControllerName));
            Assert.AreSame(moduleRequestContext.HttpContext, actualRequestContext.HttpContext);
        }
        public void ExecuteRequest_Executes_Constructed_Controller_And_Provides_RequestContext()
        {
            // Arrange
            var app = new ModuleApplication();

            var controller = new Mock <IController>();

            controller.As <IDnnController>();

            var controllerFactory = SetupControllerFactory(controller.Object);

            app.ControllerFactory = controllerFactory.Object;

            ModuleRequestContext moduleRequestContext = CreateModuleContext(ControllerName, ActionName);

            // Act
            ModuleRequestResult result = app.ExecuteRequest(moduleRequestContext);

            // Assert
            controller.Verify(c => c.Execute(It.Is <RequestContext>(rc =>
                                                                    rc.HttpContext == moduleRequestContext.HttpContext &&
                                                                    rc.RouteData.GetRequiredString("controller") == ControllerName)));
        }
        private static RouteData SetupGetRouteDataCall(ModuleApplication app)
        {
            RouteData expectedRouteData = CreateTestRouteData();

            Mock.Get(app)
                .Setup(a => a.GetRouteData(It.IsAny<HttpContextBase>()))
                .Returns(expectedRouteData);
            return expectedRouteData;
        }
        private static IModuleController SetupExecuteRequestCall(ModuleApplication app)
        {
            RouteData expectedRouteData = SetupGetRouteDataCall(app);

            ControllerContext controllerContext = Mockery.CreateMockControllerContext();
            ActionResult actionResult = new Mock<ActionResult>().Object;

            IModuleController controller = SetupMockController(actionResult, controllerContext);
            app.ControllerFactory = SetupControllerFactory(controller);

            Mock.Get(app)
                .Setup(a => a.ShouldOverrideOtherModules(actionResult, It.IsAny<ModuleRequestContext>(), It.IsAny<ControllerContext>()))
                .Returns(true);

            return controller;
        }
 private static ModuleRequestContext CreateModuleContext(ModuleApplication app, string moduleRoutingUrl)
 {
     return new ModuleRequestContext {
         Application = app,
         HttpContext = Mockery.CreateMockHttpContext("http://localhost/Portal/Page/ModuleRoute"),
         Module = new Module {Id = 42},
         ModuleRoutingUrl = moduleRoutingUrl
     };
 }