public LedgerBook Build() { var book = new LedgerBook(new ReconciliationBuilder(new FakeLogger())) { Name = Name, Modified = Modified, StorageKey = StorageKey }; book.SetReconciliations(this.reconciliations); if (book.Reconciliations.None()) { this.ledgerBuckets.ForEach(l => book.AddLedger(l)); } LedgerBookTestData.Finalise(book, this.lockWhenFinished); return(book); }
/// <summary> /// Same as Test Data 2, but with multiple Bank Balances for the latest entry. /// A Test LedgerBook with data populated for June July and August 2013. Also includes some debit transactions. /// August transactions include some balance adjustments. /// </summary> public static LedgerBook TestData4() { var book = new LedgerBook(new ReconciliationBuilder(new FakeLogger())) { Name = "Test Data 4 Book", Modified = new DateTime(2013, 12, 16), StorageKey = "C:\\Folder\\book1.xml" }; var list = new List <LedgerEntryLine> { CreateLine(new DateTime(2013, 06, 15), new[] { new BankBalance(StatementModelTestData.ChequeAccount, 2500) }, "Lorem ipsum").SetEntriesForTesting( new List <LedgerEntry> { CreateLedgerEntry(HairLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new BudgetCreditLedgerTransaction { Amount = 55M, Narrative = "Budgeted amount" }, new CreditLedgerTransaction { Amount = -45M, Narrative = "Hair cut" } }), CreateLedgerEntry(PowerLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new BudgetCreditLedgerTransaction { Amount = 140M, Narrative = "Budgeted amount" }, new CreditLedgerTransaction { Amount = -123.56M, Narrative = "Power bill" } }), CreateLedgerEntry(PhoneLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new BudgetCreditLedgerTransaction { Amount = 95M, Narrative = "Budgeted amount" }, new CreditLedgerTransaction { Amount = -86.43M, Narrative = "Pay phones" } }) }) }; LedgerEntry previousHairEntry = list.Last().Entries.Single(e => e.LedgerBucket.BudgetBucket.Code == TestDataConstants.HairBucketCode); LedgerEntry previousPowerEntry = list.Last().Entries.Single(e => e.LedgerBucket.BudgetBucket.Code == TestDataConstants.PowerBucketCode); LedgerEntry previousPhoneEntry = list.Last().Entries.Single(e => e.LedgerBucket.BudgetBucket.Code == TestDataConstants.PhoneBucketCode); list.Add( CreateLine(new DateTime(2013, 07, 15), new[] { new BankBalance(StatementModelTestData.ChequeAccount, 3700) }, "dolor amet set").SetEntriesForTesting( new List <LedgerEntry> { CreateLedgerEntry(HairLedger, previousHairEntry.Balance).SetTransactionsForTesting( new List <LedgerTransaction> { new BudgetCreditLedgerTransaction { Amount = 55M, Narrative = "Budgeted amount" } }), CreateLedgerEntry(PowerLedger, previousPowerEntry.Balance).SetTransactionsForTesting( new List <LedgerTransaction> { new BudgetCreditLedgerTransaction { Amount = 140M, Narrative = "Budgeted amount" }, new CreditLedgerTransaction { Amount = -145.56M, Narrative = "Power bill" } }), CreateLedgerEntry(PhoneLedger, previousPhoneEntry.Balance).SetTransactionsForTesting( new List <LedgerTransaction> { new BudgetCreditLedgerTransaction { Amount = 95M, Narrative = "Budgeted amount" }, new CreditLedgerTransaction { Amount = -66.43M, Narrative = "Pay phones" } }) })); previousHairEntry = list.Last().Entries.Single(e => e.LedgerBucket.BudgetBucket.Code == TestDataConstants.HairBucketCode); previousPowerEntry = list.Last().Entries.Single(e => e.LedgerBucket.BudgetBucket.Code == TestDataConstants.PowerBucketCode); previousPhoneEntry = list.Last().Entries.Single(e => e.LedgerBucket.BudgetBucket.Code == TestDataConstants.PhoneBucketCode); LedgerEntryLine line = CreateLine( new DateTime(2013, 08, 15), new[] { new BankBalance(StatementModelTestData.ChequeAccount, 2750), new BankBalance(StatementModelTestData.SavingsAccount, 200) }, "The quick brown fox jumped over the lazy dog").SetEntriesForTesting( new List <LedgerEntry> { CreateLedgerEntry(HairLedger, previousHairEntry.Balance).SetTransactionsForTesting( new List <LedgerTransaction> { new BudgetCreditLedgerTransaction { Amount = 55M, Narrative = "Budgeted amount" } }), CreateLedgerEntry(PowerLedger, previousPowerEntry.Balance).SetTransactionsForTesting( new List <LedgerTransaction> { new BudgetCreditLedgerTransaction { Amount = 140M, Narrative = "Budgeted amount" }, new CreditLedgerTransaction { Amount = -98.56M, Narrative = "Power bill" } }), CreateLedgerEntry(PhoneLedger, previousPhoneEntry.Balance).SetTransactionsForTesting( new List <LedgerTransaction> { new BudgetCreditLedgerTransaction { Amount = 95M, Narrative = "Budgeted amount" }, new CreditLedgerTransaction { Amount = -67.43M, Narrative = "Pay phones" } }) }); line.BalanceAdjustment(-550, "Credit card payment yet to go out.", StatementModelTestData.ChequeAccount); list.Add(line); book.SetReconciliations(list); Finalise(book); return(book); }
/// <summary> /// A Test LedgerBook with data populated for November 2013, last date 15/11/13. /// This was used to seed the actual ledger I use for the first time. /// </summary> public static LedgerBook TestData3() { var book = new LedgerBook(new ReconciliationBuilder(new FakeLogger())) { Name = "Smith Budget 2014", Modified = new DateTime(2013, 12, 22), StorageKey = @"C:\Foo\SmithLedger2014.xml" }; var list = new List <LedgerEntryLine> { CreateLine(new DateTime(2013, 11, 15), new[] { new BankBalance(StatementModelTestData.ChequeAccount, 10738) }, "Opening entries").SetEntriesForTesting( new List <LedgerEntry> { CreateLedgerEntry(RatesLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 573M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(PowerLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 200M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(PhoneLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 215M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(WaterLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 50M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(HouseInsLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 100M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(CarInsLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 421M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(LifeInsLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 1626M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(CarMtcLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 163M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(RegoLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 434.73M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(HairLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 105M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(ClothesLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 403.56M, Narrative = "Opening ledger balance" } }), CreateLedgerEntry(DocLedger).SetTransactionsForTesting( new List <LedgerTransaction> { new CreditLedgerTransaction { Amount = 292.41M, Narrative = "Opening ledger balance" } }) }) }; book.SetReconciliations(list); Finalise(book); return(book); }