public void ResetPassword_WhenCodeIsNull_ShouldReturnErrorView()
 {
     string code = null;
     ResetPasswordViewModel viewModel = new ResetPasswordViewModel();
     ViewResult result = _subject.ResetPassword(code) as ViewResult;
     Assert.AreEqual("Error", result.ViewName);
 }
 public void ResetPassword_WhenCodeIsNotNull_ShouldReturnResetPasswordView()
 {
     string code = "tHis_IS_aN_awFully_tR1cky_C0dE";
     ResetPasswordViewModel viewModel = new ResetPasswordViewModel();
     ViewResult result = _subject.ResetPassword(code) as ViewResult;
     Assert.AreEqual("ResetPassword", result.ViewName);
 }
        public void ResetPassword_WhenValidInput_ShouldRedirectToResetPasswordConfirmationView()
        {
            string code = "A1B2C3";
            string newPassword = "******";
            string email = "*****@*****.**";
            ApplicationUser user = new ApplicationUser
            {
               Email = email,
               Id = Guid.NewGuid().ToString()
            };
            ResetPasswordViewModel viewModel = new ResetPasswordViewModel
            {
                Code = code,
                Email = email,
                Password = newPassword,
                Password2 = newPassword
            };
            _userManagerMock.Setup(x => x.FindByNameAsync(email)).Returns(Task.FromResult<ApplicationUser>(user));
            _userManagerMock.Setup(x => x.ResetPasswordAsync(user.Id, code, It.IsAny<string>())).Returns(Task.FromResult<IdentityResult>(IdentityResult.Success));

            RedirectToRouteResult result = _subject.ResetPassword(viewModel).Result as RedirectToRouteResult;
            Assert.AreEqual("ResetPasswordConfirmation", result.RouteValues["action"]);
        }