public async Task CanAssignBaristaToAccount(Register accountToRegisterCommand, Barista baristaToAssign) { // Arrange await _fixture.ExecuteDbContextAsync(async dbContext => { dbContext.Baristas.Add(baristaToAssign); await dbContext.SaveChangesAsync(); }); await _fixture.SendAsync(accountToRegisterCommand); var commandToTest = new AssignBaristaToAccount { BaristaId = baristaToAssign.Id, AccountId = accountToRegisterCommand.Id }; // Act var result = await _fixture.SendAsync(commandToTest); // Assert await _helper.LoginAndCheckClaim( accountToRegisterCommand.Email, accountToRegisterCommand.Password, c => c.Type == AuthConstants.ClaimTypes.BaristaId && c.Value == baristaToAssign.Id.ToString()); }
public async Task CanConnectAsBarista(Register registerCommand, HireBarista hireBaristaCommand, Guid orderId, MenuItem[] menuItems) { // Arrange await _authTestsHelper.Register(registerCommand); await _fixture.SendAsync(hireBaristaCommand); var assignBaristaToAccountCommand = new AssignBaristaToAccount { AccountId = registerCommand.Id, BaristaId = hireBaristaCommand.Id }; await _fixture.SendAsync(assignBaristaToAccountCommand); var accessToken = (await _authTestsHelper.Login(registerCommand.Email, registerCommand.Password)).TokenString; var testConnection = BuildTestConnection(accessToken); await testConnection.OpenAsync(); // Act await _toGoOrdersHelper.CreateConfirmedOrder(orderId, menuItems); // Assert await testConnection .VerifyMessageReceived <OrderConfirmed>( e => e.Order.Id == orderId && e.Order.OrderedItems.Count == menuItems.Length, Times.Once()); }
public Task AssignBaristaToAccountAccountShouldReturnProperHypermediaLinks(HireBarista hireCommand, Register registerCommand) => _apiHelper.InTheContextOfAnAdmin( async httpClient => { // Arrange await _fixture.SendManyAsync(hireCommand, registerCommand); var assignCommand = new AssignBaristaToAccount { AccountId = registerCommand.Id, BaristaId = hireCommand.Id }; // Act var response = await httpClient .PostAsJsonAsync(AuthRoute("assign/barista"), assignCommand); // Assert var expectedLinks = new List <string> { LinkNames.Self, LinkNames.Auth.AssignWaiter, LinkNames.Auth.AssignCashier, LinkNames.Auth.AssignManager }; await response.ShouldBeAResource <AssignBaristaToAccountResource>(expectedLinks); });
public async Task CannotAssignUnexistingBarista(Register registerAccountCommand) { // Arrange // Purposefully skipping adding any baristas var commandToTest = new AssignBaristaToAccount { BaristaId = Guid.NewGuid(), AccountId = registerAccountCommand.Id }; // Act var result = await _fixture.SendAsync(commandToTest); // Assert result.ShouldHaveErrorOfType(ErrorType.NotFound); }
public async Task CannotAssignUnexistingAccount(Barista baristaToAdd) { // Arrange await _fixture.ExecuteDbContextAsync(async dbContext => { dbContext.Baristas.Add(baristaToAdd); await dbContext.SaveChangesAsync(); }); var commandToTest = new AssignBaristaToAccount { BaristaId = baristaToAdd.Id, AccountId = Guid.NewGuid() }; // Act var result = await _fixture.SendAsync(commandToTest); // Assert result.ShouldHaveErrorOfType(ErrorType.NotFound); }
public async Task CanReassignBaristaForAccount(Register registerAccountCommand, Barista baristaToAssign, Barista baristaToReassign) { // Arrange await _fixture.ExecuteDbContextAsync(async dbContext => { dbContext.Baristas.Add(baristaToAssign); dbContext.Baristas.Add(baristaToReassign); await dbContext.SaveChangesAsync(); }); await _fixture.SendAsync(registerAccountCommand); var assignFirstBaristaCommand = new AssignBaristaToAccount { BaristaId = baristaToAssign.Id, AccountId = registerAccountCommand.Id }; // Note that first we've assigned a barista before attempting a second time await _fixture.SendAsync(assignFirstBaristaCommand); var commandToTest = new AssignBaristaToAccount { AccountId = registerAccountCommand.Id, BaristaId = baristaToReassign.Id }; // Act var result = await _fixture.SendAsync(commandToTest); // Assert await _helper.LoginAndCheckClaim( registerAccountCommand.Email, registerAccountCommand.Password, c => c.Type == AuthConstants.ClaimTypes.BaristaId && c.Value == baristaToReassign.Id.ToString()); }
public async Task <IActionResult> AssignBaristaToAccount([FromBody] AssignBaristaToAccount command) => (await Mediator.Send(command) .MapAsync(ToEmptyResourceAsync <AssignBaristaToAccountResource>)) .Match(Ok, Error);