public async Task CanAssignTable(HireWaiter hireWaiterCommand, AddTable addTableCommand) { // Arrange await _fixture.SendAsync(addTableCommand); await _fixture.SendAsync(hireWaiterCommand); var assignTableCommand = new AssignTable { WaiterId = hireWaiterCommand.Id, TableNumber = addTableCommand.Number }; // Act var result = await _fixture.SendAsync(assignTableCommand); // Assert var tableInDb = await _fixture.ExecuteDbContextAsync(dbContext => dbContext .Tables .Include(t => t.Waiter) .ThenInclude(w => w.ServedTables) .FirstOrDefaultAsync(t => t.Id == addTableCommand.Id)); tableInDb.ShouldNotBeNull(); tableInDb.WaiterId.ShouldBe(hireWaiterCommand.Id); tableInDb.Waiter.ShouldNotBeNull(); tableInDb.Waiter.ShortName.ShouldBe(hireWaiterCommand.ShortName); tableInDb.Waiter.ServedTables.ShouldContain(t => t.Id == addTableCommand.Id && t.Number == assignTableCommand.TableNumber); }
public Task AssignTableShouldReturnProperHypermediaLinks(HireWaiter hireWaiterCommand, AddTable addTableCommand, Fixture fixture) => _apiHelper.InTheContextOfAManager( manager => async httpClient => { // Arrange await _fixture.SendAsync(hireWaiterCommand); await _fixture.SendAsync(addTableCommand); var assignTableCommand = new AssignTable { WaiterId = hireWaiterCommand.Id, TableNumber = addTableCommand.Number }; // Act var response = await httpClient .PostAsJsonAsync(WaiterRoute("table/assign"), assignTableCommand); // Assert var expectedLinks = new List <string> { LinkNames.Self, LinkNames.Waiter.GetEmployedWaiters, LinkNames.Waiter.Hire }; await response.ShouldBeAResource <AssignTableResource>(expectedLinks); }, fixture);
public async Task SetupWaiterWithTable(HireWaiter hireWaiterCommand, AddTable addTableCommand) { await _fixture.SendAsync(addTableCommand); await _fixture.SendAsync(hireWaiterCommand); var assignTableCommand = new AssignTable { TableNumber = addTableCommand.Number, WaiterId = hireWaiterCommand.Id }; await _fixture.SendAsync(assignTableCommand); }
private async Task HireWaiterWithTable(HireWaiter hireWaiterCommand, AddTable addTableCommand) { await _fixture.SendAsync(addTableCommand); await _fixture.SendAsync(hireWaiterCommand); var assignTableCommand = new AssignTable { WaiterId = hireWaiterCommand.Id, TableNumber = addTableCommand.Number }; await _fixture.SendAsync(assignTableCommand); }
public async Task CannotAssignUnexistingTable(HireWaiter hireWaiterCommand) { // Arrange await _fixture.SendAsync(hireWaiterCommand); var assignTableCommand = new AssignTable { WaiterId = hireWaiterCommand.Id, TableNumber = 1234 // Irrelevant since we haven't added any tables }; // Act var result = await _fixture.SendAsync(assignTableCommand); // Assert result.ShouldHaveErrorOfType(ErrorType.NotFound); }
public async Task CannotAssignUnexistingWaiter(AddTable addTableCommand) { // Arrange await _fixture.SendAsync(addTableCommand); var assignTableCommand = new AssignTable { WaiterId = Guid.NewGuid(), // Irrelevant since we haven't hired any waiters TableNumber = addTableCommand.Number }; // Act var result = await _fixture.SendAsync(assignTableCommand); // Assert result.ShouldHaveErrorOfType(ErrorType.NotFound); }
public void Action(String choice, Client client, Table table = null) { switch (choice) { case "VerifyReservation": //this.mapActions["VerifyReservation"].act(); VerifyReservation verifyReservation = (VerifyReservation)this.mapActions["VerifyReservation"]; verifyReservation.act(client); break; case "AssignTable": AssignTable assignTable = (AssignTable)this.mapActions["AssignTable"]; assignTable.act(client, table); break; default: break; } }
private async Task AssignWaitersToTables(List <Waiter> waiters, List <Table> tables) { if (tables.Count < waiters.Count) { throw new InvalidOperationException("You need at least as much tables as waiters."); } for (int i = 0; i < waiters.Count; i++) { var waiter = waiters[i]; var table = tables[i]; var assignCommand = new AssignTable { WaiterId = waiter.Id, TableNumber = table.Number }; var result = await _mediator.Send(assignCommand); } }
public async Task CannotAssignTheSameWaiterTwice(HireWaiter hireWaiterCommand, AddTable addTableCommand) { // Arrange await _fixture.SendAsync(addTableCommand); await _fixture.SendAsync(hireWaiterCommand); var assignTableCommand = new AssignTable { WaiterId = hireWaiterCommand.Id, TableNumber = addTableCommand.Number }; await _fixture.SendAsync(assignTableCommand); // Act var result = await _fixture.SendAsync(assignTableCommand); // Assert result.ShouldHaveErrorOfType(ErrorType.Conflict); }
public async Task <IActionResult> AssignTable([FromBody] AssignTable command) => (await Mediator.Send(command) .MapAsync(ToEmptyResourceAsync <AssignTableResource>)) .Match(Ok, Error);