public void FormatAccounts_MarkAccounts_ChildAccountShouldHaveVisitedChildrenToBeIncluded() { Account account = new Account(); Account childAccount = new Account(account, "child"); account.AddAccount(childAccount); Account grandChildAccount = new Account(childAccount, "grand-child"); childAccount.AddAccount(grandChildAccount); FormatAccounts formatAccounts = CreateFormatAccounts(); var result = formatAccounts.MarkAccounts(account, false); Assert.AreEqual(0, result.Item1); result = formatAccounts.MarkAccounts(account, true); Assert.AreEqual(0, result.Item1); // once grandchild is marked as visited, it is counted by child account and the child is included - but only for NOT FLAT mode childAccount.XData.Visited = false; grandChildAccount.XData.Visited = true; result = formatAccounts.MarkAccounts(account, false); // flat = false Assert.AreEqual(1, result.Item1); // Last visited is grandchild childAccount.XData.Visited = false; grandChildAccount.XData.Visited = true; result = formatAccounts.MarkAccounts(account, true); // flat = true Assert.AreEqual(1, result.Item1); // last visited is child }
public void FormatAccounts_MarkAccounts_IgnoresRootAccount() { Account account = new Account(null, "root-account-does-not-have-a-parent"); FormatAccounts formatAccounts = CreateFormatAccounts(); var result = formatAccounts.MarkAccounts(account, false); // "flat"=false Assert.AreEqual(0, result.Item1); Assert.AreEqual(0, result.Item2); result = formatAccounts.MarkAccounts(account, true); // "flat"=true Assert.AreEqual(0, result.Item1); Assert.AreEqual(0, result.Item2); }
public void FormatAccounts_MarkAccounts_ChildAccountShouldBeVisitedToBeIncluded() { Account account = new Account(); Account childAccount = new Account(account, "child"); account.AddAccount(childAccount); FormatAccounts formatAccounts = CreateFormatAccounts(); var result = formatAccounts.MarkAccounts(account, false); Assert.AreEqual(0, result.Item1); childAccount.XData.Visited = true; result = formatAccounts.MarkAccounts(account, false); Assert.AreEqual(1, result.Item1); }