gpt4 book ai didi

com.github.robozonky.common.remote.Zonky.getLoan()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-13 23:59:31 31 4
gpt4 key购买 nike

本文整理了Java中com.github.robozonky.common.remote.Zonky.getLoan()方法的一些代码示例,展示了Zonky.getLoan()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Zonky.getLoan()方法的具体详情如下:
包路径:com.github.robozonky.common.remote.Zonky
类名称:Zonky
方法名:getLoan

Zonky.getLoan介绍

暂无

代码示例

代码示例来源:origin: RoboZonky/robozonky

@Override
public Loan getLoan(final int loanId) {
  return call(z -> z.getLoan(loanId));
}

代码示例来源:origin: com.github.robozonky/robozonky-app

public Loan getLoan(final int loanId, final Tenant tenant) {
  return getLoan(loanId).orElseGet(() -> {
    final Loan l = tenant.call(api -> api.getLoan(loanId));
    if (l.getRemainingInvestment() > 0) {  // prevent caching information which will soon be outdated
      LOGGER.debug("Not adding loan {} to cache as it is not yet fully invested.", l);
    } else {
      addLoan(loanId, l);
    }
    return l;
  });
}

代码示例来源:origin: RoboZonky/robozonky

public Loan getLoan(final int loanId) {
  return getLoanFromCache(loanId).orElseGet(() -> {
    final Loan l = tenant.call(api -> api.getLoan(loanId));
    if (l.getRemainingInvestment() > 0) {  // prevent caching information which will soon be outdated
      LOGGER.debug("Not adding loan {} as it is not yet fully invested.", l);
    } else {
      addLoan(loanId, l);
    }
    return l;
  });
}

代码示例来源:origin: RoboZonky/robozonky

@Override
public Loan getLoan(final int loanId) {
  return call(z -> z.getLoan(loanId));
}

代码示例来源:origin: RoboZonky/robozonky

