public void TestInsertAndGet() { TransactionCategoryDto dto = this.GetNewTransactionCategory(AccountType.Income, "For Testing Insert And Get"); CrudProxy proxy = new TransactionCategoryProxy(); proxy.Insert(dto); Assert.IsTrue(dto.Uid > 0, "Uid must be > 0 after insert."); TransactionCategoryDto fromOla = (TransactionCategoryDto) proxy.GetByUid(dto.Uid); AssertEqual(dto, fromOla, false); Assert.AreEqual(fromOla.Level, Constants.AccountLevel.Detail); }
public void TestDelete() { CrudProxy proxy = new TransactionCategoryProxy(); TransactionCategoryDto dto = this.GetNewTransactionCategory(AccountType.Liability, "TestDelete"); proxy.Insert(dto); proxy.DeleteByUid(dto.Uid); try { proxy.GetByUid(dto.Uid); throw new Exception("Exception expected."); } catch(RestException ex) { Assert.AreEqual("RecordNotFoundException", ex.Type, "Incorrect error type."); } }
public void TestInsertAndGetDetailAccountWithHeaderAccountAssigned() { //set up header account first. TransactionCategoryDto dto = this.GetNewTransactionCategory(AccountType.Expense, "Header Account For Detail"); dto.Level = Constants.AccountLevel.Header; dto.DefaultTaxCode = null; CrudProxy proxy = new TransactionCategoryProxy(); proxy.Insert(dto); Assert.IsTrue(dto.Uid > 0, "Uid must be > 0 after insert."); var headerAccountUid = dto.Uid; //set up a detail account with the above header account assigned to it. dto = GetNewTransactionCategory(AccountType.Expense, "Detail with Header"); dto.Level = Constants.AccountLevel.Detail; dto.HeaderAccountUid = headerAccountUid; proxy.Insert(dto); TransactionCategoryDto fromOla = (TransactionCategoryDto)proxy.GetByUid(dto.Uid); AssertEqual(dto, fromOla); }
public void TestInsertAndGetHeaderAccount() { TransactionCategoryDto dto = this.GetNewTransactionCategory(AccountType.Income, "For Testing Insert And Get Header"); dto.Level = Constants.AccountLevel.Header; dto.DefaultTaxCode = null; CrudProxy proxy = new TransactionCategoryProxy(); proxy.Insert(dto); Assert.IsTrue(dto.Uid > 0, "Uid must be > 0 after insert."); TransactionCategoryDto fromOla = (TransactionCategoryDto)proxy.GetByUid(dto.Uid); AssertEqual(dto, fromOla); }
public void TestUpdateResultingInRecordHasChangedException() { TransactionCategoryDto dto = this.GetNewTransactionCategory(AccountType.Income, "For TestUpdateResultingInRecordHasChangedException"); CrudProxy proxy = new TransactionCategoryProxy(); proxy.Insert(dto); int uid = dto.Uid; string lastUpdatedUid = dto.LastUpdatedUid; dto.Name = this.TestUid + "For TestUpdateSyncCheckError - Updated"; proxy.Update(dto); // // Ensure last updated uid is different // Assert.IsTrue(lastUpdatedUid != dto.LastUpdatedUid, "The LastUpdatedUid should have been updated (1)."); TransactionCategoryDto dto2 = (TransactionCategoryDto) proxy.GetByUid(dto.Uid); Assert.IsTrue(lastUpdatedUid != dto.LastUpdatedUid, "The LastUpdatedUid should have been updated (2)."); dto.LastUpdatedUid = lastUpdatedUid; dto.Type = AccountType.OtherIncome; try { proxy.Update(dto); throw new Exception("The expected exception is not thrown."); } catch(RestException ex) { // This was expected. Assert.AreEqual("RecordHasChangedException", ex.Type); } }
public void TestInsertReturnsError() { CrudProxy proxy = new TransactionCategoryProxy(); TransactionCategoryDto dto = this.GetNewTransactionCategory(AccountType.Asset, "For TestInsertReturnsError"); proxy.Insert(dto); // // Set the uid to 0 - and re-insert // dto.Uid = 0; try { proxy.Insert(dto); throw new Exception("Exception expected."); } catch(RestException ex) { Assert.AreEqual("DuplicateNameException", ex.Type, "Incorrect error type."); } }
public void TestInsertAndGetLoanForBackwardCompatibility() { TransactionCategoryDto dto = this.GetNewTransactionCategory("Loan", "For Testing Insert And Get Loan Account"); CrudProxy proxy = new TransactionCategoryProxy(); proxy.Insert(dto); dto.Type = AccountType.Liability; Assert.IsTrue(dto.Uid > 0, "Uid must be > 0 after insert."); TransactionCategoryDto fromOla = (TransactionCategoryDto)proxy.GetByUid(dto.Uid); AssertEqual(dto, fromOla, false); Assert.AreEqual(fromOla.Level, Constants.AccountLevel.Detail); }