Пример #1
0
        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);
            }
        }
Пример #2
0
        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
            });
        }