private static Loan mockLoan() { return mockLoan(Rating.D); }
@Test void equalsSelf() { final Loan mockedLoan = LoanDescriptorTest.mockLoan(); final LoanDescriptor ld = new LoanDescriptor(mockedLoan); assertThat(ld) .isNotEqualTo(null) .isEqualTo(ld); final LoanDescriptor ld2 = new LoanDescriptor(mockedLoan); assertThat(ld).isEqualTo(ld2); }
@Test void recommendWrongAmount() { final Loan mockedLoan = LoanDescriptorTest.mockLoan(); final LoanDescriptor ld = new LoanDescriptor(mockedLoan); final Optional<RecommendedLoan> r = ld.recommend(BigDecimal.valueOf(mockedLoan.getNonReservedRemainingInvestment() + 1)); assertThat(r).isEmpty(); } }
@Test void recommendAmount() { final Loan mockedLoan = LoanDescriptorTest.mockLoan(); final LoanDescriptor ld = new LoanDescriptor(mockedLoan); final Optional<RecommendedLoan> r = ld.recommend(200); assertThat(r).isPresent(); final RecommendedLoan recommendation = r.get(); assertSoftly(softly -> { softly.assertThat(recommendation.descriptor()).isSameAs(ld); softly.assertThat(recommendation.amount()).isEqualTo(BigDecimal.valueOf(200)); softly.assertThat(recommendation.isConfirmationRequired()).isFalse(); }); }
@Test void constructorForCaptchaLess() { final Loan mockedLoan = LoanDescriptorTest.mockLoan(Rating.AAAAA); final LoanDescriptor ld = new LoanDescriptor(mockedLoan); assertSoftly(softly -> { softly.assertThat(ld.item()).isSameAs(mockedLoan); softly.assertThat(ld.getLoanCaptchaProtectionEndDateTime()).isEmpty(); }); }
@Disabled("Looks like CAPTCHA is disabled for now. Let's wait and see if it comes back.") @Test void constructorForCaptcha() { final Loan mockedLoan = LoanDescriptorTest.mockLoan(); final LoanDescriptor ld = new LoanDescriptor(mockedLoan); assertSoftly(softly -> { softly.assertThat(ld.item()).isSameAs(mockedLoan); softly.assertThat(ld.getLoanCaptchaProtectionEndDateTime()) .isPresent() .contains(mockedLoan.getDatePublished().plus(Settings.INSTANCE.getCaptchaDelay())); }); }