ChangePassword() 개인적인 메소드

private ChangePassword ( ) : ActionResult
리턴 ActionResult
예제 #1
0
        public void ChangePasswordPostRedirectsOnSuccess()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            RedirectToRouteResult result = (RedirectToRouteResult)controller.ChangePassword("oldPass", "newPass", "newPass");

            // Assert
            Assert.AreEqual("ChangePasswordSuccess", result.RouteValues["action"]);
        }
예제 #2
0
        public void ChangePasswordGetReturnsView()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            ViewResult result = (ViewResult)controller.ChangePassword();

            // Assert
            Assert.AreEqual(6, result.ViewData["PasswordLength"]);
        }
        public void ChangePassword_Get_ReturnsView()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            ActionResult result = controller.ChangePassword();

            // Assert
            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
예제 #4
0
        public void ChangePasswordSuccess()
        {
            // Arrange
            AccountController controller = GetAccountController();
            // Act
            var result = (JsonResult)controller.ChangePassword("oldPass", "newPass", "newPass");
            // Assert
            var returnResult = (ReturnResult)result.Data;

            Assert.AreEqual("修改成功", returnResult.Message);
            Assert.IsTrue(returnResult.Success);
        }
예제 #5
0
        public void ChangePassword_Get_ReturnsView()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            ActionResult result = controller.ChangePassword();

            // Assert
            Assert.IsInstanceOfType(result, typeof(ViewResult));
            Assert.AreEqual(10, ((ViewResult)result).ViewData["PasswordLength"]);
        }
예제 #6
0
        public void ChangePassword_Get_ReturnsView()
        {
            // Упорядочение
            AccountController controller = GetAccountController();

            // Действие
            ActionResult result = controller.ChangePassword();

            // Утверждение
            Assert.IsInstanceOfType(result, typeof(ViewResult));
            Assert.AreEqual(10, ((ViewResult)result).ViewData["PasswordLength"]);
        }
예제 #7
0
        public void ChangePasswordPostReturnsViewIfNewPasswordDoesNotMatchConfirmPassword()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            ViewResult result = (ViewResult)controller.ChangePassword("currentPassword", "newPassword", "otherPassword");

            // Assert
            Assert.AreEqual(6, result.ViewData["PasswordLength"]);
            Assert.AreEqual("The new password and confirmation password do not match.", result.ViewData.ModelState["_FORM"].Errors[0].ErrorMessage);
        }
예제 #8
0
        public void ChangePasswordPostReturnsViewIfCurrentPasswordNotSpecified()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            ViewResult result = (ViewResult)controller.ChangePassword("", "newPassword", "newPassword");

            // Assert
            Assert.AreEqual(6, result.ViewData["PasswordLength"]);
            Assert.AreEqual("You must specify a current password.", result.ViewData.ModelState["currentPassword"].Errors[0].ErrorMessage);
        }
        public void Change_Password_Post_Returns_View_If_New_Password_Is_Null()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            ViewResult result = (ViewResult)controller.ChangePassword("currentPassword", null, null);

            // Assert
            Assert.AreEqual(6, result.ViewData["PasswordLength"]);
            Assert.AreEqual("You must specify a new password of 6 or more characters.", result.ViewData.ModelState["newPassword"].Errors[0].ErrorMessage);
        }
예제 #10
0
        public void ChangePasswordPostReturnsViewIfNewPasswordIsTooShort()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            ViewResult result = (ViewResult)controller.ChangePassword("currentPassword", "12345", "12345");

            // Assert
            Assert.AreEqual(6, result.ViewData["PasswordLength"]);
            Assert.AreEqual("Você deve digitar uma senha de 6 ou mais caracteres.", result.ViewData.ModelState["newPassword"].Errors[0].ErrorMessage);
        }
예제 #11
0
        public void ChangePassword()
        {
            // Arrange
            var securityAdapter = new Mock <ISecurityAdapter>();
            var controller      = new AccountController(securityAdapter.Object);

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

            // Assert
            Assert.IsType <ViewResult>(result);
        }
예제 #12
0
        public void ChangePasswordPostReturnsViewIfNewPasswordIsTooShort()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            ViewResult result = (ViewResult)controller.ChangePassword("currentPassword", "12345", "12345");

            // Assert
            Assert.AreEqual(6, result.ViewData["PasswordLength"]);
            Assert.AreEqual("You must specify a new password of 6 or more characters.", result.ViewData.ModelState["newPassword"].Errors[0].ErrorMessage);
        }
