public void Test_Contract_Find() { #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(); var newContract = new Contract() { CustomerNumber = tmpCustomer.CustomerNumber, ContractDate = new DateTime(2019, 1, 20), //"2019-01-20", Active = false, Comments = "TestContract", ContractLength = 4, Continuous = true, Currency = "SEK", Language = Language.English, 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, 01, 01), PeriodEnd = new DateTime(2020, 03, 01) }; for (var i = 0; i < 5; i++) { connector.Create(newContract); MyAssert.HasNoError(connector); } connector.Search.CustomerNumber = tmpCustomer.CustomerNumber; var contracts = connector.Find(); Assert.AreEqual(5, contracts.Entities.Count); Assert.AreEqual("INACTIVE", contracts.Entities.First().Status); }
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 }
public void Test_ContractAccrual_Find() { #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(); var marks = TestUtils.RandomString(); var newContractAccrual = new ContractAccrual() { Description = marks, 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 }, } }; for (var i = 0; i < 5; i++) { newContractAccrual.DocumentNumber = tmpContract.DocumentNumber; connector.Create(newContractAccrual); MyAssert.HasNoError(connector); var contractConnector = new ContractConnector(); tmpContract.DocumentNumber = null; tmpContract = contractConnector.Create(tmpContract); MyAssert.HasNoError(contractConnector); } var contractAccruals = connector.Find(); Assert.AreEqual(5, contractAccruals.Entities.Count(x => x.Description.StartsWith(marks))); foreach (var entry in contractAccruals.Entities.Where(x => x.Description.StartsWith(marks))) { connector.Delete(entry.DocumentNumber); MyAssert.HasNoError(connector); } #region Delete arranged resources new ArticleConnector().Delete(tmpArticle.ArticleNumber); new CustomerConnector().Delete(tmpCustomer.CustomerNumber); #endregion Delete arranged resources }
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); }