gpt4 book ai didi

com.github.robozonky.common.remote.Zonky类的使用及代码示例

转载 作者:知者 更新时间:2024-03-14 00:27:31 32 4
gpt4 key购买 nike

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

Zonky介绍

[英]Represents an instance of Zonky API that is fully authenticated and ready to perform operations on behalf of the user. Consider #logout() when done.
[中]表示Zonky API的一个实例,该实例经过完全验证,可以代表用户执行操作。当完成时,请考虑{Log}()。

代码示例

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

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;
}

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

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

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

/**
 * Retrieve transactions from the wallet via {@link TransactionApi}.
 * @param investment Investment to filter the selection by.
 * @return All items from the remote API, lazy-loaded, filtered for the specific investment.
 */
public Stream<Transaction> getTransactions(final Investment investment) {
  final Select select = new Select().equals("investment.id", investment.getId());
  return getTransactions(select);
}

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

@Test
void getters() {
  final Zonky z = mockZonky();
  assertSoftly(softly -> {
    softly.assertThat(z.getAvailableLoans(Select.unrestricted())).isEmpty();
    softly.assertThat(z.getBlockedAmounts()).isEmpty();
    softly.assertThat(z.getInvestments(Select.unrestricted())).isEmpty();
    softly.assertThat(z.getInvestment(1)).isEmpty();
    softly.assertThat(z.getDelinquentInvestments()).isEmpty();
    softly.assertThat(z.getAvailableParticipations(Select.unrestricted())).isEmpty();
    softly.assertThat(z.getTransactions(Select.unrestricted())).isEmpty();
    softly.assertThat(z.getDevelopments(1)).isEmpty();
  });
}

代码示例来源: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 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
  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 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: com.github.robozonky/robozonky-common

public Optional<Investment> getInvestment(final long id) {
  final Select s = new Select().equals("id", id);
  return getInvestments(s).findFirst();
}

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

@SuppressWarnings({"unchecked", "rawtypes"})
private ApiProvider mockFailingApi() {
  final ApiProvider api = spy(new ApiProvider());
  final ZonkyApiToken token = mock(ZonkyApiToken.class);
  when(token.getAccessToken()).thenReturn(new char[0]);
  final OAuth oauth = mock(OAuth.class);
  when(oauth.login(any(), any())).thenReturn(token);
  doAnswer(i -> {
    final Function f = i.getArgument(0);
    return f.apply(oauth);
  }).when(api).oauth(any());
  final Zonky z = mock(Zonky.class);
  doAnswer(i -> {
    final Consumer f = i.getArgument(0);
    f.accept(z);
    return null;
  }).when(api).run(any(Consumer.class), any());
  doThrow(IllegalStateException.class).when(z).logout(); // last call will fail
  return api;
}

代码示例来源: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 exports() {
  final ExportApi api = mock(ExportApi.class);
  when(api.downloadInvestmentsExport()).thenReturn(mock(Response.class));
  when(api.downloadWalletExport()).thenReturn(mock(Response.class));
  final Api<ExportApi> ea = mockApi(api);
  final Zonky z = mockZonkyExports(ea);
  assertSoftly(softly -> {
    softly.assertThat(z.downloadInvestmentsExport()).isNotNull();
    softly.assertThat(z.downloadWalletExport()).isNotNull();
  });
  z.requestInvestmentsExport();
  verify(api).requestInvestmentsExport();
  z.requestWalletExport();
  verify(api).requestWalletExport();
}

代码示例来源: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);
}

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

.map(OffsetDateTime::toLocalDate)
      .orElse(DateUtil.localNow().toLocalDate()).minusDays(i.getDaysPastDue());
  final LocalDate lastPayment = getTransactions(i)
      .filter(t -> t.getCategory() == TransactionCategory.PAYMENT)
      .map(Transaction::getTransactionDate)
  return d;
};
return getStream(portfolioApi, PortfolioApi::items, select)
    .map(raw -> Investment.sanitized(raw, investmentDateSupplier));

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

@BeforeEach
void emptyExports() {
  server.when(new HttpRequest()).respond(new HttpResponse()); // just return something to be downloaded
  final Response response = mock(Response.class);
  when(response.getStatus()).thenReturn(302);
  when(response.getHeaderString(any())).thenReturn("http://" + serverUrl + "/file");
  doReturn(response).when(zonky).downloadWalletExport();
  doReturn(response).when(zonky).downloadInvestmentsExport();
}

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

private synchronized Zonky authenticated(final Supplier<ZonkyApiToken> token) {
  return authenticated.computeIfAbsent(token, key -> {
    LOGGER.debug("Creating a new authenticated API for {}.", token);
    return new Zonky(this, token);
  });
}

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

private static List<Development> getDevelopments(final Tenant auth, final int loanId,
                         final LocalDate delinquentSince) {
  final LocalDate lastNonDelinquentDay = delinquentSince.minusDays(1);
  final List<Development> developments = auth.call(z -> z.getDevelopments(loanId))
      .filter(d -> d.getDateFrom().toLocalDate().isAfter(lastNonDelinquentDay))
      .collect(toList());
  Collections.reverse(developments);
  return developments;
}

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

public Collection<Investment> complement(final Collection<Investment> investments) {
  final Set<Long> idsToComplement = investments.stream().map(Registry::getId).collect(Collectors.toSet());
  return storages.get(Category.NEW).complement(idsToComplement)
      .parallel()
      .mapToObj(id -> tenant.call(z -> z.getInvestment(id)))
      .flatMap(i -> i.map(Stream::of).orElse(Stream.empty()))
      .collect(Collectors.toList());
}

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

protected static Investment lookupOrFail(final int loanId, final Tenant auth) {
  return auth.call(zonky -> zonky.getInvestmentByLoanId(loanId))
      .orElseThrow(() -> new IllegalStateException("Investment not found for loan #" + loanId));
}

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

@Test
  void fails() throws ExecutionException, InterruptedException {
    final Tenant tenant = mockTenant(zonky);
    doThrow(IllegalStateException.class).when(zonky).downloadInvestmentsExport();
    final CompletableFuture<Optional<File>> c = Export.INVESTMENTS.download(tenant, Duration.ofSeconds(2));
    assertThat(c.get()).isEmpty();
  }
}

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