Ejemplo n.º 1
0
        public void Test_Price_CRUD()
        {
            #region Arrange
            var tmpArticle = new ArticleConnector().Create(new Article()
            {
                Description = "TmpArticle"
            });
            var tmpPriceList = new PriceListConnector().Get("TST_PR");
            #endregion Arrange

            IPriceConnector connector = new PriceConnector();

            #region CREATE
            var newPrice = new Price()
            {
                ArticleNumber = tmpArticle.ArticleNumber,
                PriceList     = tmpPriceList.Code,
                FromQuantity  = 1,
                PriceValue    = 12.5m
            };

            var createdPrice = connector.Create(newPrice);
            Assert.AreEqual(12.5m, createdPrice.PriceValue);

            #endregion CREATE

            #region UPDATE

            createdPrice.PriceValue = 15;

            var updatedPrice = connector.Update(createdPrice);
            Assert.AreEqual(15, updatedPrice.PriceValue);

            #endregion UPDATE

            #region READ / GET

            var retrievedPrice = connector.Get(createdPrice.PriceList, createdPrice.ArticleNumber, createdPrice.FromQuantity);
            Assert.AreEqual(15, retrievedPrice.PriceValue);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdPrice.PriceList, createdPrice.ArticleNumber, createdPrice.FromQuantity);

            Assert.ThrowsException <FortnoxApiException>(
                () => connector.Get(createdPrice.PriceList, createdPrice.ArticleNumber, createdPrice.FromQuantity),
                "Entity still exists after Delete!");

            #endregion DELETE

            #region Delete arranged resources
            new ArticleConnector().Delete(tmpArticle.ArticleNumber);
            #endregion Delete arranged resources
        }
Ejemplo n.º 2
0
        public void Test_PriceList_CRUD()
        {
            #region Arrange
            #endregion Arrange

            IPriceListConnector connector = new PriceListConnector();

            #region CREATE
            var newPriceList = new PriceList()
            {
                Code        = "TST_PR",
                Description = "TestPriceList",
                Comments    = "Some comments"
            };

            var alreadyExists = new PriceListConnector().Get("TST_PR") != null; //already created in previous test run

            var createdPriceList = alreadyExists ? connector.Update(newPriceList) : connector.Create(newPriceList);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("TestPriceList", createdPriceList.Description);

            #endregion CREATE

            #region UPDATE

            createdPriceList.Description = "UpdatedTestPriceList";

            var updatedPriceList = connector.Update(createdPriceList);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTestPriceList", updatedPriceList.Description);

            #endregion UPDATE

            #region READ / GET

            var retrievedPriceList = connector.Get(createdPriceList.Code);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTestPriceList", retrievedPriceList.Description);

            #endregion READ / GET

            #region DELETE
            //Not available
            #endregion DELETE

            #region Delete arranged resources
            //Add code to delete temporary resources
            #endregion Delete arranged resources
        }
Ejemplo n.º 3
0
        public void Test_Find()
        {
            IPriceListConnector connector = new PriceListConnector();

            var newPriceList = new PriceList()
            {
                Description = "TestPriceList",
                Comments    = "EntryForFindRequest"
            };

            for (var i = 0; i < 5; i++)
            {
                newPriceList.Code = "T" + i;
                if (connector.Get(newPriceList.Code) == null) //not exists
                {
                    connector.Create(newPriceList);
                }
                else
                {
                    connector.Update(newPriceList);
                }
                MyAssert.HasNoError(connector);
            }

            //Apply filter -> filter on Comments or Code not working
            //connector.Code = "t";
            //connector.Comments = "EntryForFindRequest";
            var fullCollection = connector.Find();

            MyAssert.HasNoError(connector);

            //Assert.AreEqual(5, fullCollection.TotalResources);
            //Assert.AreEqual(5, fullCollection.Entities.Count);

            Assert.AreEqual(5, fullCollection.Entities.Count(e => e.Comments == "EntryForFindRequest"));

            //Apply Limit
            connector.Search.Limit = 2;
            var limitedCollection = connector.Find();

            MyAssert.HasNoError(connector);

            //Assert.AreEqual(5, limitedCollection.TotalResources);
            Assert.AreEqual(2, limitedCollection.Entities.Count);
            //Assert.AreEqual(3, limitedCollection.TotalPages);
        }
Ejemplo n.º 4
0
        public void Test_PriceList_CRUD()
        {
            #region Arrange
            #endregion Arrange

            IPriceListConnector connector = new PriceListConnector();

            #region CREATE
            var newPriceList = new PriceList()
            {
                Code = TestUtils.RandomString().ToUpperInvariant(),
                Description = "TestPriceList",
                Comments = "Some comments"
            };

            var createdPriceList = connector.Create(newPriceList);
            Assert.AreEqual("TestPriceList", createdPriceList.Description);

            #endregion CREATE

            #region UPDATE

            createdPriceList.Description = "UpdatedTestPriceList";

            var updatedPriceList = connector.Update(createdPriceList); 
            Assert.AreEqual("UpdatedTestPriceList", updatedPriceList.Description);

            #endregion UPDATE

            #region READ / GET

            var retrievedPriceList = connector.Get(createdPriceList.Code);
            Assert.AreEqual("UpdatedTestPriceList", retrievedPriceList.Description);

            #endregion READ / GET

            #region DELETE
            //Not available
            #endregion DELETE

            #region Delete arranged resources
            //Add code to delete temporary resources
            #endregion Delete arranged resources
        }
