public virtual void ExecuteModuleHeader(PortalRequestContext portalContext, ModuleRequestResult moduleResult) { IHeaderContributingResult headerResult = moduleResult.ActionResult as IHeaderContributingResult; if (headerResult != null) { RunInModuleResultContext(portalContext, moduleResult, () => headerResult.ExecuteHeader(moduleResult.ControllerContext)); } }
public void ExecuteModuleHeader_Does_Nothing_If_ModuleResult_Does_Not_Implement_IHeaderContributingResult() { // Arrange var mockResult = new Mock<ActionResult>(); PortalRequestContext context = new PortalRequestContext(Mockery.CreateMockHttpContext()); ModuleRequestResult result = new ModuleRequestResult() { ActionResult = mockResult.Object, ControllerContext = Mockery.CreateMockControllerContext() }; ModuleExecutionEngine engine = new ModuleExecutionEngine(); // Act engine.ExecuteModuleHeader(context, result); // Assert (nothing happened?) }
public void ExecuteModuleHeader_Executes_ModuleResult_Header_If_It_Implements_IHeaderContributingResult() { // Arrange var mockResult = new Mock<ActionResult>(); mockResult.As<IHeaderContributingResult>(); PortalRequestContext context = new PortalRequestContext(Mockery.CreateMockHttpContext()); ModuleRequestResult result = new ModuleRequestResult() { ActionResult = mockResult.Object, ControllerContext = Mockery.CreateMockControllerContext() }; ModuleExecutionEngine engine = new ModuleExecutionEngine(); // Act engine.ExecuteModuleHeader(context, result); // Assert mockResult.As<IHeaderContributingResult>() .Verify(r => r.ExecuteHeader(result.ControllerContext)); }
protected internal void RunInModuleResultContext(PortalRequestContext portalContext, ModuleRequestResult moduleResult, Action action) { // Set the active module ModuleRequestResult oldRequest = portalContext.ActiveModuleRequest; portalContext.ActiveModuleRequest = moduleResult; // Run the action action(); // Restore the previous active module portalContext.ActiveModuleRequest = oldRequest; }
public virtual void ExecuteModuleResult(PortalRequestContext portalContext, ModuleRequestResult moduleResult) { RunInModuleResultContext(portalContext, moduleResult, () => moduleResult.ActionResult.ExecuteResult(moduleResult.ControllerContext)); }
public void RunInModuleContext_Sets_ActiveModuleRequest_Before_Calling_Delegate() { // Arrange HttpContextBase httpContext = Mockery.CreateMockHttpContext(); ModuleRequestResult moduleResult = new ModuleRequestResult(); PortalRequestContext portalContext = new PortalRequestContext(httpContext); ModuleExecutionEngine engine = new ModuleExecutionEngine(); // Act engine.RunInModuleResultContext(portalContext, moduleResult, () => { // Assert Assert.AreSame(moduleResult, portalContext.ActiveModuleRequest); }); }
public void RunInModuleContext_Runs_Provided_Action() { // Arrange HttpContextBase httpContext = Mockery.CreateMockHttpContext(); ModuleRequestResult moduleResult = new ModuleRequestResult(); PortalRequestContext portalContext = new PortalRequestContext(httpContext); ModuleExecutionEngine engine = new ModuleExecutionEngine(); bool actionRun = false; // Act engine.RunInModuleResultContext(portalContext, moduleResult, () => { actionRun = true; }); // Assert Assert.IsTrue(actionRun); }
public void RunInModuleContext_Restores_Original_ActiveModuleRequest_After_Returning_From_Delegate() { // Arrange HttpContextBase httpContext = Mockery.CreateMockHttpContext(); ModuleRequestResult moduleResult = new ModuleRequestResult(); ModuleRequestResult originalModuleResult = new ModuleRequestResult(); PortalRequestContext portalContext = new PortalRequestContext(httpContext); ModuleExecutionEngine engine = new ModuleExecutionEngine(); portalContext.ActiveModuleRequest = originalModuleResult; // Act engine.RunInModuleResultContext(portalContext, moduleResult, () => { }); // Assert Assert.AreSame(originalModuleResult, portalContext.ActiveModuleRequest); }
public void ExecuteModule_Returns_Result_Of_Executing_ModuleApplication() { // Arrange ModuleExecutionEngine engine = CreateExecutionEngine(); ModuleRequestResult expected = new ModuleRequestResult(); Mock.Get(engine.ModuleApplications[ModuleControllerTests.TestModule2Id].GetExportedObject()) .Setup(app => app.ExecuteRequest(It.IsAny<ModuleRequestContext>())) .Returns(expected); // Act ModuleRequestResult actual = engine.ExecuteModule(Mockery.CreateMockHttpContext(), new Module() { ModuleApplicationId = ModuleControllerTests.TestModule2Id }, String.Empty); // Assert Assert.AreSame(expected, actual); }