Пример #1
0
        public void SetUpSessionStateUsesSessionStateValueFromStartPageHierarchy()
        {
            // Arrange
            var page      = new Mock <WebPage>(MockBehavior.Strict);
            var startPage = new DefaultSessionWebPage {
                ChildPage = new ReadOnlySessionWebPage()
            };
            var webPageHttpHandler = new WebPageHttpHandler(
                page.Object,
                startPage: new Lazy <WebPageRenderingBase>(() => startPage)
                );
            var context = new Mock <HttpContextBase>(MockBehavior.Strict);

            context
            .Setup(c => c.SetSessionStateBehavior(SessionStateBehavior.ReadOnly))
            .Verifiable();

            // Act
            SessionStateUtil.SetUpSessionState(
                context.Object,
                webPageHttpHandler,
                new ConcurrentDictionary <Type, SessionStateBehavior?>()
                );

            // Assert
            context.Verify();
        }
Пример #2
0
        public void SetUpSessionStateThrowsIfMultipleSessionStateValueIsInvalid()
        {
            // Arrange
            var page = new PageWithMultipleSesionStateAttributes();
            var webPageHttpHandler = new WebPageHttpHandler(page, startPage: null);
            var context            = new Mock <HttpContextBase>(MockBehavior.Strict);

            // Act
            Assert.Throws <InvalidOperationException>(() => SessionStateUtil.SetUpSessionState(context.Object, webPageHttpHandler, new ConcurrentDictionary <Type, SessionStateBehavior?>()),
                                                      "At most one SessionState value can be declared per page.");
        }
Пример #3
0
        public void SetUpSessionStateThrowsIfSessionStateValueIsInvalid()
        {
            // Arrange
            var page               = new Mock <WebPage>(MockBehavior.Strict);
            var startPage          = new InvalidSessionState();
            var webPageHttpHandler = new WebPageHttpHandler(page.Object, startPage: new Lazy <WebPageRenderingBase>(() => startPage));
            var context            = new Mock <HttpContextBase>(MockBehavior.Strict);

            // Act
            Assert.Throws <ArgumentException>(() => SessionStateUtil.SetUpSessionState(context.Object, webPageHttpHandler, new ConcurrentDictionary <Type, SessionStateBehavior?>()),
                                              "Value \"jabberwocky\" specified in \"~/_Invalid.cshtml\" is an invalid value for the SessionState directive. Possible values are: \"Default, Required, ReadOnly, Disabled\".");
        }
Пример #4
0
        public void SetUpSessionStateDoesNotInvokeSessionStateBehaviorIfNoPageHasDirective()
        {
            // Arrange
            var page               = new Mock <WebPage>(MockBehavior.Strict);
            var startPage          = new Mock <StartPage>(MockBehavior.Strict);
            var webPageHttpHandler = new WebPageHttpHandler(page.Object, startPage: new Lazy <WebPageRenderingBase>(() => startPage.Object));
            var context            = new Mock <HttpContextBase>(MockBehavior.Strict);

            // Act
            SessionStateUtil.SetUpSessionState(context.Object, webPageHttpHandler, new ConcurrentDictionary <Type, SessionStateBehavior?>());

            // Assert
            context.Verify(c => c.SetSessionStateBehavior(It.IsAny <SessionStateBehavior>()), Times.Never());
        }
Пример #5
0
        public void SetUpSessionStateUsesSessionStateValueFromRequestingPageIfAvailable()
        {
            // Arrange
            var page = new DisabledSessionWebPage();
            var webPageHttpHandler = new WebPageHttpHandler(page, startPage: null);
            var context            = new Mock <HttpContextBase>(MockBehavior.Strict);

            context.Setup(c => c.SetSessionStateBehavior(SessionStateBehavior.Disabled)).Verifiable();

            // Act
            SessionStateUtil.SetUpSessionState(context.Object, webPageHttpHandler, new ConcurrentDictionary <Type, SessionStateBehavior?>());

            // Assert
            context.Verify();
        }
Пример #6
0
        public void SetUpSessionStateUsesCache()
        {
            // Arrange
            var page = new PageWithBadAttribute();
            var webPageHttpHandler = new WebPageHttpHandler(page, startPage: null);
            var context            = new Mock <HttpContextBase>(MockBehavior.Strict);
            var dictionary         = new ConcurrentDictionary <Type, SessionStateBehavior?>();

            dictionary.TryAdd(webPageHttpHandler.GetType(), SessionStateBehavior.Default);
            context.Setup(c => c.SetSessionStateBehavior(SessionStateBehavior.Default)).Verifiable();

            // Act
            SessionStateUtil.SetUpSessionState(context.Object, webPageHttpHandler, dictionary);

            // Assert
            context.Verify();
            Assert.Throws <Exception>(() => page.GetType().GetCustomAttributes(inherit: false), "Can't call me!");
        }