Ejemplo n.º 5
0
        public void Test_Find()
        {
            Thread.Sleep(1000);
            var timeStamp = DateTime.Now;
            Thread.Sleep(1000);

            IPriceListConnector connector = new PriceListConnector();

            var newPriceList = new PriceList()
            {
                Description = "TestPriceList",
                Comments = "EntryForFindRequest"
            };

            for (var i = 0; i < 5; i++)
            {
                newPriceList.Code = TestUtils.RandomString().ToUpperInvariant();
                connector.Create(newPriceList);
            }

            var searchSettings = new PriceListSearch();
            searchSettings.LastModified = timeStamp;
            var fullCollection = connector.Find(searchSettings);

            Assert.AreEqual(5, fullCollection.TotalResources);
            Assert.AreEqual(5, fullCollection.Entities.Count);
            Assert.AreEqual(5, fullCollection.Entities.Count(e => e.Comments == "EntryForFindRequest"));

            //Apply Limit
            searchSettings.Limit = 2;
            var limitedCollection = connector.Find(searchSettings);

            //Assert.AreEqual(5, limitedCollection.TotalResources);
            Assert.AreEqual(2, limitedCollection.Entities.Count);
            //Assert.AreEqual(3, limitedCollection.TotalPages);
        }
Ejemplo n.º 6
0
        public void Test_Find()
        {
            var dateStamp = DateTime.Now;

            #region Arrange
            var tmpArticle = new ArticleConnector().Create(new Article()
            {
                Description = "TmpArticle", PurchasePrice = 10
            });
            var tmpPriceList = new PriceListConnector().Get("TST_PR");
            #endregion Arrange

            IPriceConnector connector = new PriceConnector();

            var newPrice = new Price()
            {
                ArticleNumber = tmpArticle.ArticleNumber,
                PriceList     = tmpPriceList.Code,
                PriceValue    = 100,
                FromQuantity  = 0
            };

            //Add entries
            for (var i = 0; i < 5; i++)
            {
                newPrice.PriceValue   -= 10;
                newPrice.FromQuantity += 10;
                connector.Create(newPrice);
            }

            var searchSettings = new PriceSearch();
            searchSettings.LastModified = dateStamp.AddSeconds(-1);
            var fullCollection = connector.Find(tmpPriceList.Code, tmpArticle.ArticleNumber, searchSettings);

            Assert.AreEqual(5 + 1, fullCollection.TotalResources);
            Assert.AreEqual(5 + 1, fullCollection.Entities.Count);
            Assert.AreEqual(1, fullCollection.TotalPages);

            Assert.AreEqual("TST_PR", fullCollection.Entities.First().PriceList);

            //Apply Limit
            searchSettings.Limit = 2;
            var limitedCollection = connector.Find(tmpPriceList.Code, tmpArticle.ArticleNumber, searchSettings);

            Assert.AreEqual(5 + 1, limitedCollection.TotalResources);
            Assert.AreEqual(2, limitedCollection.Entities.Count);
            Assert.AreEqual(3, limitedCollection.TotalPages);

            //Delete entries
            foreach (var entry in fullCollection.Entities)
            {
                if (entry.FromQuantity == 0)
                {
                    continue; //base price
                }
                connector.Delete(entry.PriceList, entry.ArticleNumber, entry.FromQuantity);
            }

            #region Delete arranged resources
            new ArticleConnector().Delete(tmpArticle.ArticleNumber);
            #endregion Delete arranged resources
        }
Ejemplo n.º 7
0
        public void Test_Find()
        {
            #region Arrange
            var tmpArticle = new ArticleConnector().Create(new Article()
            {
                Description = "TmpArticle", PurchasePrice = 10
            });
            var tmpPriceList = new PriceListConnector().Get("TST_PR") ?? new PriceListConnector().Create(new PriceList()
            {
                Code = "TST_PR", Description = "TmpPriceList"
            });
            #endregion Arrange

            IPriceConnector connector = new PriceConnector();

            var newPrice = new Price()
            {
                ArticleNumber = tmpArticle.ArticleNumber,
                PriceList     = tmpPriceList.Code,
                PriceValue    = 100,
                FromQuantity  = 0
            };
            connector.Create(newPrice);

            //Add entries
            for (var i = 0; i < 5; i++)
            {
                connector.Create(newPrice);

                newPrice.PriceValue   -= 10;
                newPrice.FromQuantity += 10;
            }

            var fullCollection = connector.Find(tmpPriceList.Code, tmpArticle.ArticleNumber);
            MyAssert.HasNoError(connector);

            Assert.AreEqual(5, fullCollection.TotalResources);
            Assert.AreEqual(5, fullCollection.Entities.Count);
            Assert.AreEqual(1, fullCollection.TotalPages);

            Assert.AreEqual("TST_PR", fullCollection.Entities.First().PriceList);

            //Apply Limit
            connector.Search.Limit = 2;
            var limitedCollection = connector.Find(tmpPriceList.Code, tmpArticle.ArticleNumber);
            MyAssert.HasNoError(connector);

            Assert.AreEqual(5, limitedCollection.TotalResources);
            Assert.AreEqual(2, limitedCollection.Entities.Count);
            Assert.AreEqual(3, limitedCollection.TotalPages);

            //Delete entries
            foreach (var entry in fullCollection.Entities)
            {
                connector.Delete(entry.PriceList, entry.ArticleNumber, entry.FromQuantity);
            }

            #region Delete arranged resources
            new ArticleConnector().Delete(tmpArticle.ArticleNumber);
            #endregion Delete arranged resources
        }