protected static Zonky harmlessZonky(final int availableBalance) { final Zonky zonky = mock(Zonky.class); final BigDecimal balance = BigDecimal.valueOf(availableBalance); when(zonky.getWallet()).thenReturn(new Wallet(1, 2, balance, balance)); when(zonky.getRestrictions()).thenReturn(new Restrictions(true)); when(zonky.getBlockedAmounts()).thenAnswer(i -> Stream.empty()); when(zonky.getStatistics()).thenReturn(Statistics.empty()); when(zonky.getDevelopments(anyInt())).thenAnswer(i -> Stream.empty()); return zonky; }
@Override public BigDecimal getBalance() { final RemoteData data = getRemotePortfolio(); final BigDecimal balance = data.getWallet().getAvailableBalance(); final BigDecimal allBlocked = sum(syntheticByLoanId.get().values()); final BigDecimal result = balance.subtract(allBlocked); LOGGER.debug("Balance: {} CZK available, {} CZK synthetic, {} CZK total.", balance, allBlocked, result); return result; }
public static RemotePortfolio mockPortfolio(final Zonky zonky) { final AtomicReference<BigDecimal> change = new AtomicReference<>(BigDecimal.ZERO); final RemotePortfolio p = mock(RemotePortfolio.class); doAnswer(i -> { final BigDecimal amount = i.getArgument(2); change.updateAndGet(old -> old.add(amount)); return null; }).when(p).simulateCharge(anyInt(), any(), any()); final Supplier<BigDecimal> balance = () -> zonky.getWallet().getBalance().subtract(change.get()); when(p.getBalance()).thenAnswer(i -> balance.get()); when(p.getOverview()).thenAnswer(i -> mockPortfolioOverview(balance.get().intValue())); return p; }
protected static Zonky harmlessZonky(final int availableBalance) { final Zonky zonky = mock(Zonky.class); final BigDecimal balance = BigDecimal.valueOf(availableBalance); when(zonky.getWallet()).thenReturn(new Wallet(1, 2, balance, balance)); when(zonky.getRestrictions()).thenReturn(new Restrictions(true)); when(zonky.getBlockedAmounts()).thenAnswer(i -> Stream.empty()); when(zonky.getStatistics()).thenReturn(Statistics.empty()); when(zonky.getDevelopments(anyInt())).thenAnswer(i -> Stream.empty()); return zonky; }
public static RemotePortfolio mockPortfolio(final Zonky zonky) { final AtomicReference<BigDecimal> change = new AtomicReference<>(BigDecimal.ZERO); final RemotePortfolio p = mock(RemotePortfolio.class); doAnswer(i -> { final BigDecimal amount = i.getArgument(2); change.updateAndGet(old -> old.add(amount)); return null; }).when(p).simulateCharge(anyInt(), any(), any()); final Supplier<BigDecimal> balance = () -> zonky.getWallet().getBalance().subtract(change.get()); when(p.getBalance()).thenAnswer(i -> balance.get()); when(p.getOverview()).thenAnswer(i -> mockPortfolioOverview(balance.get().intValue())); return p; }
@Override public BigDecimal getBalance() { // load balance first, as it may result in update to synthetics final BigDecimal balance = getRemotePortfolio().getWallet().getAvailableBalance(); final BigDecimal allBlocked = sum(syntheticByLoanId.get().values()); return balance.subtract(allBlocked); }