public async Task AccountService_CheckPassword_Fail_NotExists() { var repositoryMock = new EntityRepositoryMock(); var sut = new AccountService(repositoryMock, repositoryMock); var result = await sut.CheckAccountPassword("*****@*****.**", "somethingelse"); Assert.AreEqual(false, result, "CheckPassword confirmed correctness."); }
public async Task AccountService_CreateAccount_GeneratesPassword() { var repositoryMock = new EntityRepositoryMock(); var sut = new AccountService(repositoryMock, repositoryMock); await sut.CreateAccount("*****@*****.**", "testpassword"); var account = repositoryMock.GetEntities <Account>().Single(); var hashedPassword = new HashedPassword(account.PasswordHash, account.PasswordSalt); Assert.IsTrue(hashedPassword.EqualsPlainPassword("testpassword"), "Password not set correctly."); }
public async Task AccountService_CreateAccount_CreatesAccount() { var repositoryMock = new EntityRepositoryMock(); var sut = new AccountService(repositoryMock, repositoryMock); await sut.CreateAccount("*****@*****.**", "testpassword"); var accountEntities = repositoryMock.GetEntities <Account>(); Assert.AreEqual(1, accountEntities.Count, "Unexpected number of accounts."); Assert.AreEqual("*****@*****.**", accountEntities.First().EmailAddress, "Unexpected email address."); }
public async Task AccountService_CreateAccount_ThrowsEmailAlreadyRegisteredException() { var repositoryMock = new EntityRepositoryMock(); var sut = new AccountService(repositoryMock, repositoryMock); repositoryMock.Add(new Account { Id = 1, EmailAddress = "*****@*****.**" }); await sut.CreateAccount("*****@*****.**", "password"); }
public async Task AccountService_CreateAccount_CreatesInitialTransaction() { var repositoryMock = new EntityRepositoryMock(); var sut = new AccountService(repositoryMock, repositoryMock); await sut.CreateAccount("*****@*****.**", "testpassword"); var account = repositoryMock.GetEntities <Account>().Single(); Assert.AreEqual(1, account.ContextFreeTransactions.Count, "Count"); var transaction = account.ContextFreeTransactions.Single(); Assert.AreEqual(account.Id, transaction.AccountId, "AccountId"); Assert.AreEqual(10000, transaction.Amount, "Amount"); }
public async Task AccountService_CheckPassword_Fail() { var repositoryMock = new EntityRepositoryMock(); var sut = new AccountService(repositoryMock, repositoryMock); var hashedPassword = HashedPassword.CreateFromPlainPassword("testpassword"); repositoryMock.Add(new Account { Id = 1, EmailAddress = "*****@*****.**", PasswordHash = hashedPassword.Hash, PasswordSalt = hashedPassword.Salt }); var result = await sut.CheckAccountPassword("*****@*****.**", "somethingelse"); Assert.AreEqual(false, result, "CheckPassword confirmed correctness."); }
public async Task AccountService_ChangePassword_ChangesPassword() { var repositoryMock = new EntityRepositoryMock(); var sut = new AccountService(repositoryMock, repositoryMock); repositoryMock.Add(new Account { Id = 1, EmailAddress = "*****@*****.**" }); await sut.ChangePassword(1, "testpassword"); var account = repositoryMock.GetEntities <Account>().Single(); var hashedPassword = new HashedPassword(account.PasswordHash, account.PasswordSalt); Assert.IsNotNull(account.PasswordHash, "account.PasswordHash"); Assert.IsNotNull(account.PasswordSalt, "account.PasswordSalt"); Assert.IsTrue(hashedPassword.EqualsPlainPassword("testpassword"), "Password not set correctly."); }