@Test
void correctlyGuessesInvestmentDateFromTransactionHistory() {
final Loan loan = Loan.custom()
.setId(1)
.build();
final Investment i = Investment.fresh(loan, 200)
.build();
final RawInvestment r = spy(new RawInvestment(i));
when(r.getInvestmentDate()).thenReturn(null);
final PaginatedApi<RawInvestment, PortfolioApi> pa = mockApi(Collections.singletonList(r));
final Transaction irrelevant1 =
new Transaction(i, BigDecimal.ZERO, TransactionCategory.SMP_BUY, TransactionOrientation.OUT);
final Transaction irrelevant2 =
new Transaction(i, BigDecimal.ZERO, TransactionCategory.SMP_SELL, TransactionOrientation.IN);
final Transaction relevant =
new Transaction(i, BigDecimal.ZERO, TransactionCategory.PAYMENT, TransactionOrientation.IN);
final PaginatedApi<Transaction, TransactionApi> ta = mockApi(Arrays.asList(irrelevant1, relevant, irrelevant2));
final Zonky z = mockZonky(pa, ta);
final Optional<Investment> result = z.getInvestmentByLoanId(loan.getId());
assertThat(result).isPresent();
final Investment actual = result.get();
final LocalDate investmentDate = actual.getInvestmentDate().toLocalDate();
assertThat(investmentDate).isEqualTo(relevant.getTransactionDate().minusMonths(1));
}