private static LoanDescriptor mockLoanDescriptor() { final Loan loan = RecommendedLoanTest.mockLoan(); return new LoanDescriptor(loan); }
@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 unacceptablePortfolioDueToLowBalance() { final ParsedStrategy p = new ParsedStrategy(DefaultPortfolio.EMPTY); final InvestmentStrategy s = new NaturalLanguageInvestmentStrategy(p); final PortfolioOverview portfolio = mock(PortfolioOverview.class); when(portfolio.getCzkAvailable()).thenReturn(BigDecimal.valueOf(p.getMinimumBalance() - 1)); final Stream<RecommendedLoan> result = s.recommend(Collections.singletonList(new LoanDescriptor(mockLoan(2))), portfolio, new Restrictions()); assertThat(result).isEmpty(); }
@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(); } }
private static RecommendedLoan recommendedLoan() { final Loan loan = Loan.custom().setNonReservedRemainingInvestment(2000).build(); return new LoanDescriptor(loan).recommend(200).orElse(null); }
@Test void getters() { final InvestingOperationDescriptor d = new InvestingOperationDescriptor(); final Loan l = Loan.custom().build(); final LoanDescriptor ld = new LoanDescriptor(l); assertThat(d.identify(ld)).isEqualTo(l.getId()); }
@Test void negatingTrue() { final MarketplaceFilterCondition c = MarketplaceFilterCondition.alwaysAccepting(); final NegatingCondition nc = new NegatingCondition(c); assertThat(nc.test(Wrapper.wrap(new LoanDescriptor(Loan.custom().build())))).isFalse(); }
@Test void doubleNegation() { final MarketplaceFilterCondition negated = AlwaysAcceptingCondition.INSTANCE.negate(); assertThat(negated.test(Wrapper.wrap(new LoanDescriptor(Loan.custom().build())))).isFalse(); final MarketplaceFilterCondition doubleNegated = negated.negate(); assertThat(doubleNegated).isSameAs(AlwaysAcceptingCondition.INSTANCE); } }
@Test void negatingFalse() { final MarketplaceFilterCondition c = MarketplaceFilterCondition.neverAccepting(); final NegatingCondition nc = new NegatingCondition(c); assertThat(nc.test(Wrapper.wrap(new LoanDescriptor(Loan.custom().build())))).isTrue(); } }
private static Wrapper<?> mockLoan(final Rating r) { final Loan loan = Loan.custom().setRating(r).build(); return Wrapper.wrap(new LoanDescriptor(loan)); }
@Test void sortByRecencyIfInsured() { final OffsetDateTime first = OffsetDateTime.ofInstant(Instant.EPOCH, Defaults.ZONE_ID); final OffsetDateTime second = first.plus(Duration.ofMillis(1)); final Loan l1 = mockLoan(1, 100000, first); final Loan l2 = mockLoan(l1.getId() + 1, l1.getAmount(), second); final LoanDescriptor ld1 = new LoanDescriptor(l1), ld2 = new LoanDescriptor(l2); assertSoftly(softly -> { softly.assertThat(c.compare(ld1, ld2)).isEqualTo(1); softly.assertThat(c.compare(ld2, ld1)).isEqualTo(-1); softly.assertThat(c.compare(ld1, ld1)).isEqualTo(0); }); }
@Test void sortByRemainingIfAsRecent() { final OffsetDateTime first = OffsetDateTime.ofInstant(Instant.EPOCH, Defaults.ZONE_ID); final Loan l1 = mockLoan(1, 100000, first); final Loan l2 = mockLoan(l1.getId() + 1, l1.getAmount() + 1, l1.getDatePublished()); final LoanDescriptor ld1 = new LoanDescriptor(l1), ld2 = new LoanDescriptor(l2); assertSoftly(softly -> { softly.assertThat(c.compare(ld1, ld2)).isEqualTo(1); softly.assertThat(c.compare(ld2, ld1)).isEqualTo(-1); }); } }
@Test void sortByInsurance() { final OffsetDateTime first = OffsetDateTime.ofInstant(Instant.EPOCH, Defaults.ZONE_ID); final Loan l1 = mockLoan(1, 100000, first, true); final Loan l2 = mockLoan(l1.getId() + 1, l1.getAmount(), first, !l1.isInsuranceActive()); final LoanDescriptor ld1 = new LoanDescriptor(l1), ld2 = new LoanDescriptor(l2); assertSoftly(softly -> { softly.assertThat(c.compare(ld1, ld2)).isEqualTo(-1); softly.assertThat(c.compare(ld2, ld1)).isEqualTo(1); softly.assertThat(c.compare(ld1, ld1)).isEqualTo(0); }); }
@Override public Wrapper<?> getMocked() { final Loan loan = Loan.custom().setMainIncomeType(this.getTriggerItem()).build(); return Wrapper.wrap(new LoanDescriptor(loan)); }
@Override public Wrapper<?> getMocked() { final Loan loan = Loan.custom().setPurpose(this.getTriggerItem()).build(); return Wrapper.wrap(new LoanDescriptor(loan)); }
@Override public Wrapper<?> getMocked() { final Loan loan = Loan.custom().setRating(this.getTriggerItem()).build(); return Wrapper.wrap(new LoanDescriptor(loan)); }
@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(); }); }
@Test void basic() { final Loan loan = Loan.custom() .setInsuranceActive(true) .build(); final Wrapper<?> wrap = Wrapper.wrap(new LoanDescriptor(loan)); assertSoftly(softly -> { softly.assertThat(InsuranceCondition.ACTIVE).accepts(wrap); softly.assertThat(InsuranceCondition.ACTIVE.getDescription()).contains("With insurance."); softly.assertThat(InsuranceCondition.INACTIVE).rejects(wrap); }); }
@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())); }); }
@Test void construct() { final DefaultPortfolio p = DefaultPortfolio.BALANCED; final DefaultValues sut = new DefaultValues(p); assertSoftly(softly -> { softly.assertThat(sut.getPortfolio()).isSameAs(p); softly.assertThat(sut.getInvestmentSize().getMinimumInvestmentInCzk()).isEqualTo(0); softly.assertThat(sut.needsConfirmation(new LoanDescriptor(Loan.custom().build()))).isFalse(); }); }