Пример #1
0
        public void UpdateInventoryAsync_UserAlreadyHasAccessTokens_ReceiveProducts(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion);

            //------------ Act
            var onlyProductsCreatedForThisTests = this.GetOnlyProductsCreatedForThisTests(magentoService);
            var updateFirstTimeQty  = 123;
            var updateInventoryTask = magentoService.UpdateInventoryAsync(onlyProductsCreatedForThisTests.ToInventory(x => updateFirstTimeQty).ToList());

            updateInventoryTask.Wait();

            /////
            var onlyProductsCreatedForThisTests2 = this.GetOnlyProductsCreatedForThisTests(magentoService);

            var updateSecondTimeQty  = 100500;
            var updateInventoryTask2 = magentoService.UpdateInventoryAsync(onlyProductsCreatedForThisTests2.ToInventory(x => updateSecondTimeQty).ToList());

            updateInventoryTask2.Wait();

            //------------ Assert
            var onlyProductsCreatedForThisTests3 = this.GetOnlyProductsCreatedForThisTests(magentoService);

            onlyProductsCreatedForThisTests2.Should().NotBeNullOrEmpty();
            onlyProductsCreatedForThisTests2.Should().OnlyContain(x => x.Qty.ToDecimalOrDefault() == updateFirstTimeQty);
            onlyProductsCreatedForThisTests3.Should().OnlyContain(x => x.Qty.ToDecimalOrDefault() == updateSecondTimeQty);
        }
Пример #2
0
        public void GetOrders_UserAlreadyHasAccessTokens_ReceiveOrders(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion);
            //------------ Act
            //var firstCreatedItem = this._orders[ credentials.StoreUrl ].OrderBy( x => x.UpdatedAt ).First();
            //var lastCreatedItem = this._orders[ credentials.StoreUrl ].OrderBy( x => x.UpdatedAt ).Last();

            //var modifiedFrom = new DateTime( ( firstCreatedItem.UpdatedAt ).Ticks, DateTimeKind.Utc ).AddSeconds( 1 );
            //var modifiedTo = new DateTime( ( lastCreatedItem.UpdatedAt ).Ticks, DateTimeKind.Utc ).AddSeconds( -1 );
            var modifiedFrom = new DateTime(2016, 1, 28, 23, 23, 59).AddSeconds(1);
            var modifiedTo   = new DateTime(2016, 5, 2, 23, 30, 39).AddSeconds(-1);

            var getOrdersTask = magentoService.GetOrdersAsync(modifiedFrom, modifiedTo);

            getOrdersTask.Wait();

            //------------ Assert
            //var thatMustBeReturned = this._orders[ credentials.StoreUrl ].Where( x => x != firstCreatedItem && x != lastCreatedItem ).Select( x => x.OrderIncrementalId ).ToList();
            //var thatWasReturned = getOrdersTask.Result.Where( x => x != firstCreatedItem && x != lastCreatedItem ).Select( x => x.OrderIncrementalId ).ToList();
            var thatWasReturned = getOrdersTask.Result.Select(x => x.OrderIncrementalId).ToList();

            //thatWasReturned.Should().BeEquivalentTo( thatMustBeReturned );
            thatWasReturned.Should().NotBeNullOrEmpty();
        }
