Example #1
0
        public async Task GetItemInventoryAsync()
        {
            var          soapService = new NetSuiteSoapService(this.Config);
            const string sku         = "GUARD528-test1";
            var          token       = CancellationToken.None;
            var          item        = await soapService.GetItemBySkuAsync(sku, token);

            var itemInventory = await soapService.GetItemInventoryAsync(item, token, Mark.Blank());

            itemInventory.Any(i => Math.Abs(i.quantityAvailable) > 0).Should().BeTrue();
        }
Example #2
0
        public void GetOrders()
        {
            var orders = _commonService.GetOrdersAsync(base.OrganizationKey, new DateTime(2020, 3, 30, 0, 0, 1, DateTimeKind.Utc),
                                                       new DateTime(2020, 5, 30, 21, 42, 20, DateTimeKind.Utc),
                                                       CancellationToken.None, Mark.Blank());

            orders.Wait();

            //------------ Assert
            orders.Should().NotBeNull();
            orders.Result.Should().NotBeEmpty();
        }
Example #3
0
        private string CreateMethodCallInfo(string methodParameters = "", Mark mark = null, string errors = "", string methodResult = "", string additionalInfo = "", [CallerMemberName] string memberName = "", string notes = "")
        {
            mark = mark ?? Mark.Blank();
            var connectionInfo = this.ToJsonSoapInfo();
            var str            = string.Format(
                "{{MethodName:{0}, ConnectionInfo:{1}, MethodParameters:{2}, Mark:\"{3}\"{4}{5}{6}{7}}}",
                memberName,
                connectionInfo,
                methodParameters,
                mark,
                string.IsNullOrWhiteSpace(errors) ? string.Empty : ", Errors:" + errors,
                string.IsNullOrWhiteSpace(methodResult) ? string.Empty : ", Result:" + methodResult,
                string.IsNullOrWhiteSpace(notes) ? string.Empty : ", Notes:" + notes,
                string.IsNullOrWhiteSpace(additionalInfo) ? string.Empty : ", AdditionalInfo: " + additionalInfo
                );

            return(str);
        }
Example #4
0
 private string CreateMethodCallInfo(string methodParameters = "", Mark mark = null, string errors = "", string methodResult = "", string additionalInfo = "", string notes = "", [CallerMemberName] string memberName = "")
 {
     try
     {
         mark = mark ?? Mark.Blank();
         var connectionInfo = this.ToJson();
         var str            = string.Format(
             "{{Mark:\"{3}\", MethodName:{0}, ConnectionInfo:{1}, MethodParameters:{2} {4}{5}{6}{7}}}",
             memberName,
             connectionInfo,
             string.IsNullOrWhiteSpace(methodParameters) ? PredefinedValues.EmptyJsonObject : methodParameters,
             mark,
             string.IsNullOrWhiteSpace(errors) ? string.Empty : ", Errors:" + errors,
             string.IsNullOrWhiteSpace(methodResult) ? string.Empty : ", Result:" + methodResult,
             string.IsNullOrWhiteSpace(notes) ? string.Empty : ",Notes: " + notes,
             string.IsNullOrWhiteSpace(additionalInfo) ? string.Empty : ", " + additionalInfo
             );
         return(str);
     }
     catch (Exception)
     {
         return(PredefinedValues.EmptyJsonObject);
     }
 }
Example #5
0
        public void GetEmptyInventoryItemsListCreatedAndModifiedAfterSpecificDate()
        {
            var createOrModifiedDate = new DateTime(2100, 12, 1);
            var items = this._itemsService.GetItemsCreatedUpdatedAfterAsync(createOrModifiedDate, true, CancellationToken.None, Mark.Blank()).Result;

            items.Count().Should().Be(0);
        }
Example #6
0
        public void GetAllInventoryItems()
        {
            var newItems = this._itemsService.GetItemsCreatedUpdatedAfterAsync(DateTime.MinValue, true, CancellationToken.None, Mark.Blank()).Result;

            newItems.Count().Should().BeGreaterThan(0);
        }
