@Test public void shouldCreateImbalanceAccountOnDemand() { assertThat(mAccountsDbAdapter.getRecordsCount()).isEqualTo(0); Currency usd = Currency.getInstance("USD"); String imbalanceUID = mAccountsDbAdapter.getImbalanceAccountUID(usd); assertThat(imbalanceUID).isNull(); assertThat(mAccountsDbAdapter.getRecordsCount()).isEqualTo(0); imbalanceUID = mAccountsDbAdapter.getOrCreateImbalanceAccountUID(usd); assertThat(imbalanceUID).isNotNull().isNotEmpty(); assertThat(mAccountsDbAdapter.getRecordsCount()).isEqualTo(2); }
@Test public void shouldBalanceTransactionsOnSave() { Transaction transaction = new Transaction("Auto balance"); Split split = new Split( new Money(BigDecimal.TEN, Currency.getInstance(Money.DEFAULT_CURRENCY_CODE)), alphaAccount.getUID()); transaction.addSplit(split); mTransactionsDbAdapter.addRecord(transaction); Transaction trn = mTransactionsDbAdapter.getRecord(transaction.getUID()); assertThat(trn.getSplits()).hasSize(2); String imbalanceAccountUID = mAccountsDbAdapter.getImbalanceAccountUID( Currency.getInstance(Money.DEFAULT_CURRENCY_CODE)); assertThat(trn.getSplits()).extracting("mAccountUID").contains(imbalanceAccountUID); }