Пример #3
0
        public void InventoryUpdated(MagentoServiceSoapCredentials credentialsRest, MagentoServiceSoapCredentials credentialsSoap)
        {
            // ------------ Arrange
            var magentoServiceRest = this.CreateMagentoService(credentialsRest.SoapApiUser, credentialsRest.SoapApiKey, "null", "null", "null", "null", credentialsRest.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentialsRest.MagentoVersion, credentialsRest.GetProductsThreadsLimit, credentialsRest.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);
            var magentoServiceSoap = this.CreateMagentoService(credentialsSoap.SoapApiUser, credentialsSoap.SoapApiKey, "null", "null", "null", "null", credentialsSoap.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentialsSoap.MagentoVersion, credentialsSoap.GetProductsThreadsLimit, credentialsSoap.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);
            var skus = new[] { "testsku1", "testsku2", "testsku3", "testsku4" };

            // ------------ Act
            var getProductsRestTask = magentoServiceRest.GetProductsAsync(new[] { 0, 1 }, skus: skus, includeDetails: false);

            getProductsRestTask.Wait();
            var inventoryToUpdate = getProductsRestTask.Result.Where(p => p.ProductType == "simple").OrderBy(p => p.ProductId).Select(p => new InventoryBySku()
            {
                Sku = p.Sku, Qty = long.Parse(p.Qty) + 1
            });

            magentoServiceRest.UpdateInventoryBySkuAsync(inventoryToUpdate);

            Task.Delay(2000).Wait();
            var getProductsSoapTask = magentoServiceSoap.GetProductsAsync(new[] { 0, 1 }, skus: skus, includeDetails: false);

            getProductsSoapTask.Wait();
            var updatedInventory = getProductsSoapTask.Result.Where(p => p.ProductType == "simple").OrderBy(p => p.ProductId).Select(p => new InventoryBySku {
                Sku = p.Sku, Qty = long.Parse(p.Qty)
            });

            // ------------ Assert
            inventoryToUpdate.Should().BeEquivalentTo(updatedInventory);
        }
        public void ReceiveOrders(MagentoServiceSoapCredentials credentials)
        {
            // ------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion, credentials.GetProductsThreadsLimit, credentials.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);

            // ------------ Act
            // var firstCreatedItem = this._orders[ credentials.StoreUrl ].OrderBy( x => x.UpdatedAt ).First();
            // var lastCreatedItem = this._orders[ credentials.StoreUrl ].OrderBy( x => x.UpdatedAt ).Last();

            // var modifiedFrom = new DateTime( ( firstCreatedItem.UpdatedAt ).Ticks, DateTimeKind.Utc ).AddSeconds( 1 );
            // var modifiedTo = new DateTime( ( lastCreatedItem.UpdatedAt ).Ticks, DateTimeKind.Utc ).AddSeconds( -1 );
            var modifiedFrom  = new DateTime(2016, 1, 28, 23, 23, 59).AddSeconds(1);
            var modifiedTo    = new DateTime(2017, 2, 2, 23, 30, 39).AddSeconds(-1);
            var getOrdersTask = magentoService.GetOrdersAsync(modifiedFrom, modifiedTo, new Mark("TEST-GET-ORDERS"));

            getOrdersTask.Wait();

            // ------------ Assert
            // var thatMustBeReturned = this._orders[ credentials.StoreUrl ].Where( x => x != firstCreatedItem && x != lastCreatedItem ).Select( x => x.OrderIncrementalId ).ToList();
            // var thatWasReturned = getOrdersTask.Result.Where( x => x != firstCreatedItem && x != lastCreatedItem ).Select( x => x.OrderIncrementalId ).ToList();
            var thatWasReturned = getOrdersTask.Result.Select(x => x.OrderIncrementalId).ToList();

            // thatWasReturned.Should().BeEquivalentTo( thatMustBeReturned );
            thatWasReturned.Should().NotBeNullOrEmpty();
        }
