public void RequiresAccountConfirmationAttributeThrowsExceptionIfContextNull() { var attribute = new RequiresAccountConfirmationAttribute("some string"); // Act/Assert Assert.Throws<ArgumentNullException>(() => attribute.OnActionExecuting(null)); }
public void RequiresAccountConfirmationAttributePassedWhenUserNotConfirmed() { var controller = new Mock <AppController>(); controller.Setup(x => x.GetCurrentUser()).Returns(new User { EmailAddress = "*****@*****.**" }); var mockActionContext = new Mock <ActionExecutingContext>(MockBehavior.Strict); mockActionContext.SetupGet(x => x.HttpContext.Request.IsAuthenticated).Returns(true); mockActionContext.SetupGet(x => x.Controller).Returns(controller.Object); var attribute = new RequiresAccountConfirmationAttribute("some string"); // Act attribute.OnActionExecuting(mockActionContext.Object); var result = controller.Object.TempData; // Assert Assert.Null(result["ConfirmationRequiredMessage"]); controller.Verify(x => x.GetCurrentUser()); mockActionContext.Verify(x => x.HttpContext.Request.IsAuthenticated); mockActionContext.Verify(x => x.Controller); }
public void RequiresAccountConfirmationAttributeThrowsExceptionIfContextNull() { var attribute = new RequiresAccountConfirmationAttribute("some string"); // Act/Assert Assert.Throws <ArgumentNullException>(() => attribute.OnActionExecuting(null)); }
public void RequiresAccountConfirmationAttributeThrowsExceptionIfNotAuthenticated() { var mockActionContext = new Mock<ActionExecutingContext>(MockBehavior.Strict); mockActionContext.SetupGet(x => x.HttpContext.Request.IsAuthenticated).Returns(false); // Act var attribute = new RequiresAccountConfirmationAttribute("some string"); // Act/Assert var exception = Assert.Throws<InvalidOperationException>(() => attribute.OnActionExecuting(mockActionContext.Object)); Assert.Equal("Requires account confirmation attribute is only valid on authenticated actions.", exception.Message); }
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 RequiresAccountConfirmationAttributeThrowsExceptionIfNotAuthenticated() { var mockActionContext = new Mock <ActionExecutingContext>(MockBehavior.Strict); mockActionContext.SetupGet(x => x.HttpContext.Request.IsAuthenticated).Returns(false); // Act var attribute = new RequiresAccountConfirmationAttribute("some string"); // Act/Assert var exception = Assert.Throws <InvalidOperationException>(() => attribute.OnActionExecuting(mockActionContext.Object)); Assert.Equal("Requires account confirmation attribute is only valid on authenticated actions.", exception.Message); }
public void RequiresAccountConfirmationAttributePassedWhenUserNotConfirmed() { var controller = new Mock<AppController>(); controller.Setup(x => x.GetCurrentUser()).Returns(new User { EmailAddress = "*****@*****.**" }); var mockActionContext = new Mock<ActionExecutingContext>(MockBehavior.Strict); mockActionContext.SetupGet(x => x.HttpContext.Request.IsAuthenticated).Returns(true); mockActionContext.SetupGet(x => x.Controller).Returns(controller.Object); var attribute = new RequiresAccountConfirmationAttribute("some string"); // Act attribute.OnActionExecuting(mockActionContext.Object); var result = controller.Object.TempData; // Assert Assert.Null(result["ConfirmationRequiredMessage"]); controller.Verify(x => x.GetCurrentUser()); mockActionContext.Verify(x => x.HttpContext.Request.IsAuthenticated); mockActionContext.Verify(x => x.Controller); }
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); }