Пример #1
0
        public void createSubAccount()
        {
            Budgeteer.Account.Db.execute("DELETE FROM accounts;");
            Budgeteer.Account parent = new Budgeteer.Account();
            parent.OpeningBalance = 0;
            Budgeteer.Account child = new Budgeteer.Account();
            child.OpeningBalance = 0;
            Budgeteer.Account grandchild = new Budgeteer.Account();
            grandchild.OpeningBalance = 0;

            parent.addEnvelope(child);
            child.addEnvelope(grandchild);

            // Test structure
            Assert.AreEqual(parent.Name, child.ParentAccount.Name);
            Assert.AreEqual(parent.Name, grandchild.ParentAccount.ParentAccount.Name);
            Assert.AreEqual(child.Name, grandchild.ParentAccount.Name);
            
            // Also test implementation of Equals
            Assert.AreEqual(parent, child.ParentAccount);
            Assert.AreEqual(child, grandchild.ParentAccount);
            Assert.IsTrue(parent.SubAccounts.Contains(child));
            Assert.IsTrue(child.SubAccounts.Contains(grandchild));

            // Test each parent can reference its children
            Assert.AreEqual(1, parent.SubAccounts.Count);
            Assert.AreEqual(1, child.SubAccounts.Count);
            Assert.AreEqual(0, grandchild.SubAccounts.Count);
        }