public void PutStockItemsAsync_StoreContainsProducts_ProductsUpdated(RepositoryTestCase testCase)
        {
            //------------ Arrange
            var adminRepository   = new IntegrationAdminTokenRepository(testCase.Url);
            var token             = adminRepository.GetTokenAsync(testCase.MagentoLogin, testCase.MagentoPass).WaitResult();
            var productRepository = new ProductRepository(token, testCase.Url);
            var stockRepository   = new CatalogStockItemRepository(token, testCase.Url);

            var products   = productRepository.GetProductsAsync(DateTime.MinValue, "simple", new PagingModel(5, 1)).WaitResult();
            var stockItems = stockRepository.GetStockItemsAsync(products.items.Select(x => x.sku)).WaitResult();
            //------------ Act
            var stockItem2 = stockRepository.PutStockItemsAsync(products.items.Select(x => Tuple.Create(x.sku, x.id.ToString(), new RootObject {
                stockItem = new StockItem {
                    qty = 100, isInStock = true
                }
            }))).WaitResult();
            var stockItem2Updated = stockRepository.GetStockItemsAsync(products.items.Select(x => x.sku)).WaitResult();

            var stockItem3 = stockRepository.PutStockItemsAsync(products.items.Select(x => Tuple.Create(x.sku, x.id.ToString(), new RootObject {
                stockItem = new StockItem {
                    qty = 100500, isInStock = false
                }
            }))).WaitResult();
            var stockItem3Updated = stockRepository.GetStockItemsAsync(products.items.Select(x => x.sku)).WaitResult();

            //------------ Assert
            stockItem2.Should().OnlyContain(x => x);
            stockItem3.Should().OnlyContain(x => x);
            stockItem2Updated.Should().OnlyContain(x => x.qty == 100);
            stockItem2Updated.Should().OnlyContain(x => x.isInStock == true);
            stockItem3Updated.Should().OnlyContain(x => x.qty == 100500);
            stockItem3Updated.Should().OnlyContain(x => x.isInStock == false);
            products.items.Should().OnlyContain(x => x.typeId == "simple");
        }
        public void PutStockItemAsync_StoreContainsProducts_ProductsUpdated(RepositoryTestCase testCase)
        {
            //------------ Arrange
            var adminRepository   = new IntegrationAdminTokenRepository(testCase.Url);
            var token             = adminRepository.GetTokenAsync(testCase.MagentoLogin, testCase.MagentoPass).WaitResult();
            var productRepository = new ProductRepository(token, testCase.Url);
            var stockRepository   = new CatalogStockItemRepository(token, testCase.Url);

            var products  = productRepository.GetProductsAsync(DateTime.MinValue, new PagingModel(5, 1)).WaitResult();
            var stockItem = stockRepository.GetStockItemAsync(products.items.First().sku).WaitResult();
            //------------ Act
            var stockItem2 = stockRepository.PutStockItemAsync(products.items.First().sku, stockItem.itemId.Value.ToString(), new RootObject {
                stockItem = new StockItem {
                    qty = 100, isInStock = true
                }
            }).WaitResult();
            var stockItem2Updated = stockRepository.GetStockItemAsync(products.items.First().sku).WaitResult();

            var stockItem3 = stockRepository.PutStockItemAsync(products.items.First().sku, stockItem.itemId.Value.ToString(), new RootObject {
                stockItem = new StockItem {
                    qty = 100500, isInStock = false
                }
            }).WaitResult();
            var stockItem3Updated = stockRepository.GetStockItemAsync(products.items.First().sku).WaitResult();

            //------------ Assert
            stockItem2.Should().Be(true);
            stockItem3.Should().Be(true);
            stockItem2Updated.qty.Value.Should().Be(100);
            stockItem2Updated.isInStock.Value.Should().Be(true);
            stockItem3Updated.qty.Value.Should().Be(100500);
            stockItem3Updated.isInStock.Value.Should().Be(false);
        }