Esempio n. 1
0
        public void Test_Contract_CRUD()
        {
            #region Arrange
            var tmpCustomer = new CustomerConnector().Create(new Customer()
            {
                Name = "TmpCustomer", CountryCode = "SE", City = "Testopolis"
            });
            var tmpArticle = new ArticleConnector().Create(new Article()
            {
                Description = "TmpArticle", Type = ArticleType.Stock, PurchasePrice = 100
            });
            #endregion Arrange

            IContractConnector connector = new ContractConnector();

            #region CREATE
            var newContract = new Contract()
            {
                CustomerNumber = tmpCustomer.CustomerNumber,
                ContractDate   = new DateTime(2020, 1, 20), //"2019-01-20",
                Active         = false,
                Comments       = "TestContract",
                ContractLength = 4,
                Continuous     = true,
                Currency       = "SEK",
                Language       = Language.English,
                YourReference  = "SDK Test",
                InvoiceRows    = new List <ContractInvoiceRow>()
                {
                    new ContractInvoiceRow()
                    {
                        ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 10
                    },
                    new ContractInvoiceRow()
                    {
                        ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 20
                    },
                    new ContractInvoiceRow()
                    {
                        ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 15
                    }
                },
                PeriodStart = new DateTime(2020, 05, 01),
                PeriodEnd   = new DateTime(2020, 08, 01)
            };

            var createdContract = connector.Create(newContract);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("TestContract", createdContract.Comments);

            #endregion CREATE

            #region UPDATE

            createdContract.Comments = "UpdatedTestContract";

            var updatedContract = connector.Update(createdContract);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTestContract", updatedContract.Comments);

            #endregion UPDATE

            #region READ / GET

            var retrievedContract = connector.Get(createdContract.DocumentNumber);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTestContract", retrievedContract.Comments);

            #endregion READ / GET

            #region DELETE
            // Not available
            #endregion DELETE

            #region Delete arranged resources
            new CustomerConnector().Delete(tmpCustomer.CustomerNumber);
            new ArticleConnector().Delete(tmpArticle.ArticleNumber);
            #endregion Delete arranged resources
        }
Esempio n. 2
0
        public void Test_Contract_CRUD()
        {
            //Arrange
            var tmpCustomer = new CustomerConnector().Create(new Customer()
            {
                Name = "TmpCustomer", CountryCode = "SE", City = "Testopolis"
            });
            var tmpArticle = new ArticleConnector().Create(new Article()
            {
                Description = "TmpArticle", Type = ArticleType.STOCK, PurchasePrice = 100
            });

            //Act
            var connector = new ContractConnector();

            #region CREATE
            var newContract = new Contract()
            {
                CustomerNumber = tmpCustomer.CustomerNumber,
                ContractDate   = new DateTime(2019, 1, 20).ToString(APIConstants.DateFormat), //"2019-01-20",
                Active         = false,
                Comments       = "Contract used in tests",
                ContractLength = 4,
                Continuous     = true,
                Currency       = "SEK",
                Language       = "EN",
                InvoiceRows    = new List <InvoiceRow>()
                {
                    new InvoiceRow()
                    {
                        ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 10
                    },
                    new InvoiceRow()
                    {
                        ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 20
                    },
                    new InvoiceRow()
                    {
                        ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 15
                    }
                },
                PeriodStart = "2020-01-01",
                PeriodEnd   = "2020-03-01"
            };

            var createdContract = connector.Create(newContract);
            MyAssert.HasNoError(connector);
            Assert.AreEqual(createdContract.CustomerName, "TmpCustomer");
            Assert.AreEqual(3, createdContract.InvoiceRows.Count);

            #endregion CREATE

            #region UPDATE

            createdContract.Comments = "Updated Comments";

            var updatedContract = connector.Update(createdContract);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("Updated Comments", updatedContract.Comments);

            #endregion UPDATE

            #region READ / GET

            var retrievedContract = connector.Get(createdContract.DocumentNumber);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("Updated Comments", retrievedContract.Comments);

            #endregion READ / GET

            #region DELETE
            //Contract does not provide DELETE method, but can be canceled
            connector.Finish(createdContract.DocumentNumber);
            MyAssert.HasNoError(connector);

            retrievedContract = connector.Get(createdContract.DocumentNumber);
            //Assert.AreEqual(true, retrievedContract.Finished);

            #endregion DELETE

            //Clean
            new CustomerConnector().Delete(tmpCustomer.CustomerNumber);
            new ArticleConnector().Delete(tmpArticle.ArticleNumber);
        }