public void RequiresAccountConfirmationAttributePassedWithConfirmationRequiredMessage(string inOrderTo)
        {
            var cookieCollection = new HttpCookieCollection();
            var response         = new Mock <HttpResponseBase>(MockBehavior.Strict);

            response.SetupGet(x => x.Cookies).Returns(cookieCollection);
            response.Setup(x => x.ApplyAppPathModifier("/account/ConfirmationRequired")).Returns <string>(x => x);

            var request = new Mock <HttpRequestBase>();

            request.Setup(m => m.Url).Returns(new Uri(TestUtility.GallerySiteRootHttps));
            request.Setup(m => m.RawUrl).Returns(TestUtility.GallerySiteRootHttps);
            request.Setup(m => m.IsSecureConnection).Returns(true);

            var httpContext = new Mock <HttpContextBase>();

            httpContext.SetupGet(h => h.Request).Returns(request.Object);
            httpContext.SetupGet(x => x.Response).Returns(response.Object);

            var routeCollection = new RouteCollection();

            Routes.RegisterRoutes(routeCollection);

            var requestContext = new RequestContext(httpContext.Object, new RouteData());
            var urlHelper      = new UrlHelper(requestContext, routeCollection);

            var controller = new TestableAppController {
                Url = urlHelper
            };

            controller.ControllerContext = new ControllerContext(requestContext, controller);
            var mockActionContext = new Mock <ActionExecutingContext>(MockBehavior.Strict);

            mockActionContext.SetupGet(x => x.HttpContext.Request.IsAuthenticated).Returns(true);
            mockActionContext.SetupGet(x => x.Controller).Returns(controller);

            var attribute = new RequiresAccountConfirmationAttribute(inOrderTo);

            // Act
            attribute.OnActionExecuting(mockActionContext.Object);

            var result = mockActionContext.Object.Result;

            // Assert
            Assert.IsType <RedirectResult>(result);
            Assert.Equal(TestUtility.GallerySiteRootHttps + "account/ConfirmationRequired", ((RedirectResult)result).Url);
            Assert.Equal(string.Format(CultureInfo.CurrentCulture, "Before you can {0} you must first confirm your email address.", inOrderTo), controller.TempData["ConfirmationRequiredMessage"]);
            Assert.Equal("ConfirmationContext", cookieCollection[0].Name);
            Assert.NotEmpty(cookieCollection[0].Value);

            mockActionContext.Verify(x => x.HttpContext.Request.IsAuthenticated);
            mockActionContext.Verify(x => x.Controller);
        }
            public void GivenNoActiveUserPrincipal_ItReturnsNull()
            {
                // Arrange
                var ctrl = new TestableAppController();
                ctrl.OwinContext = Fakes.CreateOwinContext();

                // Act
                var user = ctrl.InvokeGetCurrentUser();

                // Assert
                Assert.Null(user);
            }
Esempio n. 3
0
            public void GivenNoActiveUserPrincipal_ItReturnsNull()
            {
                // Arrange
                var ctrl = new TestableAppController();

                ctrl.SetOwinContextOverride(Fakes.CreateOwinContext());

                // Act
                var user = ctrl.InvokeGetCurrentUser();

                // Assert
                Assert.Null(user);
            }
        public void RequiresAccountConfirmationAttributePassedWithConfirmationRequiredMessage(string inOrderTo)
        {
            var cookieCollection = new HttpCookieCollection();
            var response = new Mock<HttpResponseBase>(MockBehavior.Strict);
            response.SetupGet(x => x.Cookies).Returns(cookieCollection);
            response.Setup(x => x.ApplyAppPathModifier("/account/ConfirmationRequired")).Returns<string>(x => x);

            var request = new Mock<HttpRequestBase>();

            var httpContext = new Mock<HttpContextBase>();
            httpContext.SetupGet(h => h.Request).Returns(request.Object);
            httpContext.SetupGet(x => x.Response).Returns(response.Object);
            httpContext.SetupGet(x => x.Request.RawUrl).Returns("/returnUrl");

            var routeCollection = new RouteCollection();
            Routes.RegisterRoutes(routeCollection);

            var requestContext = new RequestContext(httpContext.Object, new RouteData());
            var urlHelper = new UrlHelper(requestContext, routeCollection);
            
            var controller = new TestableAppController { Url = urlHelper };
            controller.ControllerContext = new ControllerContext(requestContext, controller);
            var mockActionContext = new Mock<ActionExecutingContext>(MockBehavior.Strict);
            mockActionContext.SetupGet(x => x.HttpContext.Request.IsAuthenticated).Returns(true);
            mockActionContext.SetupGet(x => x.Controller).Returns(controller);

            var attribute = new RequiresAccountConfirmationAttribute(inOrderTo);

            // Act
            attribute.OnActionExecuting(mockActionContext.Object);

            var result = mockActionContext.Object.Result;

            // Assert
            Assert.IsType<RedirectResult>(result);
            Assert.Equal("/account/ConfirmationRequired", ((RedirectResult)result).Url);
            Assert.Equal(string.Format(CultureInfo.CurrentCulture, "Before you can {0} you must first confirm your email address.", inOrderTo), controller.TempData["ConfirmationRequiredMessage"]);
            Assert.Equal("ConfirmationContext", cookieCollection[0].Name);
            Assert.NotEmpty(cookieCollection[0].Value);

            mockActionContext.Verify(x => x.HttpContext.Request.IsAuthenticated);
            mockActionContext.Verify(x => x.Controller);
        }