public void test_should_include_transfer_splits_into_blotter_for_account() { // regular transactions and transfers TransactionBuilder.withDb(db).dateTime(date(2012, 2, 8)).account(a1).amount(1000).create(); TransactionBuilder.withDb(db).dateTime(date(2012, 2, 8)).account(a2).amount(200).create(); assertAccountBlotter(a1, 1000); assertAccountBlotter(a2, 200); assertAccountBlotterTotal(a1, date(2012, 2, 1), date(2012, 2, 7), 0); assertAccountBlotterTotal(a1, date(2012, 2, 1), date(2012, 2, 8), 1000); assertAccountBlotterTotal(a2, date(2012, 2, 8), date(2012, 2, 9), 200); // regular transfer TransferBuilder.withDb(db) .dateTime(date(2012, 2, 9)) .fromAccount(a1) .fromAmount(-100) .toAccount(a2) .toAmount(50) .create(); assertAccountBlotter(a1, -100, 1000); assertAccountBlotter(a2, 50, 200); assertAccountBlotterTotal(a1, date(2012, 2, 1), date(2012, 2, 9), 900); assertAccountBlotterTotal(a2, date(2012, 2, 8), date(2012, 2, 9), 250); // regular split TransactionBuilder.withDb(db) .dateTime(date(2012, 2, 10)) .account(a1) .amount(-500) .withSplit(categoriesMap.get("A1"), -200) .withSplit(categoriesMap.get("A1"), -300) .create(); assertAccountBlotter(a1, -500, -100, 1000); assertAccountBlotter(a2, 50, 200); assertAccountBlotterTotal(a1, date(2012, 2, 1), date(2012, 2, 10), 400); assertAccountBlotterTotal(a1, date(2012, 2, 9), date(2012, 2, 10), -600); assertAccountBlotterTotal(a2, date(2012, 2, 1), date(2012, 2, 9), 250); // transfer split TransactionBuilder.withDb(db) .dateTime(date(2012, 2, 11)) .account(a2) .amount(-120) .withSplit(categoriesMap.get("B"), -20) .withTransferSplit(a1, -100, 200) .create(); assertAccountBlotter(a1, 200, -500, -100, 1000); assertAccountBlotter(a2, -120, 50, 200); assertAccountBlotterTotal(a1, date(2012, 2, 1), date(2012, 2, 12), 600); assertAccountBlotterTotal(a2, date(2012, 2, 1), date(2012, 2, 12), 130); }
public void test_should_verify_running_balance_on_blotter_for_account() { // regular transactions and transfers TransactionBuilder.withDb(db).account(a1).amount(1000).create(); TransactionBuilder.withDb(db).account(a2).amount(200).create(); assertRunningBalance(a1, 1000); assertRunningBalance(a2, 200); assertTotals(1000, 200); // regular transfer TransferBuilder.withDb(db).fromAccount(a1).fromAmount(-100).toAccount(a2).toAmount(50).create(); assertRunningBalance(a1, 900, 1000); assertRunningBalance(a2, 250, 200); assertTotals(900, 250); // regular split TransactionBuilder.withDb(db) .account(a1) .amount(-500) .withSplit(categoriesMap.get("A1"), -200) .withSplit(categoriesMap.get("A1"), -300) .create(); assertRunningBalance(a1, 400, 900, 1000); assertRunningBalance(a2, 250, 200); assertTotals(400, 250); // transfer split TransactionBuilder.withDb(db) .account(a2) .amount(-120) .withSplit(categoriesMap.get("B"), -20) .withTransferSplit(a1, -100, 200) .create(); assertRunningBalance(a1, 600, 400, 900, 1000); assertRunningBalance(a2, 130, 250, 200); assertTotals(600, 130); }