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_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); }