예제 #13
0
        public void ChangePasswordPostReturnsViewIfProviderRejectsPassword()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            ViewResult result = (ViewResult)controller.ChangePassword("oldPass", "badPass", "badPass");

            // Assert
            Assert.AreEqual(6, result.ViewData["PasswordLength"]);
            Assert.AreEqual("The current password is incorrect or the new password is invalid.", result.ViewData.ModelState["_FORM"].Errors[0].ErrorMessage);
        }
예제 #14
0
        public void ChangePasswordGetReturnsView()
        {
            // Arrange
            Mock <CosmoMongerMembershipProvider> mockMembership = new Mock <CosmoMongerMembershipProvider>();
            AccountController controller = new AccountController(mockMembership.Object);

            // Act
            ViewResult result = (ViewResult)controller.ChangePassword();

            // Assert
            Assert.That(result.ViewData.ModelState.IsValid, "No errors should be returned");
        }
예제 #15
0
        public void T01_ChangePassword()
        {
            var authController = new AuthController(ObjectFactory.GetInstance <IUserService>(),
                                                    ObjectFactory.GetInstance <ILoginManager>(), ObjectFactory.GetInstance <IEmailService>());

            InitControllerContext(authController, _user);
            authController.Login(new AuthLogInModel {
                Email = _user.Email, Password = "******"
            });

            var result = _controller.ChangePassword() as ViewResult;

            Assert.IsNotNull(result);

            var model = new AccountChangePasswordModel
            {
                CurrentPassword    = "",
                NewPassword        = "******",
                ConfirmNewPassword = "******"
            };

            // Check validation
            Validate(model);
            Assert.AreNotEqual(0, Validate(model).Count, "Change password model validation failed");

            // Wrong current password
            model.CurrentPassword = "******";
            var wrongResult = _controller.ChangePassword(model) as ViewResult;

            Assert.IsNotNull(wrongResult);
            Assert.IsFalse(wrongResult.ViewData.ModelState.IsValid);

            //Correct password
            model.CurrentPassword = "******";
            _controller.ModelState.Clear();

            var postResult = _controller.ChangePassword(model);

            Assert.IsNotNull(postResult);
        }
예제 #16
0
        public void ChangePasswordPostReturnsViewIfCurrentPasswordNotSpecified()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            var JsonResult = (JsonResult)controller.ChangePassword("", "newPassword", "newPassword");
            var result     = JsonResult.Data as ReturnResult;

            // Assert
            Assert.AreEqual("请填写密码", result.Message);
            Assert.IsFalse(result.Success);
        }
        public void TestChangePasswordReturnBadRequest()
        {
            var contextMock = new Mock <HttpContext>();

            contextMock.Setup(x => x.User).Returns(new ClaimsPrincipal(claims));
            mockAccountService.Setup(x => x.ChangePassword(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(false);
            var _accountController = new AccountController(mockAccountService.Object, _tokenManager.Object);

            _accountController.ControllerContext.HttpContext = contextMock.Object;
            var changePasswordResult = _accountController.ChangePassword(changePasswordModel);
            var type = changePasswordResult.GetType();

            Assert.AreEqual(type.Name, "BadRequestObjectResult");
        }
예제 #18
0
        public void ChangePasswordPostReturnsViewIfNewPasswordIsTooShort()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            var jsonResult = (JsonResult)controller.ChangePassword("currentPassword", "12345", "12345");
            var result     = jsonResult.Data as ReturnResult;

            // Assert
            Assert.AreEqual("请填写一个长度是6或以上的新密码。",
                            result.Message);
            Assert.IsFalse(result.Success);
        }
예제 #19
0
        public void ChangePasswordPostReturnsViewIfProviderRejectsPassword()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            var jsonResult = (JsonResult)controller.ChangePassword("oldPass", "badPass", "badPass");
            var result     = jsonResult.Data as ReturnResult;


            // Assert
            Assert.AreEqual("旧密码不正确或新密码不符合规范.",
                            result.Message);
            Assert.IsFalse(result.Success);
        }