Пример #5
0
        public void ProductsReceived(MagentoServiceSoapCredentials credentialsRest, MagentoServiceSoapCredentials credentialsSoap)
        {
            // ------------ Arrange
            var magentoServiceRest = this.CreateMagentoService(credentialsRest.SoapApiUser, credentialsRest.SoapApiKey, "null", "null", "null", "null", credentialsRest.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentialsRest.MagentoVersion, credentialsRest.GetProductsThreadsLimit, credentialsRest.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);
            var magentoServiceSoap = this.CreateMagentoService(credentialsSoap.SoapApiUser, credentialsSoap.SoapApiKey, "null", "null", "null", "null", credentialsSoap.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentialsSoap.MagentoVersion, credentialsSoap.GetProductsThreadsLimit, credentialsSoap.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);

            // ------------ Act
            var swR = Stopwatch.StartNew();
            var getProductsTaskRest = magentoServiceRest.GetProductsAsync(new[] { 0, 1 }, includeDetails: true);

            getProductsTaskRest.Wait();
            swR.Stop();

            Task.Delay(500).Wait();
            var swS = Stopwatch.StartNew();
            var getProductsTaskSoap = magentoServiceSoap.GetProductsAsync(new[] { 0, 1 }, includeDetails: true);

            getProductsTaskSoap.Wait();
            swS.Stop();

            // ------------ Assert
            Console.WriteLine("rest time: " + swR.Elapsed + " soap time: " + swS.Elapsed);

            var thatWasReturnedRest = getProductsTaskRest.Result.OrderBy(x => x.ProductId).ToList();
            var thatWasReturnedSoap = getProductsTaskSoap.Result.OrderBy(x => x.ProductId).ToList();

            thatWasReturnedRest.ForEach(item => item.Categories = item.Categories?.OrderBy(c => c.Id).Select(c => new Category(c, true)).ToArray());
            thatWasReturnedSoap.ForEach(item => item.Categories = item.Categories?.OrderBy(c => c.Id).Select(c => new Category(c, true)).ToArray());
            thatWasReturnedRest.Should().BeEquivalentTo(thatWasReturnedSoap);
            swS.Elapsed.Should().BeGreaterThan(swR.Elapsed);
        }
Пример #6
0
        protected IEnumerable <Product> GetOnlyProductsCreatedForThisTests(MagentoServiceSoapCredentials magentoServiceSoapCredentials)
        {
            var magentoService  = this.CreateMagentoService(magentoServiceSoapCredentials.SoapApiUser, magentoServiceSoapCredentials.SoapApiKey, "null", "null", "null", "null", magentoServiceSoapCredentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", MagentoVersions.M_2_0_2_0);
            var getProductsTask = magentoService.GetProductsAsync();

            getProductsTask.Wait();

            var allProductsinMagent             = getProductsTask.Result.ToList();
            var onlyProductsCreatedForThisTests = allProductsinMagent.Where(x => this._productsIds[magentoServiceSoapCredentials.StoreUrl].ContainsKey(int.Parse(x.ProductId)));

            return(onlyProductsCreatedForThisTests);
        }
Пример #7
0
        protected IEnumerable <Product> GetOnlyProductsCreatedForThisTests(MagentoServiceSoapCredentials magentoServiceSoapCredentials)
        {
            var magentoService  = this.CreateMagentoService(magentoServiceSoapCredentials.SoapApiUser, magentoServiceSoapCredentials.SoapApiKey, "null", "null", "null", "null", magentoServiceSoapCredentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", MagentoVersions.M_2_0_2_0, magentoServiceSoapCredentials.GetProductsThreadsLimit, magentoServiceSoapCredentials.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);
            var getProductsTask = magentoService.GetProductsAsync(new[] { 0, 1 });

            getProductsTask.Wait();

            var allProductsinMagent             = getProductsTask.Result.ToList();
            var onlyProductsCreatedForThisTests = allProductsinMagent.Where(x => this._productsIds[magentoServiceSoapCredentials.StoreUrl].ContainsKey(int.Parse(x.ProductId)));

            return(onlyProductsCreatedForThisTests);
        }
        public void GetProducts_StoreContainsProducts_ReceiveProducts(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoInternalService = CreateMagentoInternalSoapService(credentials);

            //------------ Act
            var getProductsTask = magentoInternalService.GetProductsAsync();

            getProductsTask.Wait();

            //------------ Assert
            getProductsTask.Result.Products.Should().NotBeEmpty();
        }
Пример #9
0
        public void GetProductsAsync_UserAlreadyHasAccessTokens_ReceiveProducts(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion);

            //------------ Act
            var getProductsTask = magentoService.GetProductsAsync(true);

            getProductsTask.Wait();

            //------------ Assert
            getProductsTask.Result.Should().NotBeNullOrEmpty();
        }
        public void GetSessionId_StoreContainsUser_ReceiveSessionId(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoInternalService = CreateMagentoInternalSoapService(credentials);

            //------------ Act
            var getProductsTask = magentoInternalService.GetSessionId(false);

            getProductsTask.Wait();

            //------------ Assert
            getProductsTask.Result.Should().NotBeNull();
        }
        public void GetMagentoInfoAsync_StoreExist_StoreVersionRecived(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoInternalService = CreateMagentoInternalSoapService(credentials);

            //------------ Act

            var productsAsync = magentoInternalService.GetMagentoInfoAsync(false);

            productsAsync.Wait();

            //------------ Assert
            productsAsync.Result.MagentoVersion.Should().NotBeNullOrWhiteSpace();
        }
Пример #12
0
        public void PingSoapAsync_CorrectCredentials_NoExceptionThrow(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion);
            //------------ Act
            Action act = () =>
            {
                var magentoInfoAsyncTask = magentoService.PingSoapAsync();
                magentoInfoAsyncTask.Wait();
            };

            //------------ Assert
            act.ShouldNotThrow <Exception>();
        }