Example #7
0
        public void GetInventoryItemsCreatedAfterSpecifiedDate()
        {
            var createdDate = new DateTime(2019, 12, 1);
            var newItems    = this._itemsService.GetItemsCreatedUpdatedAfterAsync(createdDate, false, CancellationToken.None, Mark.Blank()).Result;

            newItems.Count().Should().BeGreaterThan(0);
        }
        public async Task GetOrdersByDateAsync_InvalidCredentials_ShouldThrow()
        {
            var invalidCreds = new LogicBrokerAccess.Configuration.LogicBrokerCredentials("invalid credentials");
            var service      = logicBrokerFactory.CreateOrdersService(invalidCreds);

            try
            {
                await service.GetOrdersByDateAsync(DateTime.UtcNow.AddMonths(-3), DateTime.UtcNow, CancellationToken.None, Mark.Blank());
            }
            catch (Exception ex)
            {
                Assert.IsTrue(ex.InnerException is LogicBrokerException);
            }
        }
        public async Task UpdatInventoryAsync()
        {
            var inventoryItems = new []
            {
                new LogicBrokerAccess.Models.LogicBrokerInventoryItem
                {
                    SupplierSKU = "TESTSKU4",
                    Quantity    = 222
                },
                new LogicBrokerAccess.Models.LogicBrokerInventoryItem
                {
                    SupplierSKU = "TESTSKU5",
                    Quantity    = 333
                }
            };

            var result = await inventoryService.UpdateInventoryAsync(inventoryItems, CancellationToken.None, Mark.Blank());

            result.Should().NotBeNullOrWhiteSpace();
        }
Example #10
0
        public async Task UpdateSkusQuantitiesAsync_PushItemsThatUsesBinsAndItemThatDoesnt()
        {
            int          newQuantity = new Random().Next(1, 100);
            const string testSkuBin  = "GUARD528-test1";
            const string binNumber   = "1004";

            int          newQuantityNoBin = new Random().Next(1, 100);
            const string testSkuNoBin     = "NS-testsku99";

            var token         = CancellationToken.None;
            var binQuantities = new NetSuiteItemQuantity
            {
                BinQuantities = new []
                {
                    new NetSuiteBinQuantity(_locationBostonBins.name, binNumber, newQuantity)
                }
            };
            var unBinnedQuantities = new NetSuiteItemQuantity
            {
                AvailableQuantity = newQuantityNoBin
            };
            var skuBinQuantities = new Dictionary <string, NetSuiteItemQuantity>
            {
                { testSkuBin, binQuantities },
                { testSkuNoBin, unBinnedQuantities }
            };

            await this._itemsService.UpdateSkusQuantitiesAsync(AccountId, _locationBostonBins.name, skuBinQuantities,
                                                               NetSuiteInventoryBinsModeEnum.Both, token, Mark.Blank());

            var updatedBinQuantity = await GetItemBinQuantityAsync(testSkuBin, _locationBostonBins.internalId, binNumber);

            updatedBinQuantity.Should().Be(newQuantity);
            var updatedNoBinQuantity = await this._itemsService.GetItemQuantityAsync(testSkuNoBin, _locationBostonBins.internalId, CancellationToken.None);

            updatedNoBinQuantity.Should().Be(newQuantityNoBin);
        }
Example #11
0
        public async Task UpdateItemQuantityBySkuAsync_NotPushingToBins_ModeSetToPushToNotInBinOnly_ItemAndLocationUsesBins()
        {
            var          newQuantity     = new Random().Next(1, 100);
            const string testsku         = "NS-testsku555";
            var          initialQuantity = await this._itemsService.GetItemQuantityAsync(testsku, _locationBostonBins.internalId, CancellationToken.None);

            await this._itemsService.UpdateItemQuantityBySkuAsync(AccountId, _locationBostonBins.name, testsku, newQuantity, NetSuiteInventoryBinsModeEnum.ItemsNotInBins, CancellationToken.None, Mark.Blank());

            var quantityAfterUpdate = await this._itemsService.GetItemQuantityAsync(testsku, _locationBostonBins.internalId, CancellationToken.None);

            quantityAfterUpdate.Should().Be(initialQuantity);
        }