예제 #20
0
        public void ChangePasswordPostReturnsViewIfNewPasswordDoesNotMatchConfirmPassword()
        {
            // Arrange
            AccountController controller = GetAccountController();

            // Act
            var jsonResult = (JsonResult)controller.ChangePassword("currentPassword", "newPassword", "otherPassword");
            var result     = jsonResult.Data as ReturnResult;

            // Assert

            Assert.AreEqual("新密码与确认密码不相同.",
                            result.Message);
            Assert.IsFalse(result.Success);
        }
예제 #21
0
        public async Task Change_Password_Invalid_Old()
        {
            UserManagerMock.Setup(m => m.GetUserAsync(It.IsAny <ClaimsPrincipal>())).ReturnsAsync(new IdentityUser());
            UserManagerMock.Setup(m => m.CheckPasswordAsync(It.IsAny <IdentityUser>(), It.IsAny <string>()))
            .ReturnsAsync(false);

            var target = new AccountController(UserManagerMock.Object,
                                               SignInManagerMock.Object, PasswordValidatorMock.Object);

            var result = await target.ChangePassword(new PasswordChangeViewModel()) as ViewResult;

            Assert.NotNull(result);
            Assert.False(target.ModelState.IsValid);
            Assert.True(target.ModelState[""].Errors[0].ErrorMessage == "Неправильный старый пароль");
        }
        public void ChangePassword_LoggedOutUserReturnsCorrectView_ReturnsLoginView()
        {
            using (var controller = new AccountController(new UserManagerFake(),
                                                          new NationalityManagerFake(),
                                                          new GenderManagerFake(),
                                                          new SessionHelperFake()))
            {
                var result                 = controller.ChangePassword() as RedirectToRouteResult;
                var expectedActionName     = "Login";
                var expectedControllerName = "Login";

                Assert.AreEqual(expectedActionName, result.RouteValues["Action"]);
                Assert.AreEqual(expectedControllerName, result.RouteValues["Controller"]);
            }
        }
        public void ChangePasswordPost_InvalidPasswordReturnsCorrectMessage_ExpectedMessageEqualsActual()
        {
            var session = new SessionHelperFake();
            var user    = new User
            {
                ID               = 1,
                UserName         = "******",
                Email            = "*****@*****.**",
                Bio              = "Hello I am the Sixth test user",
                ProfileImagePath = "../Images/TestUserSix/Profile.png",
                DateJoined       = new DateTime(2017, 1, 14),
                DOB              = new DateTime(1955, 5, 7),
                GenderId         = 1,
                UserType         = new UserType {
                    ID = 2, Description = "FeaturedUser"
                },
                Nationality = new Nationality {
                    ID = 1, Description = "US and A"
                },
                NationalityID = 1,
                UserTypeID    = 2,
            };

            session.Add("CurrentUser", user);

            var viewModel = new ChangePasswordViewModel
            {
                UserName        = "******",
                NewPassword     = "******",
                ConfirmPassword = "******",
                CurrentPassword = "******"
            };

            var userManager = new UserManagerFake {
                ValidPassword = "******"
            };

            using (var controller = new AccountController(userManager,
                                                          new NationalityManagerFake(),
                                                          new GenderManagerFake(),
                                                          session))
            {
                var result       = controller.ChangePassword(viewModel) as ViewResult;
                var expectedView = "Invalid Password";

                Assert.AreEqual(expectedView, result.ViewBag.Message);
            }
        }
