Ejemplo n.º 1
0
        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)));
        });
Ejemplo n.º 2
0
        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);
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 5
0
        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);
        });
Ejemplo n.º 6
0
        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);
Ejemplo n.º 7
0
        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);