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 void WhenCorrectlyInitializedWillStoreInputValues() { var command = new StubICommand(); var simpleMenuItem = new SimpleMenuItem("Test", 1, command); Assert.AreEqual("Test", simpleMenuItem.Name); Assert.AreEqual(1, simpleMenuItem.Priority); Assert.AreEqual(command, simpleMenuItem.Command); }
public async Task InvalidSiteReturns400() { // Arrange var verifyCommand = new StubICommand<VerifyCustomerParameters, Task<bool>> { ExecuteT0 = (p) => { throw new InvalidSiteException(); } }; var controller = new CustomerController(verifyCommand); // Act IHttpActionResult result = await controller.VerifyCredentialsAsync("256", "*****@*****.**", "whatever"); // Assert Assert.IsInstanceOfType(result, typeof(BadRequestErrorMessageResult)); }
public async Task InCorrectCredentialsReturns404() { // Arrange var verifyCommand = new StubICommand<VerifyCustomerParameters, Task<bool>> { ExecuteT0 = (p) => Task.Run(() => false) }; var controller = new CustomerController(verifyCommand); // Act IHttpActionResult result = await controller.VerifyCredentialsAsync("256", "*****@*****.**", "whatever"); // Assert Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
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); }