public async Task CanDecrementOrderItemQuantity()
        {
            Guid      orderItemId = Guid.NewGuid();
            int       quantity    = _fixture.Create <int>();
            OrderItem orderItem   = _fixture.Build <OrderItem>().With(a => a.Quantity, quantity).Create();

            Mock <IShoppingCartApi> mockApi = new Mock <IShoppingCartApi>();

            mockApi.Setup(a => a.GetOrderItemAsync(orderItemId, It.IsAny <CancellationToken>())).ReturnsAsync(orderItem);
            mockApi.Setup(a => a.UpdateOrderItemAsync(orderItemId, quantity - 1, It.IsAny <CancellationToken>())).ReturnsAsync(new OrderItem(orderItem.Product, orderItem.Quantity - 1));

            OrderItemManager sut = CreateSystemUnderTest(mockApi.Object);

            OrderItem result = await sut.DecrementOrderItemQuantitytAsync(orderItemId);

            Assert.Equal(orderItem.Quantity, result.Quantity);
        }