@BeforeEach
void prepareZonky() {
  when(zonky.getLoan(eq(loan.getId()))).thenReturn(loan);
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void loan() {
  final PaginatedApi<RawLoan, LoanApi> la = mockApi();
  final int loanId = 1;
  final RawLoan loan = mock(RawLoan.class);
  when(loan.getId()).thenReturn(loanId);
  when(loan.getAmount()).thenReturn(200.0);
  when(loan.getRemainingInvestment()).thenReturn(200.0);
  when(la.execute(any())).thenReturn(loan);
  final ApiProvider p = spy(new ApiProvider());
  when(p.marketplace(any())).thenReturn(la);
  final Zonky z = new Zonky(p, () -> mock(ZonkyApiToken.class));
  assertThat(z.getLoan(loanId).getId()).isEqualTo(loanId);
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void delegatesLoan() {
  when(zonky.getLoan(anyInt())).thenReturn(Loan.custom().build());
  final Loan result = tenant.getLoan(1);
  assertThat(transactional.getLoan(1)).isEqualTo(result);
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void investAndlogout() {
  final ControlApi control = mock(ControlApi.class);
  final Api<ControlApi> ca = mockApi(control);
  final PaginatedApi<RawLoan, LoanApi> la = mockApi();
  final int loanId = 1;
  final RawLoan loan = mock(RawLoan.class);
  when(loan.getId()).thenReturn(loanId);
  when(loan.getAmount()).thenReturn(200.0);
  when(loan.getRemainingInvestment()).thenReturn(200.0);
  when(la.execute(any())).thenReturn(loan);
  final Zonky z = mockZonky(ca, la);
  final Loan l = z.getLoan(loanId);
  final Investment i = Investment.fresh(l, 200);
  z.invest(i);
  z.logout();
  verify(control, times(1)).invest(any());
  verify(control, times(1)).logout();
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void processHopeless() {
  final TransactionalPowerTenant transactional = PowerTenant.transactional(mockTenant(zonky));
  System.out.println("Processing.");
  HOPELESS.process(transactional, investment);
  System.out.println("Processed.");
  transactional.commit();
  System.out.println("Committed.");
  assertThat(getEventsRequested()).hasSize(1)
      .first().isInstanceOf(LoanDelinquent90DaysOrMoreEvent.class);
  verify(zonky).getLoan(eq(loan.getId()));
  verify(zonky).getDevelopments(eq(loan.getId()));
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void processCritical() {
  final TransactionalPowerTenant transactional = PowerTenant.transactional(mockTenant(zonky));
  CRITICAL.process(transactional, investment);
  transactional.commit();
  assertThat(getEventsRequested()).hasSize(1)
      .first().isInstanceOf(LoanDelinquent60DaysOrMoreEvent.class);
  verify(zonky).getLoan(eq(loan.getId()));
  verify(zonky).getDevelopments(eq(loan.getId()));
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void processMild() {
  final TransactionalPowerTenant transactional = PowerTenant.transactional(mockTenant(zonky));
  MILD.process(transactional, investment);
  transactional.commit();
  assertThat(getEventsRequested()).hasSize(1)
      .first().isInstanceOf(LoanDelinquent10DaysOrMoreEvent.class);
  verify(zonky).getLoan(eq(loan.getId()));
  verify(zonky).getDevelopments(eq(loan.getId()));
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void processSevere() {
  final TransactionalPowerTenant transactional = PowerTenant.transactional(mockTenant(zonky));
  SEVERE.process(transactional, investment);
  transactional.commit();
  assertThat(getEventsRequested()).hasSize(1)
      .first().isInstanceOf(LoanDelinquent30DaysOrMoreEvent.class);
  verify(zonky).getLoan(eq(loan.getId()));
  verify(zonky).getDevelopments(eq(loan.getId()));
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void processNew() {
  final TransactionalPowerTenant transactional = PowerTenant.transactional(mockTenant(zonky));
  NEW.process(transactional, investment);
  transactional.commit();
  assertThat(getEventsRequested()).hasSize(1)
      .first().isInstanceOf(LoanNowDelinquentEvent.class);
  verify(zonky).getLoan(eq(loan.getId()));
  verify(zonky).getDevelopments(eq(loan.getId()));
}

代码示例来源:origin: RoboZonky/robozonky

@Test
  void processDefaulted() {
    final TransactionalPowerTenant transactional = PowerTenant.transactional(mockTenant(zonky));
    DEFAULTED.process(transactional, investment);
    transactional.commit();
    assertThat(getEventsRequested()).hasSize(1)
        .first().isInstanceOf(LoanDefaultedEvent.class);
    verify(zonky).getLoan(eq(loan.getId()));
    verify(zonky).getDevelopments(eq(loan.getId()));
  }
}

代码示例来源:origin: RoboZonky/robozonky

@Test
  void handlesRepayment() {
    final Investment i1 = Investment.custom().setDaysPastDue(1).build();
    when(zonky.getDelinquentInvestments()).thenReturn(Stream.of(i1));
    // run test
    payload.accept(tenant); // nothing will happen here, as this is the initializing run
    final Investment i2 = Investment.custom().setDaysPastDue(1).setPaymentStatus(PaymentStatus.PAID).build();
    when(zonky.getDelinquentInvestments()).thenReturn(Stream.of(i2));
    when(zonky.getLoan(anyInt())).thenReturn(Loan.custom().build());
    payload.accept(tenant); // the new delinquency will show up now
    assertThat(getEventsRequested()).hasSize(1)
        .extracting(e -> (Object) e.getClass().getInterfaces()[0])
        .containsOnly(LoanNowDelinquentEvent.class);
    readPreexistingEvents();
    // now the same delinquency is no longer available
    when(zonky.getDelinquentInvestments()).thenReturn(Stream.empty());
    when(zonky.getInvestment(eq(i2.getId()))).thenReturn(Optional.of(i2));
    payload.accept(tenant); // nothing happens, repayments are not handled by this class
    assertThat(getEventsRequested()).isEmpty();
  }
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void handlesRegularHealing() {
  final Investment i1 = Investment.custom().setDaysPastDue(1).build();
  when(zonky.getDelinquentInvestments()).thenReturn(Stream.of(i1));
  // run test
  payload.accept(tenant); // nothing will happen here, as this is the initializing run
  final Investment i2 = Investment.custom().setDaysPastDue(1).setPaymentStatus(PaymentStatus.OK).build();
  when(zonky.getDelinquentInvestments()).thenReturn(Stream.of(i2));
  when(zonky.getLoan(anyInt())).thenReturn(Loan.custom().build());
  payload.accept(tenant); // the new delinquency will show up now
  assertThat(getEventsRequested()).hasSize(1)
      .extracting(e -> (Object) e.getClass().getInterfaces()[0])
      .containsOnly(LoanNowDelinquentEvent.class);
  readPreexistingEvents();
  // now the same delinquency is no longer available
  when(zonky.getDelinquentInvestments()).thenReturn(Stream.empty());
  when(zonky.getInvestment(eq(i2.getId()))).thenReturn(Optional.of(i2));
  payload.accept(tenant); // the new delinquency will show up now
  assertThat(getEventsRequested()).hasSize(1)
      .first()
      .isInstanceOf(LoanNoLongerDelinquentEvent.class);
}

代码示例来源:origin: RoboZonky/robozonky

@Test
  public void queriesAndUpdatesWhenNewTransactionsFound() {
    state.update(m -> m.put(IncomeProcessor.STATE_KEY, "1"));
    final Loan l1 = Loan.custom().build();
    final Transaction t1 = new Transaction(1, l1, BigDecimal.TEN, TransactionCategory.PAYMENT,
                        TransactionOrientation.IN);
    final Loan l2 = Loan.custom().build();
    final Transaction t2 = new Transaction(2, l2, BigDecimal.ONE, TransactionCategory.SMP_SELL,
                        TransactionOrientation.IN);
    final Investment i2 = Investment.fresh(l2, BigDecimal.ONE).build();
    final Loan l3 = Loan.custom().build();
    final Investment i3 = Investment.fresh(l3, BigDecimal.TEN)
        .setPaymentStatus(PaymentStatus.PAID)
        .build();
    final Transaction t3 = new Transaction(3, l3, BigDecimal.TEN, TransactionCategory.PAYMENT,
                        TransactionOrientation.IN);
    when(zonky.getTransactions((Select) any())).thenAnswer(i -> Stream.of(t2, t3, t1));
    when(zonky.getLoan(eq(l2.getId()))).thenReturn(l2);
    when(zonky.getLoan(eq(l3.getId()))).thenReturn(l3);
    when(zonky.getInvestmentByLoanId(eq(l2.getId()))).thenReturn(Optional.of(i2));
    when(zonky.getInvestmentByLoanId(eq(l3.getId()))).thenReturn(Optional.of(i3));
    processor.accept(tenant);
    verify(zonky, times(1)).getTransactions((Select) any());
    assertThat(state.getValue(IncomeProcessor.STATE_KEY)).hasValue("3"); // new maximum
    assertThat(getEventsRequested()).hasSize(2);
  }
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void handlesLoss() {
  final Investment i1 = Investment.custom().setDaysPastDue(1).build();
  when(zonky.getDelinquentInvestments()).thenReturn(Stream.of(i1));
  // run test
  payload.accept(tenant); // nothing will happen here, as this is the initializing run
  final Investment i2 = Investment.custom().setDaysPastDue(1).setPaymentStatus(PaymentStatus.WRITTEN_OFF).build();
  when(zonky.getDelinquentInvestments()).thenReturn(Stream.of(i2));
  when(zonky.getLoan(anyInt())).thenReturn(Loan.custom().build());
  payload.accept(tenant); // the new delinquency will show up now
  assertThat(getEventsRequested()).hasSize(1)
      .extracting(e -> (Object) e.getClass().getInterfaces()[0])
      .containsOnly(LoanNowDelinquentEvent.class);
  readPreexistingEvents();
  // now the same delinquency is no longer available
  when(zonky.getDelinquentInvestments()).thenReturn(Stream.empty());
  when(zonky.getInvestment(eq(i2.getId()))).thenReturn(Optional.of(i2));
  payload.accept(tenant); // the lost loan will show up now
  assertThat(getEventsRequested()).hasSize(1)
      .first()
      .isInstanceOf(LoanLostEvent.class);
}

代码示例来源:origin: RoboZonky/robozonky

@Test
void triggersEventsOnNewDelinquents() {
  final Investment i1 = Investment.custom().setDaysPastDue(1).build();
  final Investment i10 = Investment.custom().setDaysPastDue(10).build();
  final Investment i30 = Investment.custom().setDaysPastDue(30).build();
  final Investment i60 = Investment.custom().setDaysPastDue(60).build();
  final Investment i90 = Investment.custom().setDaysPastDue(90).build();
  final Investment defaulted = Investment.custom().setPaymentStatus(PaymentStatus.PAID_OFF).build();
  when(zonky.getDelinquentInvestments()).thenReturn(Stream.of(i1));
  // run test
  payload.accept(tenant); // nothing will happen here, as this is the initializing run
  when(zonky.getDelinquentInvestments()).thenReturn(Stream.of(i10, i30, i60, i90, defaulted));
  when(zonky.getLoan(anyInt())).thenReturn(Loan.custom().build());
  payload.accept(tenant); // the new delinquencies will show up now
  assertThat(getEventsRequested()).hasSize(5)
      .extracting(e -> (Object) e.getClass().getInterfaces()[0])
      .containsOnly(LoanDefaultedEvent.class,
             LoanDelinquent10DaysOrMoreEvent.class, LoanDelinquent30DaysOrMoreEvent.class,
             LoanDelinquent60DaysOrMoreEvent.class, LoanDelinquent90DaysOrMoreEvent.class);
}

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com