Пример #1
0
        public void PasswordResetRequest_Success()
        {
            var model = new UserAccount.PasswordResetRequestModel
            {
                EmailAddress = "*****@*****.**",
                UserName     = "******"
            };
            var item = new User
            {
                Username     = model.UserName,
                EmailAddress = model.EmailAddress,
                FirstName    = "Joe",
                LastName     = "Bloggs",
                FullName     = "Joe Bloggs"
            };

            _userRepository.Setup(_ => _.Find(It.IsAny <Expression <Func <User, bool> > >()))
            .Returns(new List <User>
            {
                item
            }.AsQueryable());
            var token = "token";

            _authentication.Setup(_ => _.GeneratePasswordResetToken(model.UserName, It.IsAny <int>()))
            .Returns(token);

            var result = _service.PasswordResetRequest(model);

            Assert.True(result.IsSuccess);
            Assert.Equal(token, result.Data);
            _authentication.Verify(_ => _.GeneratePasswordResetToken(model.UserName, It.IsAny <int>()), Times.Once);
            _mailer.Verify(_ => _.SendEmail(Dictionary.PasswordResetTitle, It.IsAny <string>(), model.EmailAddress, "Joe Bloggs", It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>()), Times.Once);
        }
Пример #2
0
        public void PasswordResetRequest_Fail()
        {
            var passwordResetRequestModel = new UserAccount.PasswordResetRequestModel
            {
                EmailAddress = "*****@*****.**",
                UserName     = "******"
            };

            var result = _service.PasswordResetRequest(passwordResetRequestModel);

            Assert.False(result.IsSuccess);
            Assert.Contains(Dictionary.InvalidUsernameError, result.Errors.Select(_ => _.ErrorMessage));
        }
Пример #3
0
        public ActionResult PasswordResetRequest(UserAccount.PasswordResetRequestModel model)
        {
            if (ModelState.IsValid)
            {
                var result = _accountService.PasswordResetRequest(model);
                if (result.IsSuccess)
                {
                    return(RedirectToAction("PasswordResetEmailSent", "Account", new { userName = model.UserName, result.Data }));
                }

                return(RedirectToAction("ResetPasswordFailed"));
            }

            return(View(model));
        }