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)); }
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()); }