@Test public void testGetBalanceDate() { try { Document d = ModelFactory.createDocument(); AccountType at = d.getAccountType("Cash"); Account a = ModelFactory.createAccount("Test", at); d.addAccount(a); d.addTransaction( ModelFactory.createTransaction( DateUtil.getDate(2007, Calendar.AUGUST, 1), "Test 1", 100, a, d.getBudgetCategory("Groceries"))); d.addTransaction( ModelFactory.createTransaction( DateUtil.getDate(2007, Calendar.AUGUST, 5), "Test 2", 100, a, d.getBudgetCategory("Groceries"))); d.addTransaction( ModelFactory.createTransaction( DateUtil.getDate(2007, Calendar.AUGUST, 10), "Test 3", -100, a, d.getBudgetCategory("Groceries"))); d.addTransaction( ModelFactory.createTransaction( DateUtil.getDate(2007, Calendar.SEPTEMBER, 1), "Test 4", -100, a, d.getBudgetCategory("Groceries"))); d.addTransaction( ModelFactory.createTransaction( DateUtil.getDate(2007, Calendar.SEPTEMBER, 2), "Test 5", -100, a, d.getBudgetCategory("Groceries"))); d.updateAllBalances(); Object[][] tests = { {DateUtil.getDate(2007, Calendar.JULY, 30), 0l}, {DateUtil.getDate(2007, Calendar.AUGUST, 1), -100l}, {DateUtil.getDate(2007, Calendar.AUGUST, 2), -100l}, {DateUtil.getDate(2007, Calendar.AUGUST, 4), -100l}, {DateUtil.getDate(2007, Calendar.AUGUST, 5), -200l}, {DateUtil.getDate(2007, Calendar.AUGUST, 6), -200l}, {DateUtil.getDate(2007, Calendar.AUGUST, 30), -100l}, {DateUtil.getDate(2007, Calendar.SEPTEMBER, 3), 100l} }; for (Object[] test : tests) { assertEquals((Long) test[1], (Long) a.getBalance((Date) test[0])); } } catch (Exception e) { fail("Exception: " + e); } }