public async Task GlobalPlatformCannotVerifyCustomersThatHaveNoGlobalId() { // Arrange var hashCommand = new StubICommand<HashEmailAddressParameters, string> { ExecuteT0 = p => string.Empty }; var getCommand = new StubICommand<GetCustomerFromDatabaseParameters, Task<customer>> { ExecuteT0 = p => Task.Run(() => new customer { global_id = null }) }; var updateCommand = new StubICommand<UpdateFirstLoginDateParameters, Task<DateTime>>(); var verifyPasswordCommand = new StubICommand<VerifyPasswordParameters, Task<bool>> { ExecuteT0 = p => Task.Run(() => true) }; var command = new VerifyCustomer(getCommand, hashCommand, updateCommand, verifyPasswordCommand); // Act var result = await command.ExecuteAsync(new VerifyCustomerParameters("256", "*****@*****.**", "whatever")); // Assert Assert.IsFalse(result); }
public async Task VerifyCustomerReturnsFalseWhenCustomerIsNotFound() { // Arrange var hashCommand = new StubICommand<HashEmailAddressParameters, string> { ExecuteT0 = p => string.Empty }; var getCommand = new StubICommand<GetCustomerFromDatabaseParameters, Task<customer>> { ExecuteT0 = p => Task.Run(() => null as customer) }; var updateCommand = new StubICommand<UpdateFirstLoginDateParameters, Task<DateTime>>(); var verifyPasswordCommand = new StubICommand<VerifyPasswordParameters, Task<bool>>(); var command = new VerifyCustomer(getCommand, hashCommand, updateCommand, verifyPasswordCommand); // Act var result = await command.ExecuteAsync(new VerifyCustomerParameters("256", "*****@*****.**", "whatever")); // Assert Assert.IsFalse(result); }
public async Task FirstLoggedInDateIsNotUpdatedWhenCustomerCredentialsAreIncorrect() { // Arrange bool updatedCalled = false; var hashCommand = new StubICommand<HashEmailAddressParameters, string> { ExecuteT0 = p => string.Empty }; var getCommand = new StubICommand<GetCustomerFromDatabaseParameters, Task<customer>> { ExecuteT0 = p => Task.Run(() => new customer { first_login_date = null, global_id = "i-am-a-global-id", password_hash = new byte[0] }) }; var updateCommand = new StubICommand<UpdateFirstLoginDateParameters, Task<DateTime>> { ExecuteT0 = p => Task.Run(() => { updatedCalled = true; return DateTime.UtcNow; }) }; var verifyPasswordCommand = new StubICommand<VerifyPasswordParameters, Task<bool>> { ExecuteT0 = p => Task.Run(() => false) }; var command = new VerifyCustomer(getCommand, hashCommand, updateCommand, verifyPasswordCommand); // Act var result = await command.ExecuteAsync(new VerifyCustomerParameters("256", "*****@*****.**", "whatever")); // Assert Assert.IsFalse(result, "Customer was verified but should not have been."); Assert.IsFalse(updatedCalled, "First logged in date update command was called when it should not have been."); }
public async Task WuakiPlatformCanVerifyWuakiCustomers() { // Arrange var hashCommand = new StubICommand<HashEmailAddressParameters, string> { ExecuteT0 = p => string.Empty }; var getCommand = new StubICommand<GetCustomerFromDatabaseParameters, Task<customer>> { ExecuteT0 = p => Task.Run(() => new customer { website_id = 16384, password_hash = new byte[0] }) }; var updateCommand = new StubICommand<UpdateFirstLoginDateParameters, Task<DateTime>> { ExecuteT0 = p => Task.Run(() => DateTime.UtcNow) }; var verifyPasswordCommand = new StubICommand<VerifyPasswordParameters, Task<bool>> { ExecuteT0 = p => Task.Run(() => true) }; var command = new VerifyCustomer(getCommand, hashCommand, updateCommand, verifyPasswordCommand); // Act var result = await command.ExecuteAsync(new VerifyCustomerParameters("16384", "*****@*****.**", "whatever")); // Assert Assert.IsTrue(result); }