Example #12
0
        public async Task UpdateSkusQuantitiesAsync_PushingToBins_BinAssociatedWithItemButInAnotherLocation()
        {
            var          newQuantity  = new Random().Next(1, 100);
            const string testSku      = "GUARD528-test1";
            const string locationName = "San Francisco";
            const string locationId   = "1";
            const string binNumber    = "1004";                 //in the Boston location
            var          token        = CancellationToken.None;

            var itemQuantity = new NetSuiteItemQuantity
            {
                BinQuantities = new []
                {
                    new NetSuiteBinQuantity(locationName, binNumber, newQuantity)
                }
            };
            var skuLocationQuantities = new Dictionary <string, NetSuiteItemQuantity>
            {
                { testSku, itemQuantity }
            };
            var binQuantityBefore = await GetItemBinQuantityAsync(testSku, locationId, binNumber);

            var itemQuantityBefore = await this._itemsService.GetItemQuantityAsync(testSku, locationName, CancellationToken.None);

            await this._itemsService.UpdateSkusQuantitiesAsync(AccountId, locationName, skuLocationQuantities,
                                                               NetSuiteInventoryBinsModeEnum.ItemsInBins, token, Mark.Blank());

            var binQuantityAfter = await GetItemBinQuantityAsync(testSku, locationId, binNumber);;

            binQuantityAfter.Should().Be(binQuantityBefore);
            var itemQuantityAfter = await this._itemsService.GetItemQuantityAsync(testSku, locationName, CancellationToken.None);

            itemQuantityAfter.Should().Be(itemQuantityBefore);
        }
Example #13
0
        // Seems to fail randomly. Try running again a few times if failing.
        public async Task UpdateSkusQuantitiesAsync_PushingToBins_ItemAndLocationUsesBins_BinIsNotAssociatedWithItem()
        {
            int          newQuantity  = new Random().Next(1, 100);
            const string testsku      = "GUARD528-test1";
            const string binNumber    = "1999";
            var          token        = CancellationToken.None;
            var          itemQuantity = new NetSuiteItemQuantity
            {
                AvailableQuantity = 0,
                BinQuantities     = new []
                {
                    new NetSuiteBinQuantity(_locationBostonBins.name, binNumber, newQuantity)
                }
            };
            var skuLocationQuantities = new Dictionary <string, NetSuiteItemQuantity>
            {
                { testsku, itemQuantity }
            };
            var binQuantityBefore = await GetItemBinQuantityAsync(testsku, _locationBostonBins.internalId, binNumber);

            var itemQuantityBefore = await this._itemsService.GetItemQuantityAsync(testsku, _locationBostonBins.internalId, CancellationToken.None);

            await this._itemsService.UpdateSkusQuantitiesAsync(AccountId, _locationBostonBins.name, skuLocationQuantities,
                                                               NetSuiteInventoryBinsModeEnum.ItemsInBins, token, Mark.Blank());

            var updatedBinQuantity = await GetItemBinQuantityAsync(testsku, _locationBostonBins.internalId, binNumber);;

            updatedBinQuantity.Should().Be(binQuantityBefore);
            var itemQuantityAfter = await this._itemsService.GetItemQuantityAsync(testsku, _locationBostonBins.internalId, CancellationToken.None);

            itemQuantityAfter.Should().Be(itemQuantityBefore);
        }
