Exemplo n.º 1
0
        public void TestContractAccrural()
        {
            var connector = new ContractAccrualConnector();

            connector.AccessToken  = at;
            connector.ClientSecret = cs;

            // test cost account
            var contract = connector.Get("3");

            Assert.IsFalse(connector.HasError);
            Assert.IsTrue(contract.CostAccount == "3990");

            contract.CostAccount = "3991";
            contract             = connector.Update(contract);
            Assert.IsFalse(connector.HasError);
            Assert.IsTrue(contract.CostAccount == "3991");

            contract.CostAccount = "3990";
            contract             = connector.Update(contract);
            Assert.IsFalse(connector.HasError);
            Assert.IsTrue(contract.CostAccount == "3990");

            // test rows
            var row = new InvoiceAccrualRow();

            row.Account = "2990";
            row.Debit   = "100";
            contract.AccrualRows.Add(row);

            row         = new InvoiceAccrualRow();
            row.Account = "3990";
            row.Credit  = "100";
            contract.AccrualRows.Add(row);

            contract = connector.Update(contract);
            Assert.IsFalse(connector.HasError);
            Assert.IsTrue(contract.AccrualRows.Count == 4);

            contract.AccrualRows[2] = null;
            contract.AccrualRows[3] = null;

            contract = connector.Update(contract);
            Assert.IsFalse(connector.HasError);
            Assert.IsTrue(contract.AccrualRows.Count == 2);
        }
        public void Test_ContractAccrual_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
            });
            var tmpContract = new ContractConnector().Create(new Contract()
            {
                CustomerNumber  = tmpCustomer.CustomerNumber,
                ContractDate    = new DateTime(2020, 1, 1),
                ContractLength  = 3,
                InvoiceInterval = 3,
                Comments        = "TestContract",
                Continuous      = true,
                Currency        = "SEK",
                VATIncluded     = false,
                Language        = Language.English,
                InvoiceRows     = new List <ContractInvoiceRow>()
                {
                    new ContractInvoiceRow()
                    {
                        ArticleNumber = tmpArticle.ArticleNumber, DeliveredQuantity = 6, Price = 1000, VAT = 0
                    }
                },
                PeriodStart = new DateTime(2020, 01, 1),
                PeriodEnd   = new DateTime(2020, 03, 20)
            });

            #endregion Arrange

            IContractAccrualConnector connector = new ContractAccrualConnector();

            #region CREATE

            var newContractAccrual = new ContractAccrual()
            {
                DocumentNumber = tmpContract.DocumentNumber,
                Description    = "TestContractAccrual",
                Total          = 6000,
                AccrualAccount = 2990,
                CostAccount    = 3990,
                VATIncluded    = false,
                AccrualRows    = new List <ContractAccrualRow>()
                {
                    new ContractAccrualRow()
                    {
                        Account = 2990, Credit = 0, Debit = 2000
                    },
                    new ContractAccrualRow()
                    {
                        Account = 3990, Credit = 2000, Debit = 0
                    },
                }
            };

            var createdContractAccrual = connector.Create(newContractAccrual);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("TestContractAccrual", createdContractAccrual.Description);

            #endregion CREATE

            #region UPDATE

            createdContractAccrual.Description = "UpdatedTestContractAccrual";

            var updatedContractAccrual = connector.Update(createdContractAccrual);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTestContractAccrual", updatedContractAccrual.Description);

            #endregion UPDATE

            #region READ / GET

            var retrievedContractAccrual = connector.Get(createdContractAccrual.DocumentNumber);
            MyAssert.HasNoError(connector);
            Assert.AreEqual("UpdatedTestContractAccrual", retrievedContractAccrual.Description);

            #endregion READ / GET

            #region DELETE

            connector.Delete(createdContractAccrual.DocumentNumber);
            MyAssert.HasNoError(connector);

            retrievedContractAccrual = connector.Get(createdContractAccrual.DocumentNumber);
            Assert.AreEqual(null, retrievedContractAccrual, "Entity still exists after Delete!");

            #endregion DELETE

            #region Delete arranged resources

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

            #endregion Delete arranged resources
        }