Пример #13
0
        public void DetermineMagentoVersionAsync_InCorrectApiKey_ReceiveNull(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey + "_incorrectKey", "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion);
            //------------ Act

            var getOrdersTask = magentoService.DetermineMagentoVersionAsync();

            getOrdersTask.Wait();

            //------------ Assert
            var pingSoapInfo = getOrdersTask.Result;

            pingSoapInfo.Any(x => x.SoapWorks && string.Compare(x.Version, credentials.MagentoVersion, StringComparison.CurrentCultureIgnoreCase) == 0).Should().BeFalse();
        }
        public void NoExceptionThrow(MagentoServiceSoapCredentials credentials)
        {
            // ------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion, credentials.GetProductsThreadsLimit, credentials.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);

            // ------------ Act
            Action act = () =>
            {
                var magentoInfoAsyncTask = magentoService.PingSoapAsync();
                magentoInfoAsyncTask.Wait();
            };

            // ------------ Assert
            act.ShouldNotThrow <Exception>();
        }
        public void ReceiveNull(MagentoServiceSoapCredentials credentials)
        {
            // ------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey + "_incorrectKey", "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion, credentials.GetProductsThreadsLimit, credentials.SessionLifeTimeMs, true, ThrowExceptionIfFailed.AllItems);

            // ------------ Act
            var getOrdersTask = magentoService.DetermineMagentoVersionAsync();

            getOrdersTask.Wait();

            // ------------ Assert
            var pingSoapInfo = getOrdersTask.Result;

            pingSoapInfo.Any(x => x.SoapWorks && string.Compare(x.Version, credentials.MagentoVersion, StringComparison.CurrentCultureIgnoreCase) == 0).Should().BeFalse();
        }
        public void GetStockItems_StoreContainsStockItems_ReceiveStockItems(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoInternalService = CreateMagentoInternalSoapService(credentials);

            //------------ Act
            //var skusorids = new List< string >() { "501shirt", "311" };
            var skusorids = this._productsIds[credentials.StoreUrl].Select((kv, i) => i % 2 == 0 ? kv.Key.ToString() : kv.Value).ToList();

            var getProductsTask = magentoInternalService.GetStockItemsAsync(skusorids);

            getProductsTask.Wait();

            //------------ Assert
            getProductsTask.Result.InventoryStockItems.Select(x => x.ProductId).ShouldBeEquivalentTo(this._productsIds[credentials.StoreUrl].Select(x => x.Key));
        }
