public void test_should_calculate_correct_report_with_one_currency_2() { // A = +6500 // - A1 +4000 = +5000 // -- AA1 +1000 // - A2 +1500 // B TransactionBuilder.withDb(db) .account(a1) .category(categories.get("A1")) .dateTime(DateTime.today()) .amount(4000) .create(); TransactionBuilder.withDb(db) .account(a1) .category(categories.get("AA1")) .dateTime(DateTime.today()) .amount(1000) .create(); TransactionBuilder.withDb(db) .account(a1) .category(categories.get("A2")) .dateTime(DateTime.today()) .amount(1500) .create(); List<GraphUnit> units = assertReportReturnsData(); assertUnit(units.get(0), "A", 0, 6500); assertUnit(units.get(1), "A1", 0, 5000); assertUnit(units.get(2), "AA1", 0, 1000); assertUnit(units.get(3), "A2", 0, 1500); }
public void test_should_calculate_correct_report_with_one_currency() { // A -3400 // +250 // A2 -2200 // +250 // A1 -1100 TransactionBuilder.withDb(db) .account(a1) .category(categories.get("A")) .dateTime(DateTime.today()) .amount(-100) .create(); TransactionBuilder.withDb(db) .account(a1) .category(categories.get("A1")) .dateTime(DateTime.today()) .amount(-100) .create(); TransactionBuilder.withDb(db) .account(a1) .category(categories.get("A2")) .dateTime(DateTime.today()) .amount(250) .create(); TransactionBuilder.withDb(db) .account(a1) .category(categories.get("B")) .dateTime(DateTime.today()) .amount(500) .create(); TransactionBuilder.withDb(db) .account(a1) .dateTime(DateTime.today()) .amount(-5000) .withSplit(categories.get("A1"), -1000) .withSplit(categories.get("A2"), -2200) .withSplit(categories.get("B"), -1800) .create(); List<GraphUnit> units = assertReportReturnsData(); assertName(units.get(0), "A"); assertExpense(units.get(0), -3400); assertIncome(units.get(0), 250); assertName(units.get(1), "A2"); assertExpense(units.get(1), -2200); assertIncome(units.get(1), 250); assertName(units.get(2), "A1"); assertExpense(units.get(2), -1100); }
public void test_should_calculate_correct_report_with_multiple_currencies_2() { RateBuilder.withDb(db).at(DateTime.today()).from(c2).to(c1).rate(0.1f).create(); TransactionBuilder.withDb(db) .account(a1) .category(categories.get("A")) .dateTime(DateTime.today()) .amount(-100) .create(); TransactionBuilder.withDb(db) .account(a1) .category(categories.get("A1")) .dateTime(DateTime.today()) .amount(-100) .create(); TransactionBuilder.withDb(db) .account(a3) .category(categories.get("A2")) .dateTime(DateTime.today()) .amount(250) .create(); TransactionBuilder.withDb(db) .account(a1) .category(categories.get("B")) .dateTime(DateTime.today()) .amount(500) .create(); TransactionBuilder.withDb(db) .account(a3) .dateTime(DateTime.today()) .amount(-5000) .withSplit(categories.get("A1"), -1000) .withSplit(categories.get("A2"), -2200) .withSplit(categories.get("B"), -1800) .create(); List<GraphUnit> units = assertReportReturnsData(); assertEquals(3, units.size()); assertUnit(units.get(0), "A", -520, 25); assertUnit(units.get(1), "A2", -220, 25); assertUnit(units.get(2), "A1", -200, 0); }
public void test_should_calculate_correct_report_with_multiple_currencies_1() { // A -120$ // -100$$ RateBuilder.withDb(db).at(DateTime.today()).from(c2).to(c1).rate(0.1f).create(); TransactionBuilder.withDb(db) .account(a1) .category(categories.get("A")) .dateTime(DateTime.today()) .amount(-120) .create(); TransactionBuilder.withDb(db) .account(a3) .category(categories.get("A")) .dateTime(DateTime.today()) .amount(-100) .create(); List<GraphUnit> units = assertReportReturnsData(); assertName(units.get(0), "A"); assertExpense(units.get(0), -130); assertIncome(units.get(0), 0); }