public void ShouldBeAbleToUpdateUserIfPassWordsMatch()
        {
            var mock           = new Mock <IUserRepository>();
            var id             = 1;
            var password       = "******";
            var hashedPassword = PasswordHasher.SetPassword(password);

            var valdationModel = new PutValidateUser
            {
                NewPassWord = "******",
                OldPassWord = "******"
            };

            var newUserModel = new UserModel
            {
                Id           = id,
                PassWord     = hashedPassword,
                UserName     = "******",
                Active       = true,
                Created      = new DateTime(),
                EmailAddress = "*****@*****.**",
                Updated      = new DateTime()
            };

            mock.Setup(e => e.GetSingleUser(id)).Returns(newUserModel);

            var service = new ValidationLogic(mock.Object);

            service.UpdateUserPasswordInDatabase(id, valdationModel);
            mock.Verify(x => x.Update(It.IsAny <UserModel>()), Times.Exactly(1));
        }
        public void UpdatePassWordThrowsArgumentExceptionWhenPasswordDoNotMatch()
        {
            var mock           = new Mock <IUserRepository>();
            var id             = 1;
            var password       = "******";
            var hashedPassword = PasswordHasher.SetPassword(password);

            var valdationModel = new PutValidateUser
            {
                NewPassWord = "******",
                OldPassWord = "******"
            };

            mock.Setup(e => e.GetSingleUser(id)).Returns(
                new UserModel
            {
                Id           = id,
                PassWord     = hashedPassword,
                UserName     = "******",
                Active       = true,
                Created      = new DateTime(),
                EmailAddress = "*****@*****.**",
                Updated      = new DateTime()
            });

            var service = new ValidationLogic(mock.Object);

            Assert.Throws <ArgumentException>(() => service.UpdateUserPasswordInDatabase(id, valdationModel));
        }
Exemple #3
0
        public void UpdateUserPasswordInDatabase(int id, PutValidateUser validate)
        {
            var sqlResult     = _userRepository.GetSingleUser(id);
            var validPassword = PasswordHasher.DoesPasswordMatch(validate.OldPassWord, sqlResult.PassWord);

            if (!validPassword)
            {
                throw new ArgumentException("Password provided is not valid so won't take action");
            }

            var newlyHashedPassword = PasswordHasher.SetPassword(validate.NewPassWord);

            sqlResult.PassWord = newlyHashedPassword;

            _userRepository.Update(sqlResult);
        }
 public IActionResult Put([FromQuery] int id, [FromBody] PutValidateUser validate)
 {
     _validationLogic.UpdateUserPasswordInDatabase(id, validate);
     return(Ok());
 }