Пример #17
0
        public void PingSoapAsync_IncorrectUrl_ThrowException(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange

            //------------ Act
            Action act = () =>
            {
                var service = this.CreateMagentoService("incorrectuser", credentials.SoapApiKey, "null", "null", "null", "null", "http://w.com", "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion);

                var magentoInfoAsyncTask = service.PingSoapAsync();
                magentoInfoAsyncTask.Wait();
            };

            //------------ Assert
            act.ShouldThrow <Exception>();
        }
        public void ThrowException(MagentoServiceSoapCredentials credentials)
        {
            // can be red for magento 2.0 since user doesn't used in magento2.0 version
            // ------------ Arrange

            // ------------ Act
            Action act = () =>
            {
                var service = this.CreateMagentoService("incorrectuser", credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion, credentials.GetProductsThreadsLimit, credentials.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);

                var magentoInfoAsyncTask = service.PingSoapAsync();
                magentoInfoAsyncTask.Wait();
            };

            // ------------ Assert
            act.ShouldThrow <Exception>();
        }
Пример #19
0
        public void ReceiveProducts(MagentoServiceSoapCredentials credentials)
        {
            // ------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion, credentials.GetProductsThreadsLimit, credentials.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);

            // ------------ Act
            var getProductsTask = magentoService.GetProductsAsync(new[] { 0, 1 }, includeDetails: false);

            getProductsTask.Wait();

            // ------------ Assert
            var items = getProductsTask.Result.ToList();
            var dupl  = items.GroupBy(x => x.ProductId).Count(x => x.Count() > 1);

            dupl.Should().Be(0);
            getProductsTask.Result.Should().NotBeNullOrEmpty();
        }
        public void UpdateInventory_StoreWithItems_ItemsUpdated(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoInternalService = CreateMagentoInternalSoapService(credentials);

            //------------ Act

            var productsAsync = magentoInternalService.GetStockItemsAsync(this._productsIds[credentials.StoreUrl].Select(x => x.Value).ToList());

            productsAsync.Wait();

            var updateFirsttimeQty = 123;
            var itemsToUpdate      = productsAsync.Result.InventoryStockItems.Select(x => new PutStockItem(new Inventory()
            {
                Qty = updateFirsttimeQty, ProductId = x.ProductId
            })).ToList();

            var getProductsTask = magentoInternalService.PutStockItemsAsync(itemsToUpdate, null);

            getProductsTask.Wait();

            ////

            var productsAsync2 = magentoInternalService.GetStockItemsAsync(this._productsIds[credentials.StoreUrl].Select(x => x.Value).ToList());

            productsAsync2.Wait();

            var updateSecondTimeQty = 100500;
            var itemsToUpdate2      = productsAsync2.Result.InventoryStockItems.Select(x => new PutStockItem(new Inventory()
            {
                Qty = updateSecondTimeQty, ProductId = x.ProductId
            })).ToList();

            var getProductsTask2 = magentoInternalService.PutStockItemsAsync(itemsToUpdate2, null);

            getProductsTask2.Wait();

            //------------ Assert
            var productsAsync3 = magentoInternalService.GetStockItemsAsync(this._productsIds[credentials.StoreUrl].Select(x => x.Value).ToList());

            productsAsync3.Wait();

            productsAsync2.Result.InventoryStockItems.Should().OnlyContain(x => x.Qty.ToDecimalOrDefault() == updateFirsttimeQty);
            productsAsync3.Result.InventoryStockItems.Should().OnlyContain(x => x.Qty.ToDecimalOrDefault() == updateSecondTimeQty);
        }
        public void GetSessionId_IncorrectApiUser_NoExceptionThrowns(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange

            //------------ Act

            Action act = () =>
            {
                var service = CreateMagentoInternalSoapService("incorrect api user", credentials.SoapApiKey, credentials.StoreUrl);

                var getProductsTask = service.GetSessionId(false);
                getProductsTask.Wait();
            };

            //------------ Assert

            act.ShouldNotThrow();
        }
        public void ReceiveProducts(MagentoServiceSoapCredentials credentials)
        {
            // ------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion, credentials.GetProductsThreadsLimit, credentials.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);

            // ------------ Act
            var getProductsTask1 = magentoService.GetProductsAsync(new[] { 0, 1 }, includeDetails: true, productType: "simple", excludeProductByType: true);
            var getProductsTask2 = magentoService.GetProductsAsync(new[] { 0, 1 }, includeDetails: true, productType: "bundle", excludeProductByType: true);

            Task.WhenAll(getProductsTask1, getProductsTask2).Wait();

            // ------------ Assert
            getProductsTask1.Result.Should().NotBeNullOrEmpty();
            getProductsTask2.Result.Should().NotBeNullOrEmpty();

            getProductsTask1.Result.All(x => x.ProductType != "simple").Should().BeTrue();
            getProductsTask2.Result.All(x => x.ProductType != "bundle").Should().BeTrue();
        }
Пример #23
0
        public void ReceiveProducts(MagentoServiceSoapCredentials credentials)
        {
            // ------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion, credentials.GetProductsThreadsLimit, credentials.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);
            var updatedFrom    = DateTime.UtcNow.AddMonths(-15);

            // ------------ Act
            var getProductsTask1 = magentoService.GetProductsAsync(new[] { 0, 1 }, includeDetails: true, updatedFrom: updatedFrom);
            var getProductsTask2 = magentoService.GetProductsAsync(new[] { 0, 1 }, includeDetails: true);

            Task.WhenAll(getProductsTask1, getProductsTask2).Wait();

            // ------------ Assert
            getProductsTask1.Result.Should().NotBeNullOrEmpty();
            getProductsTask2.Result.Should().NotBeNullOrEmpty();

            getProductsTask1.Result.All(x => x.UpdatedAt.ToDateTimeOrDefault() >= updatedFrom).Should().BeTrue();
            getProductsTask2.Result.Count().Should().BeGreaterOrEqualTo(getProductsTask1.Result.Count());
        }
Пример #24
0
        public void ReceiveProducts(MagentoServiceSoapCredentials credentials)
        {
            // ------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion, credentials.GetProductsThreadsLimit, credentials.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);
            var updatedFrom    = DateTime.UtcNow.AddMonths(-15);

            // ------------ Act
            var productsAsync = magentoService.GetProductsAsync(new[] { 0, 1 }, stockItemsOnly: false, updatedFrom: updatedFrom);

            productsAsync.Wait();

            var fillProductsDetailsAsync = magentoService.FillProductsDetailsAsync(productsAsync.Result);

            fillProductsDetailsAsync.Wait();

            // ------------ Assert
            productsAsync.Result.Should().NotBeNullOrEmpty();
            //productsAsync.Result.All( x => x.UpdatedAt.ToDateTimeOrDefault() >= updatedFrom ).Should().BeTrue();
            fillProductsDetailsAsync.Result.Should().NotBeNullOrEmpty();
            fillProductsDetailsAsync.Result.Count().Should().Be(productsAsync.Result.Count());
            fillProductsDetailsAsync.Result.All(x => x.Categories != null && x.Images != null).Should().BeTrue();
        }
        public void InventoryUpdated(MagentoServiceSoapCredentials credentials)
        {
            // ------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion, credentials.GetProductsThreadsLimit, credentials.SessionLifeTimeMs, false, ThrowExceptionIfFailed.AllItems);
            var rnd            = new Random(DateTime.UtcNow.Millisecond);
            var val            = rnd.Next(100, 1500);

            // ------------ Act
            //get products
            var getProductsTask1 = magentoService.GetProductsAsync(new[] { 0, 1 }, includeDetails: true, productType: "simple", excludeProductByType: false, mark: new Mark(nameof(InventoryUpdated) + "_s"));

            Task.WhenAll(getProductsTask1).Wait();
            var initialSkus = getProductsTask1.Result./*Where( x => x.Sku.Contains( "estSku1" ) ).*/ ToList();
            var src         = initialSkus.ToInventory(x => ( int )x.Qty.ToDecimalOrDefault());
            var inventories = src as IList <Inventory> ?? src.ToList();

            inventories.ForEach(x => x.Qty = val);

            //update
            var updateInventoryTask = magentoService.UpdateInventoryAsync(inventories);

            Task.WhenAll(updateInventoryTask).Wait();

            //get products
            var getProductsTask3 = magentoService.GetProductsAsync(new[] { 0, 1 }, includeDetails: true, productType: "simple", excludeProductByType: false, mark: new Mark(nameof(InventoryUpdated) + "_s"));

            Task.WhenAll(getProductsTask3).Wait();
            var resultSku = getProductsTask3.Result /*.Where( x => x.Sku.Contains( "estSku1" ) )*/;

            // ------------ Assert
            initialSkus.Should().NotBeNullOrEmpty();
            resultSku.Should().NotBeNullOrEmpty();

            initialSkus.Any(x => x.Qty.ToDecimalOrDefault() != val).Should().BeTrue();
            resultSku.All(x => x.Qty.ToDecimalOrDefault() == val).Should().BeTrue();
        }
        public void GetOrders_ByIdsStoreContainsOrders_ReceiveOrders(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoInternalService = CreateMagentoInternalSoapService(credentials);

            //------------ Act
            //var ordersIds = new List< string >() { "100000001", "100000002" };
            var mustBeReturned = this._orders[credentials.StoreUrl];
            var ordersIds      = mustBeReturned.Select(x => x.OrderIncrementalId).ToList();

            var getOrdersTask = magentoInternalService.GetOrdersAsync(ordersIds);

            getOrdersTask.Wait();

            //------------ Assert
            var wasReturned = getOrdersTask.Result.Orders.Select(
                x =>
                new
            {
                OrderId            = x.OrderId,
                OrderIncrementalId = x.incrementId,
                UpdatedAt          = x.UpdatedAt,
            }
                );
            var mustBeReturnedBriefInfo = mustBeReturned.Select(
                x =>
                new
            {
                OrderId            = x.OrderId,
                OrderIncrementalId = x.OrderIncrementalId,
                UpdatedAt          = x.UpdatedAt,
            }
                );

            wasReturned.ShouldBeEquivalentTo(mustBeReturnedBriefInfo);
        }
        public void GetOrders_ByDatesStoreContainsOrders_ReceiveOrders(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoInternalService = CreateMagentoInternalSoapService(credentials);

            //------------ Act
            var firstCreatedItem = this._orders[credentials.StoreUrl].OrderBy(x => x.UpdatedAt).First();
            var lastCreatedItem  = this._orders[credentials.StoreUrl].OrderBy(x => x.UpdatedAt).Last();

            var modifiedFrom = firstCreatedItem.UpdatedAt.AddSeconds(1);
            var modifiedTo   = lastCreatedItem.UpdatedAt.AddSeconds(-1);

            var getOrdersTask = magentoInternalService.GetOrdersAsync(modifiedFrom, modifiedTo);

            getOrdersTask.Wait();

            //------------ Assert
            var thatMustBeReturned = this._orders[credentials.StoreUrl].Where(x => x != firstCreatedItem && x != lastCreatedItem).Select(x =>
                                                                                                                                         new
            {
                OrderId            = x.OrderId,
                OrderIncrementalId = x.OrderIncrementalId,
                UpdatedAt          = x.UpdatedAt,
            }
                                                                                                                                         ).ToList();
            var thatWasReturned = getOrdersTask.Result.Orders.Select(x =>
                                                                     new
            {
                OrderId            = x.OrderId,
                OrderIncrementalId = x.incrementId,
                UpdatedAt          = x.UpdatedAt.ToDateTimeOrDefault(),
            }
                                                                     ).ToList();

            thatWasReturned.Should().BeEquivalentTo(thatMustBeReturned);
        }
 protected IMagentoServiceLowLevelSoap CreateMagentoInternalSoapService(MagentoServiceSoapCredentials soapCredentials)
 {
     return(new MagentoServiceLowLevelSoap_v_1_9_2_1_ce(soapCredentials.SoapApiUser, soapCredentials.SoapApiKey, soapCredentials.StoreUrl, null));
 }
Пример #29
0
        public void PopulateAccessTokenAndAccessTokenSecret_UserHasNotGotAccessTokens_AuthCalled(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange

            //------------ Act
            var verificationData   = this._magentoServiceNotAuth.RequestVerificationUri();
            var requestToken       = verificationData.RequestToken;
            var requestTokenSecret = verificationData.RequestTokenSecret;

            Process.Start(verificationData.Uri.AbsoluteUri);

            var verificationCode = string.Empty;

            this._magentoServiceNotAuth.PopulateAccessTokenAndAccessTokenSecret(verificationCode, requestToken, requestTokenSecret);

            //------------ Assert
            this._magentoServiceNotAuth.MagentoServiceLowLevelRest.AccessToken.Should().NotBeNullOrWhiteSpace();
            this._magentoServiceNotAuth.MagentoServiceLowLevelRest.AccessTokenSecret.Should().NotBeNullOrWhiteSpace();
        }
Пример #30
0
        public void UpdateInventoryBYSkuAsync_UserAlreadyHasAccessTokens_ReceiveProducts(MagentoServiceSoapCredentials credentials)
        {
            //------------ Arrange
            var magentoService = this.CreateMagentoService(credentials.SoapApiUser, credentials.SoapApiKey, "null", "null", "null", "null", credentials.StoreUrl, "http://w.com", "http://w.com", "http://w.com", credentials.MagentoVersion);

            //------------ Act
            var getProductsTask = magentoService.GetProductsAsync();

            getProductsTask.Wait();

            var allProductsinMagent             = getProductsTask.Result.ToList();
            var onlyProductsCreatedForThisTests = allProductsinMagent.Where(x => this._productsIds[credentials.StoreUrl].ContainsKey(int.Parse(x.ProductId)));

            var itemsToUpdate = onlyProductsCreatedForThisTests.Select(x => new InventoryBySku()
            {
                Sku = x.Sku, Qty = 123
            });

            var updateInventoryTask = magentoService.UpdateInventoryBySkuAsync(itemsToUpdate);

            updateInventoryTask.Wait();

            /////

            var getProductsTask2 = magentoService.GetProductsAsync();

            getProductsTask2.Wait();

            var allProductsinMagent2             = getProductsTask2.Result.ToList();
            var onlyProductsCreatedForThisTests2 = allProductsinMagent2.Where(x => this._productsIds[credentials.StoreUrl].ContainsKey(int.Parse(x.ProductId)));

            var itemsToUpdate2 = onlyProductsCreatedForThisTests2.Select(x => new InventoryBySku()
            {
                Sku = x.Sku, Qty = 100500
            });

            var updateInventoryTask2 = magentoService.UpdateInventoryBySkuAsync(itemsToUpdate2);

            updateInventoryTask2.Wait();

            //------------ Assert
            var getProductsTask3 = magentoService.GetProductsAsync();

            getProductsTask3.Wait();

            var allProductsinMagent3             = getProductsTask3.Result.ToList();
            var onlyProductsCreatedForThisTests3 = allProductsinMagent3.Where(x => this._productsIds[credentials.StoreUrl].ContainsKey(int.Parse(x.ProductId)));

            onlyProductsCreatedForThisTests2.Should().OnlyContain(x => x.Qty.ToDecimalOrDefault() == 123);
            onlyProductsCreatedForThisTests3.Should().OnlyContain(x => x.Qty.ToDecimalOrDefault() == 100500);
        }