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); }
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(); }
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(); }
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); }
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); }
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(); }
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(); }
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>(); }
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)); }
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>(); }
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(); }
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()); }
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)); }
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(); }
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); }