Exemple #1
0
        public async Task CanQueryOrdersByStatus(Fixture fixture)
        {
            // Arrange
            var statusToTest = ToGoOrderStatus.Pending;

            var ordersToInsert = fixture
                                 .Build <ToGoOrder>()
                                 .With(o => o.Status, statusToTest)
                                 .CreateMany()
                                 .ToList();

            await _fixture.ExecuteDbContextAsync(async dbContext =>
            {
                dbContext.ToGoOrders.AddRange(ordersToInsert);

                await dbContext.SaveChangesAsync();
            });

            var queryToTest = new GetOrdersByStatus
            {
                Status = statusToTest
            };

            // Act
            var orders = await _fixture.SendAsync(queryToTest);

            // Assert
            (orders.Count == ordersToInsert.Count &&
             orders.All(order => ordersToInsert.Any(insertedOrder =>
                                                    order.Id == insertedOrder.Id &&
                                                    order.OrderedItems.Count == insertedOrder.OrderedItems.Count &&
                                                    order.Status == insertedOrder.Status &&
                                                    !string.IsNullOrEmpty(order.StatusText))))
            .ShouldBeTrue();
        }
Exemple #2
0
        public async Task CanQueryOrdersByStatusWhenThereAreNone(Fixture fixture)
        {
            // Arrange
            var statusToTest = ToGoOrderStatus.Pending;

            var ordersToInsert = fixture
                                 .Build <ToGoOrder>()
                                 .With(o => o.Status, statusToTest)
                                 .CreateMany()
                                 .ToList();

            await _fixture.ExecuteDbContextAsync(async dbContext =>
            {
                dbContext.ToGoOrders.AddRange(ordersToInsert);

                await dbContext.SaveChangesAsync();
            });

            var queryToTest = new GetOrdersByStatus
            {
                // Notice we're querying for issued orders when there are only pending orders in the db
                Status = ToGoOrderStatus.Issued
            };

            // Act
            var orders = await _fixture.SendAsync(queryToTest);

            // Assert
            (orders.Count == 0).ShouldBeTrue();
        }
Exemple #3
0
 public Task <IList <ToGoOrderView> > Handle(GetOrdersByStatus query, CancellationToken cancellationToken) =>
 _toGoOrderViewRepository
 .GetByStatus(query.Status);