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); }
public void FormatAccounts_PostAccount_PrintsToReportOutputSteam() { Account account = new Account(null, "root-account"); account.XData.ToDisplay = true; Report report = new Report(new Session()); StringWriter output = new StringWriter(); report.OutputStream = output; FormatAccounts formatAccounts = new FormatAccounts(report, "some-format-string"); int result = formatAccounts.PostAccount(account, false); string outString = output.ToString(); Assert.AreEqual(1, result); Assert.AreEqual("some-format-string", outString); }