public async Task ResetPassword_ShouldReturnBadRequest_WhenResetPasswordAsyncFails()
        {
            mapper.Execute();
            string testEmail    = "testEmail";
            string testId       = "testId";
            string testCode     = "testCode";
            string testPassword = "******";

            string[] errors = new string[] { "testError1", "testError2" };

            var userStore       = new Mock <IUserStore <User> >();
            var userManagerMock = new Mock <ApplicationUserManager>(userStore.Object);

            userManagerMock.Setup(x => x.FindByNameAsync(testEmail))
            .ReturnsAsync(() => new User()
            {
                Email = testEmail, EmailConfirmed = false, Id = testId
            });
            userManagerMock.Setup(x => x.ResetPasswordAsync(testId, testCode, testPassword))
            .ReturnsAsync(() => new IdentityResult(errors));

            AccountResetPasswordRequestModel request = new AccountResetPasswordRequestModel()
            {
                Email    = testEmail,
                Code     = testCode,
                Password = testPassword
            };
            var controller = new AccountController(null, null, null, userManagerMock.Object, null, null);

            var result = await controller.ResetPassword(request);

            Assert.IsInstanceOfType(result, typeof(BadRequestResult));

            userManagerMock.VerifyAll();
        }
        public async Task ResetPassword_ShouldReturnBadRequest_WhenUserIsNull()
        {
            mapper.Execute();
            string testEmail = "testEmail";

            var userStore       = new Mock <IUserStore <User> >();
            var userManagerMock = new Mock <ApplicationUserManager>(userStore.Object);

            userManagerMock.Setup(x => x.FindByNameAsync(testEmail))
            .ReturnsAsync(() => null);

            AccountResetPasswordRequestModel request = new AccountResetPasswordRequestModel()
            {
                Email = testEmail
            };
            var controller = new AccountController(null, null, null, userManagerMock.Object, null, null);

            var result = await controller.ResetPassword(request);

            Assert.IsInstanceOfType(result, typeof(BadRequestErrorMessageResult));
            string responseMessage = ((BadRequestErrorMessageResult)result).Message;

            Assert.IsTrue(responseMessage.Contains(GlobalConstants.NoSuchAUserErroMessage));

            userManagerMock.VerifyAll();
        }
Example #3
0
        public async Task <IHttpActionResult> ResetPassword(AccountResetPasswordRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await UserManager.FindByNameAsync(model.Email);

            if (user == null)
            {
                return(BadRequest(GlobalConstants.NoSuchAUserErroMessage));
            }

            string decodedCode = HttpUtility.UrlDecode(model.Code);
            var    result      = await UserManager.ResetPasswordAsync(user.Id, decodedCode, model.Password);

            if (result.Succeeded)
            {
                return(Ok());
            }

            return(BadRequest());
        }