public void PossiblyReleaseController_CorrectFactory_ReleasesController() { // Arrange RequestContext requestContext = GetRequestContext(); IHttpHandler originalHttpHandler = requestContext.HttpContext.Handler; Controller controller = new ControllerReadOnlySession(); Mock <IControllerFactory> mockControllerFactory = new Mock <IControllerFactory>(); mockControllerFactory.Expect(o => o.CreateController(requestContext, "home")).Returns(controller); mockControllerFactory.Expect(o => o.ReleaseController(controller)).Verifiable(); ControllerBuilder controllerBuilder = new ControllerBuilder(); controllerBuilder.SetControllerFactory(new MvcDynamicSessionControllerFactory(mockControllerFactory.Object)); MvcDynamicSessionModule module = new MvcDynamicSessionModule() { ControllerBuilder = controllerBuilder }; // Act module.SetSessionStateMode(requestContext.HttpContext, SimpleDynamicSessionStateConfigurator.ExpectMode(ControllerSessionState.ReadOnly)); MvcDynamicSessionModule.PossiblyReleaseController(requestContext.HttpContext); // Assert mockControllerFactory.Verify(); }
public void SetSessionStateMode_ThrowsIfControllerFactoryIsIncorrect() { // Arrange RequestContext requestContext = GetRequestContext(); MvcDynamicSessionModule module = new MvcDynamicSessionModule(); // Act & assert ExceptionHelper.ExpectInvalidOperationException( delegate { module.SetSessionStateMode(requestContext.HttpContext, null); }, @"The ControllerBuilder must return an IControllerFactory of type Microsoft.Web.Mvc.MvcDynamicSessionControllerFactory if the MvcDynamicSessionModule is enabled."); }
public void SetSessionStateMode_HandlerIsNotMvcHandler_DoesNothing() { // Arrange IHttpHandler expectedHandler = new Mock <IHttpHandler>().Object; Mock <HttpContextBase> mockHttpContext = new Mock <HttpContextBase>(); mockHttpContext.Expect(o => o.Handler).Returns(expectedHandler); mockHttpContext.Expect(o => o.Items).Never(); MvcDynamicSessionModule module = new MvcDynamicSessionModule(); // Act module.SetSessionStateMode(mockHttpContext.Object, SimpleDynamicSessionStateConfigurator.ExpectNever()); // Assert mockHttpContext.Verify(); }
public void SetSessionStateMode_HandlerIsMvcHandler_ControllerHasAttribute_SetsAttributeValue() { // Arrange RequestContext requestContext = GetRequestContext(); IHttpHandler originalHttpHandler = requestContext.HttpContext.Handler; Mock<IControllerFactory> mockControllerFactory = new Mock<IControllerFactory>(); mockControllerFactory.Expect(o => o.CreateController(requestContext, "home")).Returns(new ControllerReadOnlySession()); ControllerBuilder controllerBuilder = new ControllerBuilder(); controllerBuilder.SetControllerFactory(new MvcDynamicSessionControllerFactory(mockControllerFactory.Object)); MvcDynamicSessionModule module = new MvcDynamicSessionModule() { ControllerBuilder = controllerBuilder }; // Act module.SetSessionStateMode(requestContext.HttpContext, SimpleDynamicSessionStateConfigurator.ExpectMode(ControllerSessionState.ReadOnly)); // Assert Assert.AreEqual(2, requestContext.HttpContext.Items.Count, "Cache + factory weren't properly added to Items."); }
public void PossiblyReleaseController_CorrectFactory_ReleasesController() { // Arrange RequestContext requestContext = GetRequestContext(); IHttpHandler originalHttpHandler = requestContext.HttpContext.Handler; Controller controller = new ControllerReadOnlySession(); Mock<IControllerFactory> mockControllerFactory = new Mock<IControllerFactory>(); mockControllerFactory.Expect(o => o.CreateController(requestContext, "home")).Returns(controller); mockControllerFactory.Expect(o => o.ReleaseController(controller)).Verifiable(); ControllerBuilder controllerBuilder = new ControllerBuilder(); controllerBuilder.SetControllerFactory(new MvcDynamicSessionControllerFactory(mockControllerFactory.Object)); MvcDynamicSessionModule module = new MvcDynamicSessionModule() { ControllerBuilder = controllerBuilder }; // Act module.SetSessionStateMode(requestContext.HttpContext, SimpleDynamicSessionStateConfigurator.ExpectMode(ControllerSessionState.ReadOnly)); MvcDynamicSessionModule.PossiblyReleaseController(requestContext.HttpContext); // Assert mockControllerFactory.Verify(); }
public void SetSessionStateMode_HandlerIsMvcHandler_ControllerHasNoAttribute_SetsDefault() { // Arrange RequestContext requestContext = GetRequestContext(); IHttpHandler originalHttpHandler = requestContext.HttpContext.Handler; Mock <IControllerFactory> mockControllerFactory = new Mock <IControllerFactory>(); mockControllerFactory.Expect(o => o.CreateController(requestContext, "home")).Returns(new ControllerWithoutAttribute()); ControllerBuilder controllerBuilder = new ControllerBuilder(); controllerBuilder.SetControllerFactory(new MvcDynamicSessionControllerFactory(mockControllerFactory.Object)); MvcDynamicSessionModule module = new MvcDynamicSessionModule() { ControllerBuilder = controllerBuilder }; // Act module.SetSessionStateMode(requestContext.HttpContext, SimpleDynamicSessionStateConfigurator.ExpectMode(ControllerSessionState.Default)); // Assert Assert.AreEqual(2, requestContext.HttpContext.Items.Count, "Cache + factory weren't properly added to Items."); }
public void SetSessionStateMode_HandlerIsNotMvcHandler_DoesNothing() { // Arrange IHttpHandler expectedHandler = new Mock<IHttpHandler>().Object; Mock<HttpContextBase> mockHttpContext = new Mock<HttpContextBase>(); mockHttpContext.Expect(o => o.Handler).Returns(expectedHandler); mockHttpContext.Expect(o => o.Items).Never(); MvcDynamicSessionModule module = new MvcDynamicSessionModule(); // Act module.SetSessionStateMode(mockHttpContext.Object, SimpleDynamicSessionStateConfigurator.ExpectNever()); // Assert mockHttpContext.Verify(); }