public async Task WhenOrderIsCreatedAndProcessed_ThenParcelNumberIsAvailable() { // Arrange using (var webApplication = Test.CreateWebApplication()) { var httpClient = webApplication.CreateClient(); var client = new OrdersClient(httpClient); var userId = "myUser"; var parcelNumber = "parcel-number-123"; // Act var id = await client.CreateOrderAsync(userId, new OrderDto { ProductId = "foo", Quantity = 5 }); await Test.WaitForAnyAsync(async() => await client.GetOrdersAsync(userId)); await client.CompleteOrderAsync(id, parcelNumber); var orders = await Test.WaitForAsync( async() => await client.GetOrdersAsync(userId), o => o.Any(order => order.Id == id && order.State == "Completed")); // Assert Assert.Contains(orders, o => o.ParcelNumber == parcelNumber); } }
public async Task <Result <Order> > CreateOrder(CreateOrder order) { var resultFromClient = await ordersClient.CreateOrderAsync(OrderConverter.ToDto(order)); return(new Result <Order> { IsSuccess = resultFromClient.IsSuccess, Message = resultFromClient.Message, Value = resultFromClient.IsSuccess ? OrderConverter.FromDto(resultFromClient.Value) : null }); }