public void UpatesUserPassword() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "Test", HashedPassword = "******".ToSha256() }; repository.Add(user); var service = new ChatService(repository); service.ChangeUserPassword(user, "password", "password2"); Assert.Equal("password2".ToSha256(), user.HashedPassword); }
public void ThrowsUserPasswordDoesNotMatchOldPassword() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "Test", HashedPassword = "******".ToSha256() }; repository.Add(user); var service = new ChatService(repository); Assert.Throws<InvalidOperationException>(() => service.ChangeUserPassword(user, "passwor", "foo")); }
public void ThrowsIfNewPasswordIsNull() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "Test", HashedPassword = "******".ToSha256() }; repository.Add(user); var service = new ChatService(repository); Assert.Throws<InvalidOperationException>(() => service.ChangeUserPassword(user, "password", null)); }
public void UpatesUserPassword() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "Test", Salt = "pepper", HashedPassword = "******".ToSha256("pepper") }; repository.Add(user); var service = new ChatService(repository, new Mock<ICryptoService>().Object); service.ChangeUserPassword(user, "password", "password2"); Assert.Equal("password2".ToSha256("pepper"), user.HashedPassword); }
public void EnsuresSaltedPassword() { var crypto = new Mock<ICryptoService>(); crypto.Setup(c => c.CreateSalt()).Returns("salt"); var repository = new InMemoryRepository(); var user = new ChatUser { Name = "Test", Salt = null, HashedPassword = "******".ToSha256(null) }; repository.Add(user); var service = new ChatService(repository, crypto.Object); service.ChangeUserPassword(user, "password", "password"); Assert.Equal("salt", user.Salt); Assert.Equal("password".ToSha256("salt"), user.HashedPassword); }
public void ThrowsUserPasswordDoesNotMatchOldPassword() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "Test", Salt = "salt", HashedPassword = "******".ToSha256("salt") }; repository.Add(user); var service = new ChatService(new Mock<ICache>().Object, repository, new Mock<ICryptoService>().Object); Assert.Throws<InvalidOperationException>(() => service.ChangeUserPassword(user, "passwor", "foo")); }