Inheritance: PasswordResetViewModel
            public void RedirectsToPasswordChangedIfUserServiceSucceeds()
            {
                // Arrange
                var controller = GetController <UsersController>();

                controller.SetUser("user");
                GetMock <IUserService>()
                .Setup(u => u.ChangePassword("user", "old", "new"))
                .Returns(true);
                var inputModel = new PasswordChangeViewModel()
                {
                    OldPassword     = "******",
                    NewPassword     = "******",
                    ConfirmPassword = "******"
                };

                // Act
                var result = controller.ChangePassword(inputModel);

                // Assert
                ResultAssert.IsRedirectToRoute(result, new
                {
                    controller = "Users",
                    action     = "PasswordChanged"
                });
            }
Esempio n. 2
0
        public virtual ActionResult ChangePassword(PasswordChangeViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (!userService.ChangePassword(currentUser.Identity.Name, model.OldPassword, model.NewPassword))
                {
                    ModelState.AddModelError("OldPassword", Strings.CurrentPasswordIncorrect);
                }
            }

            if (!ModelState.IsValid)
            {
                return(View("~/Views/Users/ChangePassword.cshtml", model));
            }

            var errors = userService.CheckForStrongPassword(model.NewPassword);

            if (errors.Any())
            {
                foreach (var error in errors)
                {
                    ModelState.AddModelError(string.Empty, error);
                }

                return(View("~/Views/Users/ChangePassword.cshtml", model));
            }

            return(RedirectToAction(MVC.Users.PasswordChanged()));
        }
            public void AddsModelErrorIfUserServiceFails()
            {
                // Arrange
                var controller = GetController <UsersController>();

                controller.SetUser("user");
                GetMock <IUserService>()
                .Setup(u => u.ChangePassword("user", "old", "new"))
                .Returns(false);

                var inputModel = new PasswordChangeViewModel()
                {
                    OldPassword     = "******",
                    NewPassword     = "******",
                    ConfirmPassword = "******"
                };

                // Act
                var result = controller.ChangePassword(inputModel);

                // Assert
                var outputModel = ResultAssert.IsView <PasswordChangeViewModel>(result);

                Assert.Same(inputModel, outputModel);

                var errorMessages = controller
                                    .ModelState["OldPassword"]
                                    .Errors
                                    .Select(e => e.ErrorMessage)
                                    .ToArray();

                Assert.Equal(errorMessages, new[] { Strings.CurrentPasswordIncorrect });
            }
            public void ReturnsViewIfModelStateInvalid()
            {
                // Arrange
                var controller = GetController <UsersController>();

                controller.ModelState.AddModelError("test", "test");
                var inputModel = new PasswordChangeViewModel();

                // Act
                var result = controller.ChangePassword(inputModel);

                // Assert
                var outputModel = ResultAssert.IsView <PasswordChangeViewModel>(result);

                Assert.Same(inputModel, outputModel);
            }
        public virtual ActionResult ChangePassword(PasswordChangeViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (!userService.ChangePassword(currentUser.Identity.Name, model.OldPassword, model.NewPassword))
                {
                    ModelState.AddModelError("OldPassword", Strings.CurrentPasswordIncorrect);
                }
            }

            if (!ModelState.IsValid)
            {
                return(View("~/Views/Users/ChangePassword.cshtml", model));
            }

            return(RedirectToAction(MVC.Users.PasswordChanged()));
        }
        public virtual ActionResult ChangePassword(PasswordChangeViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (!_userService.ChangePassword(_currentUser.Identity.Name, model.OldPassword, model.NewPassword))
                {
                    ModelState.AddModelError(
                        "OldPassword",
                        Strings.CurrentPasswordIncorrect);
                }
            }

            if (!ModelState.IsValid)
            {
                return View(model);
            }

            return RedirectToAction(MVC.Users.PasswordChanged());
        }
        public virtual ActionResult ChangePassword(PasswordChangeViewModel model)
        {
            if (ModelState.IsValid) if (!userService.ChangePassword(currentUser.Identity.Name, model.OldPassword, model.NewPassword)) ModelState.AddModelError("OldPassword", Strings.CurrentPasswordIncorrect);

            if (!ModelState.IsValid) return View("~/Views/Users/ChangePassword.cshtml", model);

            return RedirectToAction(MVC.Users.PasswordChanged());
        }
Esempio n. 8
0
            public void RedirectsToPasswordChangedIfUserServiceSucceeds()
            {
                // Arrange
                GetMock<AuthenticationService>()
                    .Setup(u => u.ChangePassword("user", "old", "new"))
                    .Returns(true);
                var controller = GetController<UsersController>();
                controller.SetCurrentUser("user");
                var inputModel = new PasswordChangeViewModel()
                {
                    OldPassword = "******",
                    NewPassword = "******",
                    ConfirmPassword = "******"
                };

                // Act
                var result = controller.ChangePassword(inputModel);

                // Assert
                ResultAssert.IsRedirectToRoute(result, new
                {
                    controller = "Users",
                    action = "PasswordChanged"
                });
            }
Esempio n. 9
0
            public void AddsModelErrorIfAuthServiceFails()
            {
                // Arrange
                GetMock<AuthenticationService>()
                    .Setup(u => u.ChangePassword("user", "old", "new"))
                    .Returns(false);

                var controller = GetController<UsersController>();
                controller.SetCurrentUser("user");

                var inputModel = new PasswordChangeViewModel()
                {
                    OldPassword = "******",
                    NewPassword = "******",
                    ConfirmPassword = "******"
                };

                // Act
                var result = controller.ChangePassword(inputModel);

                // Assert
                var outputModel = ResultAssert.IsView<PasswordChangeViewModel>(result);
                Assert.Same(inputModel, outputModel);

                var errorMessages = controller
                    .ModelState["OldPassword"]
                    .Errors
                    .Select(e => e.ErrorMessage)
                    .ToArray();
                Assert.Equal(errorMessages, new[] { Strings.CurrentPasswordIncorrect });
            }
Esempio n. 10
0
            public void ReturnsViewIfModelStateInvalid()
            {
                // Arrange
                var controller = GetController<UsersController>();
                controller.ModelState.AddModelError("test", "test");
                var inputModel = new PasswordChangeViewModel();

                // Act
                var result = controller.ChangePassword(inputModel);

                // Assert
                var outputModel = ResultAssert.IsView<PasswordChangeViewModel>(result);
                Assert.Same(inputModel, outputModel);
            }