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(); }
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(); }
public Task <IList <ToGoOrderView> > Handle(GetOrdersByStatus query, CancellationToken cancellationToken) => _toGoOrderViewRepository .GetByStatus(query.Status);