public Task AssignCashierToAccountAccountShouldReturnProperHypermediaLinks(HireCashier hireCommand, Register registerCommand) => _apiHelper.InTheContextOfAnAdmin( async httpClient => { // Arrange await _fixture.SendManyAsync(hireCommand, registerCommand); var assignCommand = new AssignCashierToAccount { AccountId = registerCommand.Id, CashierId = hireCommand.Id }; // Act var response = await httpClient .PostAsJsonAsync(AuthRoute("assign/cashier"), assignCommand); // Assert var expectedLinks = new List <string> { LinkNames.Self, LinkNames.Auth.AssignWaiter, LinkNames.Auth.AssignManager, LinkNames.Auth.AssignBarista }; await response.ShouldBeAResource <AssignCashierToAccountResource>(expectedLinks); });
public async Task CannotHireCashierWithATakenId(HireCashier command) { // Arrange await _fixture.SendAsync(command); // Act var result = await _fixture.SendAsync(command); // Assert result.ShouldHaveErrorOfType(ErrorType.Conflict); }
public async Task CanHireCashier(HireCashier command) { // Arrange // Act var result = await _fixture.SendAsync(command); // Assert result.HasValue.ShouldBeTrue(); var cashierInDb = await _fixture.ExecuteDbContextAsync(dbContext => dbContext .Cashiers .FirstOrDefaultAsync(w => w.Id == command.Id)); cashierInDb.Id.ShouldBe(command.Id); cashierInDb.ShortName.ShouldBe(command.ShortName); }
public Task HireCashierShouldReturnProperHypermediaLinks(HireCashier command, Fixture fixture) => _apiHelper.InTheContextOfAManager( manager => async httpClient => { // Act var response = await httpClient .PostAsJsonAsync("cashier", command); // Assert var expectedLinks = new List <string> { LinkNames.Self, LinkNames.Cashier.GetAll }; await response.ShouldBeAResource <HireCashierResource>(expectedLinks); }, fixture);
public async Task <IActionResult> HireCashier([FromBody] HireCashier command) => (await Mediator.Send(command) .MapAsync(ToEmptyResourceAsync <HireCashierResource>)) .Match(Ok, Error);
public async Task AssignedRolesAreCorrectlyReturned(Register userToRegister, HireWaiter waiterToAssign, HireCashier cashierToAssign) { // Arrange await _fixture.SendAsync(userToRegister); await _fixture.SendAsync(waiterToAssign); await _fixture.SendAsync(cashierToAssign); var assignWaiterToAccount = new AssignWaiterToAccount { WaiterId = waiterToAssign.Id, AccountId = userToRegister.Id }; var assignCashierToAccount = new AssignCashierToAccount { AccountId = userToRegister.Id, CashierId = cashierToAssign.Id }; await _fixture.SendAsync(assignWaiterToAccount); await _fixture.SendAsync(assignCashierToAccount); // Act var result = await _fixture.SendAsync(new GetUser { Id = userToRegister.Id }); // Assert result.Exists(u => u.Id == userToRegister.Id && u.WaiterId == waiterToAssign.Id && u.CashierId == cashierToAssign.Id && u.IsWaiter && u.IsCashier && u.BaristaId == null && u.ManagerId == null && !u.IsBarista && !u.IsManager) .ShouldBeTrue(); }