Example #14
0
        public async Task UpdateSkusQuantitiesAsync_PushingToBins_ZerosOutBinsNotPushed()
        {
            var          nonZeroQuantity    = new Random().Next(1, 100);
            const string testsku            = "GUARD528-test1";
            const string binNumberToZeroOut = "1004";
            const string anotherBinNumber   = "1001";
            var          token = CancellationToken.None;

            var itemQuantity = new NetSuiteItemQuantity
            {
                BinQuantities = new []
                {
                    new NetSuiteBinQuantity(_locationBostonBins.name, binNumberToZeroOut, nonZeroQuantity)
                }
            };
            var skuLocationQuantities = new Dictionary <string, NetSuiteItemQuantity>
            {
                { testsku, itemQuantity }
            };

            //Push non-zero to binNumberToZeroOut
            await this._itemsService.UpdateSkusQuantitiesAsync(AccountId, _locationBostonBins.name, skuLocationQuantities,
                                                               NetSuiteInventoryBinsModeEnum.ItemsInBins, token, Mark.Blank());

            //Push to anotherBinNumber
            itemQuantity.BinQuantities.First().BinNumber = anotherBinNumber;
            await this._itemsService.UpdateSkusQuantitiesAsync(AccountId, _locationBostonBins.name, skuLocationQuantities,
                                                               NetSuiteInventoryBinsModeEnum.ItemsInBins, token, Mark.Blank());

            var binQuantityAfter = await GetItemBinQuantityAsync(testsku, _locationBostonBins.internalId, binNumberToZeroOut);

            binQuantityAfter.Should().Be(0);
            //Restore binNumberToZeroOut for other tests
            itemQuantity.BinQuantities.First().BinNumber = binNumberToZeroOut;
            await this._itemsService.UpdateSkusQuantitiesAsync(AccountId, _locationBostonBins.name, skuLocationQuantities,
                                                               NetSuiteInventoryBinsModeEnum.ItemsInBins, token, Mark.Blank());
        }
        public void AcknowledgeOrdersAsync()
        {
            var ordersServiceWithPageSize1 = logicBrokerFactory.CreateOrdersService(this.Credentials, 1);
            var orderLogicBrokerKeys       = new List <string> {
                "454528", "454511"
            };

            var acknowledgedOrders = ordersServiceWithPageSize1.AcknowledgeOrdersAsync(orderLogicBrokerKeys, CancellationToken.None, Mark.Blank()).Result;

            acknowledgedOrders.Count().Should().BeGreaterThan(1);
            acknowledgedOrders.Any(o => o == orderLogicBrokerKeys[0]).Should().BeTrue();
        }
        public void CollectOrdersFromAllPages()
        {
            var ordersServiceWithPageSize1 = logicBrokerFactory.CreateOrdersService(this.Credentials, 1);

            var orders = ordersServiceWithPageSize1.GetOrdersByDateAsync(DateTime.UtcNow.AddMonths(-3), DateTime.UtcNow, CancellationToken.None, Mark.Blank()).Result;

            orders.Count().Should().BeGreaterThan(1);
        }
Example #17
0
        public async Task UpdateItemQuantityBySkuAsync_NotPushingToBins_BinFeatureEnabledOnlyOnItemLevel()
        {
            int          newQuantity = new Random().Next(1, 100);
            const string testsku     = "NS-testsku555";

            await this._itemsService.UpdateItemQuantityBySkuAsync(AccountId, _locationSkuVaultNoBins.name, testsku, newQuantity, NetSuiteInventoryBinsModeEnum.ItemsNotInBins, CancellationToken.None, Mark.Blank());

            int updatedQuantity = await this._itemsService.GetItemQuantityAsync(testsku, _locationSkuVaultNoBins.internalId, CancellationToken.None);

            updatedQuantity.Should().Be(newQuantity);
        }