예제 #24
0
        public void ChangePasswordShouldChangeThePassword()
        {
            //ARRANGE
            var model = new ChangePassword
            {
                OldPassword        = "******",
                NewPassword        = "******",
                ConfirmNewPassword = "******"
            };

            var user = new User
            {
                Id       = "8285cc79-4561-499c-87cc-2e5997d62c20",
                UserName = "******"
            };

            var controllerContext = new Mock <ControllerContext>();

            controllerContext
            .Setup(d => d.HttpContext.User.Identity.Name)
            .Returns("JBurton")
            .Verifiable("Should check for user");

            var userLogic = new Mock <IUserLogic>();

            userLogic
            .Setup(x => x.FindByName("JBurton"))
            .Returns(user);

            userLogic
            .Setup(x => x.ChangePassword(user.Id, model.OldPassword, model.NewPassword))
            .Returns(true)
            .Verifiable("should change password");

            var controller = new AccountController(userLogic.Object, null, null)
            {
                ControllerContext = controllerContext.Object
            };

            var result = controller.ChangePassword(model) as RedirectToRouteResult;

            //ASSERT
            userLogic.Verify();

            Assert.NotNull(result);
            Assert.AreEqual("Index", result.RouteValues["Action"]);
            Assert.AreEqual("Home", result.RouteValues["Controller"]);
        }
        public void ChangePassword()
        {
            // Arrange
            var securityAdapter = new Mock <ISecurityAdapter>();

            var accountController = new AccountController(securityAdapter.Object);

            // Act
            ActionResult result = accountController.ChangePassword();

            Assert.IsTrue(result is ViewResult);

            ViewResult viewResult = result as ViewResult;

            Assert.IsTrue(viewResult.Model is null);
        }
예제 #26
0
        public async Task TestChangePassword2()
        {
            var account = new Account
            {
                OldPassword        = "******",
                NewPassword        = "******",
                ConfirmNewPassword = "******"
            };

            var user = new RegisterUserViewModel
            {
                Account = account
            };
            var controller = new AccountController();
            var result     = await controller.ChangePassword(user);

            Assert.IsInstanceOf(typeof(RedirectToRouteResult), result);
        }
예제 #27
0
        public async Task Change_Password_Invalid_Coincidence()
        {
            UserManagerMock.Setup(m => m.GetUserAsync(It.IsAny <ClaimsPrincipal>())).ReturnsAsync(new IdentityUser());
            UserManagerMock.Setup(m => m.CheckPasswordAsync(It.IsAny <IdentityUser>(), It.IsAny <string>()))
            .ReturnsAsync(true);

            var target = new AccountController(UserManagerMock.Object,
                                               SignInManagerMock.Object, PasswordValidatorMock.Object);

            var result = await target.ChangePassword(new PasswordChangeViewModel()
            {
                NewPassword = "******",
                OldPassword = "******"
            }) as ViewResult;

            Assert.NotNull(result);
            Assert.False(target.ModelState.IsValid);
            Assert.True(target.ModelState[""].Errors[0].ErrorMessage == "Пароли не совпадают");
        }
        public void ChangePassword_Post_ReturnsRedirectOnSuccess()
        {
            // Arrange
            AccountController controller = GetAccountController();
            ChangePasswordModel model = new ChangePasswordModel()
            {
                OldPassword = "******",
                NewPassword = "******",
                ConfirmPassword = "******"
            };

            // Act
            ActionResult result = controller.ChangePassword(model);

            // Assert
            Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult));
            RedirectToRouteResult redirectResult = (RedirectToRouteResult)result;
            Assert.AreEqual("ChangePasswordSuccess", redirectResult.RouteValues["action"]);
        }
        public void ChangePassword_NullValue_Test()
        {
            var accountServiceMock = new Mock <IAccountService>();

            var user = new UserToChangePassword();

            accountServiceMock.Setup(x => x.ChangePassword(user))
            .Throws <ArgumentNullException>();
            var controller = new AccountController(accountServiceMock.Object);

            var actualResult = controller.ChangePassword(user);

            var badRequestResult = (BadRequestObjectResult)actualResult;
            var asJson           = JsonConvert.SerializeObject(badRequestResult.Value);
            var deserialized     = JsonConvert.DeserializeObject <Dictionary <string, object> >(asJson);

            Assert.IsTrue((bool)deserialized["Success"] == false);

            accountServiceMock.VerifyAll();
        }
예제 #30
0
        public async Task AccountController_ChangePassword_Fail_WrongPassword()
        {
            var email          = "*****@*****.**";
            var password       = "******";
            var accountService = new AccountServiceMock()
            {
                CheckAccountPasswordResult = false
            };
            var authenticatorProvider = new AuthenticatorProviderMock()
            {
                Email = email
            };
            var sut = new AccountController(accountService, authenticatorProvider);

            var result = await sut.ChangePassword("oldPassword", password);

            Assert.IsFalse(result, "result");
            Assert.IsNull(accountService.ChangedAccountId, "accountService.ChangedEmail");
            Assert.IsNull(accountService.ChangedPassword, "accountService.ChangedPassword");
        }