public void testBalanceCalculations() { Budgeteer.Account acct = new Budgeteer.Account(); acct.OpeningBalance = 100; acct.save(); Budgeteer.Transaction t1 = new Budgeteer.Transaction(); t1.Amount = 18.94; t1.SourceAccount = acct; t1.Payee = "HEB"; t1.save(); acct.Transactions.Add(t1); Assert.AreEqual(System.Math.Round(81.06, 2), acct.Balance); Budgeteer.Account destAcct = new Budgeteer.Account(); destAcct.OpeningBalance = 236.57; Budgeteer.Transaction t2 = new Budgeteer.Transaction(); t2.Amount = 12.45; t2.SourceAccount = acct; t2.DestinationAccount = destAcct; acct.Transactions.Add(t2); destAcct.Transactions.Add(t2); Assert.AreEqual(System.Math.Round(249.02, 2), destAcct.Balance); Assert.AreEqual(System.Math.Round(68.61, 2), acct.Balance); }
public void testSettingSourceAccount() { Budgeteer.Account acct1 = new Budgeteer.Account(); acct1.OpeningBalance = 300; acct1.Name = "test setting source account"; acct1.save(); Budgeteer.Transaction t1 = new Budgeteer.Transaction(); t1.Amount = 100; t1.Memo = "Cheese"; t1.Payee = "HEB"; t1.SourceAccount = acct1; t1.save(); acct1.reload(); Assert.AreEqual(200, acct1.Balance); Assert.AreEqual(acct1.Id, t1.SourceAccountId); }
public void testAccountPersistence() { Budgeteer.Account.ensureSchema(); Assert.IsTrue(System.IO.File.Exists("budgeteer.bdg")); Budgeteer.Account.Db.execute("DELETE FROM accounts;"); Budgeteer.Account acct1 = new Budgeteer.Account(); acct1.OpeningBalance = 0; Assert.IsTrue(acct1.save()); Budgeteer.Account.Db.close(); Budgeteer.Account acct2 = Budgeteer.Account.findByName(acct1.Name); Budgeteer.Account acct3 = Budgeteer.Account.findById(acct1.Id); Budgeteer.Account.Db.close(); Assert.IsNotNull(acct2); Assert.AreEqual(acct1, acct2); Assert.AreEqual(acct1, acct3); Assert.AreEqual(acct2, acct3); }
public void testReload() { Budgeteer.Account acct1 = new Budgeteer.Account(); acct1.Name = "Test reload!"; acct1.OpeningBalance = 345; acct1.save(); int id = acct1.Id; string name = acct1.Name; double openingBalance = acct1.OpeningBalance; int parentAccountId = acct1.ParentAccountId; acct1.Name = "this goes away when reloaded"; acct1.reload(); Assert.AreEqual(id, acct1.Id); Assert.AreEqual(name, acct1.Name); Assert.AreEqual(openingBalance, acct1.OpeningBalance); Assert.AreEqual(parentAccountId, acct1.ParentAccountId); }
public void testLoadingSubAccountsAndParentBalance() { Budgeteer.Account.Db.execute("DELETE FROM accounts;"); Budgeteer.Account parent = new Budgeteer.Account(); parent.OpeningBalance = 100; Assert.IsTrue(parent.save()); Budgeteer.Account[] childAccounts = new Budgeteer.Account[5]; for (int i = 0; i < 5; ++i) { childAccounts[i] = new Budgeteer.Account(); childAccounts[i].OpeningBalance = 100 * i; childAccounts[i].ParentAccount = parent; Assert.IsTrue(childAccounts[i].save()); } Assert.AreEqual(5, parent.SubAccounts.Count); Assert.AreEqual(1100, System.Math.Round(parent.Balance, 2)); }
public void testSettingParentAccountIdOrParentNullsOther() { Budgeteer.Account.ensureSchema(); Assert.IsTrue(System.IO.File.Exists("budgeteer.bdg")); Budgeteer.Account.Db.execute("DELETE FROM accounts;"); Budgeteer.Account parent = new Budgeteer.Account(); parent.OpeningBalance = 0; Assert.IsTrue(parent.save()); Budgeteer.Account child = new Budgeteer.Account(); child.OpeningBalance = 100; Assert.IsTrue(child.save()); Budgeteer.Account newParent = new Budgeteer.Account(); newParent.OpeningBalance = 200; Assert.IsTrue(newParent.save()); child.ParentAccount = parent; Assert.AreEqual(parent.Id, child.ParentAccountId); Assert.IsTrue(child.save()); child = Budgeteer.Account.findById(child.Id); Assert.AreEqual(parent, child.ParentAccount); child.ParentAccountId = newParent.Id; Assert.AreEqual(newParent, child.ParentAccount); }