Example #18
0
        public async Task UpdateSkusQuantitiesAsync__NotPushingToBins_MultipleItems()
        {
            var inventory = new Dictionary <string, NetSuiteItemQuantity>();

            var random = new Random();

            for (int i = 1; i <= 18; i++)
            {
                // item with bins
                if (i == 6)
                {
                    continue;
                }

                var binQuantity = new NetSuiteItemQuantity
                {
                    AvailableQuantity = random.Next(1, 100)
                };
                inventory.Add("NS-testsku" + i.ToString(), binQuantity);
            }

            await this._itemsService.UpdateSkusQuantitiesAsync(AccountId, _locationSkuVaultNoBins.name, inventory, NetSuiteInventoryBinsModeEnum.ItemsNotInBins, CancellationToken.None, Mark.Blank());

            foreach (var inventoryItem in inventory)
            {
                try
                {
                    int currentQuantity = await this._itemsService.GetItemQuantityAsync(inventoryItem.Key, _locationSkuVaultNoBins.internalId, CancellationToken.None);

                    currentQuantity.Should().Be(inventoryItem.Value.AvailableQuantity);
                }
                catch (NetSuiteItemNotFoundException)
                { }
            }
        }
Example #19
0
        public async Task UpdateItemQuantityBySkuAsync_NotPushingToBins_BinFeatureEnabledOnlyOnLocationLevel()
        {
            var          newQuantity = new Random().Next(1, 100);
            const string testSku     = "NS-testsku1";

            await _itemsService.UpdateItemQuantityBySkuAsync(AccountId, _locationBostonBins.name, testSku, newQuantity, NetSuiteInventoryBinsModeEnum.ItemsNotInBins, CancellationToken.None, Mark.Blank());

            var quantityAfterUpdate = await this._itemsService.GetItemQuantityAsync(testSku, _locationBostonBins.internalId, CancellationToken.None);

            quantityAfterUpdate.Should().Be(newQuantity);
        }
Example #20
0
 protected MagentoException(string message, Exception exception, Mark mark = null)
     : base(message, exception)
 {
     this.CallMark = mark ?? Mark.Blank();
 }
Example #21
0
        public void GetActiveOrganizationsAsync()
        {
            var result = _commonService.GetActiveOrganizationsAsync(CancellationToken.None, Mark.Blank()).Result;

            result.Should().NotBeEmpty();
        }
Example #22
0
        public async Task GetUnshippedOrdersAsync()
        {
            var orders = await _commonService.GetUnshippedOrdersAsync(base.OrganizationKey, DateTime.UtcNow, CancellationToken.None, Mark.Blank());

            orders.Should().NotBeEmpty();
        }
Example #23
0
        public async Task GetLocationsByNameAsync()
        {
            var locationName = "San Francisco";
            var location     = await this._commonService.GetLocationByNameAsync(locationName, CancellationToken.None, Mark.Blank());

            location.Should().NotBeNull();
        }
Example #24
0
        public void UpdateParentSkuQuantityAsync()
        {
            const string sku = "TestParent3";

            var locationQuantity = new NetSuiteItemQuantity
            {
                AvailableQuantity = 10
            };
            var inventory = new Dictionary <string, NetSuiteItemQuantity>
            {
                { sku, locationQuantity }
            };

            Assert.DoesNotThrowAsync(async() =>
            {
                await this._itemsService.UpdateSkusQuantitiesAsync(AccountId, _locationSkuVaultNoBins.name, inventory, NetSuiteInventoryBinsModeEnum.Both, CancellationToken.None, Mark.Blank());
            });
        }
Example #25
0
        public async Task UpdateItemQuantityBySkuAsync_NotPushingToBins_ItemNotInBin()
        {
            int    newQuantity = new Random().Next(1, 100);
            string testSku     = "NS-testsku1";

            await this._itemsService.UpdateItemQuantityBySkuAsync(AccountId, _locationSkuVaultNoBins.name, testSku, newQuantity, NetSuiteInventoryBinsModeEnum.ItemsNotInBins, CancellationToken.None, Mark.Blank());

            int quantityAfterUpdate = await this._itemsService.GetItemQuantityAsync(testSku, _locationSkuVaultNoBins.internalId, CancellationToken.None);

            quantityAfterUpdate.Should().Be(newQuantity);
        }
        public void GetOrdersByDateAsync()
        {
            var orders = ordersService.GetOrdersByDateAsync(DateTime.UtcNow.AddMonths(-3), DateTime.UtcNow, CancellationToken.None, Mark.Blank()).Result;

            orders.Count().Should().NotBe(0);
        }