public Task GetAllUserAccountShouldReturnProperHypermediaLinks(Register[] registerCommands) => _apiHelper.InTheContextOfAnAdmin( async httpClient => { // Arrange await _fixture.SendManyAsync(registerCommands); // Act var response = await httpClient.GetAsync(AuthRoute("users")); // Assert var expectedLinks = new List <string> { LinkNames.Self }; var resource = await response.ShouldBeAResource <UsersContainerResource>(expectedLinks); var expectedPerUserLinks = new List <string> { LinkNames.Auth.AssignWaiter, LinkNames.Auth.AssignManager, LinkNames.Auth.AssignCashier, LinkNames.Auth.AssignBarista }; resource.Items.ShouldAllBe(i => expectedPerUserLinks.All(el => i.Links.Any(l => l.Key == el))); });
public Task GetAllOrdersShouldReturnProperHypermediaLinks(MenuItem[] menuItems, Fixture fixture) => _apiHelper.InTheContextOfAnAuthenticatedUser( async httpClient => { // Arrange const int countOfOrders = 5; await _orderHelper.AddMenuItems(menuItems); var orderCommands = fixture .Build <OrderToGo>() .With(x => x.ItemNumbers, menuItems.Select(i => i.Number).ToList()) .CreateMany(countOfOrders) .ToArray(); await _fixture.SendManyAsync(orderCommands); // Act var response = await httpClient .GetAsync(OrderRoute()); // Assert var expectedLinks = new List <string> { LinkNames.Self, LinkNames.Order.New }; var resource = await response.ShouldBeAResource <ToGoOrderContainerResource>(expectedLinks); resource.Items.ShouldAllBe(i => i.Links.Count > 0); }, fixture);
public Task GetAllTablesReturnsProperHypermediaLinksForTablesWithoutWaiters(AddTable[] addTablesCommands, Fixture fixture) => _apiHelper.InTheContextOfAnAuthenticatedUser( async httpClient => { // Arrange await _fixture.SendManyAsync(addTablesCommands); // Act var response = await httpClient .GetAsync(TableRoute()); // Assert var expectedContainerLinks = new List <string> { LinkNames.Self, LinkNames.Table.Add }; var resource = await response.ShouldBeAResource <TableContainerResource>(expectedContainerLinks); var expectedTableLinks = new List <string> { LinkNames.Table.GetAll }; resource.Items.ShouldAllBe(tableResource => tableResource.Links.All(link => expectedTableLinks.Contains(link.Key))); }, fixture);
public async Task CanGetAllUserAccounts(Register[] registerAccountsCommands) { // Arrange await _fixture.SendManyAsync(registerAccountsCommands); var query = new GetAllUserAccounts(); // Act var accounts = await _fixture.SendAsync(query); // Assert (accounts.Count == registerAccountsCommands.Length && accounts.All(a => registerAccountsCommands.Any(registeredAccount => a.Id == registeredAccount.Id && a.FirstName == registeredAccount.FirstName && a.LastName == registeredAccount.LastName && a.Email == registeredAccount.Email))) .ShouldBeTrue(); }
public Task GetAllManagersShouldReturnProperHypermediaLinks(HireManager[] commands) => _apiHelper.InTheContextOfAnAdmin( async httpClient => { // Arrange await _fixture.SendManyAsync(commands); // Act var response = await httpClient .GetAsync("manager"); // Assert var expectedLinks = new List <string> { LinkNames.Self, LinkNames.Manager.Hire }; await response.ShouldBeAResource <ManagerContainerResource>(expectedLinks); });
public Task GetAllBaristasShouldReturnProperHypermediaLinks(HireBarista[] commands, Fixture fixture) => _apiHelper.InTheContextOfAManager( manager => async httpClient => { // Arrange await _fixture.SendManyAsync(commands); // Act var response = await httpClient .GetAsync("barista"); // Assert var expectedLinks = new List <string> { LinkNames.Self, LinkNames.Barista.Hire }; await response.ShouldBeAResource <BaristaContainerResource>(expectedLinks); }, fixture);
public Task GetEmployedWaitersShouldReturnProperHypermediaLinks(HireWaiter[] waitersToHire, Fixture fixture) => _apiHelper.InTheContextOfAManager( manager => async httpClient => { // Arrange await _fixture.SendManyAsync(waitersToHire); // Act var response = await httpClient.GetAsync(WaiterRoute()); // Assert var expectedLinks = new List <string> { LinkNames.Self, LinkNames.Waiter.Hire }; var resource = await response.ShouldBeAResource <WaitersContainerResource>(expectedLinks); resource.Items.ShouldAllBe(r => r.Links.Count > 0); }, fixture);