private void verifyFundsSaved(final FundsAddedCommand command, final Principal funder) { ArgumentCaptor<Fund> fundArgumentCaptor = ArgumentCaptor.forClass(Fund.class); verify(fundRepository).saveAndFlush(fundArgumentCaptor.capture()); assertThat(fundArgumentCaptor.getValue().getRequestId()).isEqualTo(command.getRequestId()); assertThat(fundArgumentCaptor.getValue().getTokenValue()).isEqualTo(TokenValue.builder().amountInWei(command.getAmountInWei()).tokenAddress(command.getToken()).build()); assertThat(fundArgumentCaptor.getValue().getFunderUserId()).isEqualTo(funder.getName()); assertThat(fundArgumentCaptor.getValue().getBlockchainEventId()).isEqualTo(command.getBlockchainEventId()); } }
fundRequestContractsService = mock(FundRequestContractsService.class, RETURNS_DEEP_STUBS); fiatService = mock(FiatService.class); when(fundRepository.saveAndFlush(any(Fund.class))).then(returnsFirstArg()); funder = UserProfileMother.davy()::getId; tokenValueMapper = mock(TokenValueMapper.class); fundsAndRefundsAggregator); when(fundRepository.saveAndFlush(any(Fund.class))).then(returnsFirstArg());
@Test public void findRequestsUserHasFunded() throws Exception { Request request = RequestMother .freeCodeCampNoUserStories() .build(); request = requestRepository.saveAndFlush(request); Fund fund = FundMother.fndFundFunderKnown().requestId(request.getId()).build(); fundRepository.saveAndFlush(fund); List<Request> requests = requestRepository.findRequestsUserHasFunded("wrong", Collections.singletonList(fund.getFunderAddress())); assertThat(requests).containsExactly(request); }
@Override @Transactional public void addFunds(final FundsAddedCommand command) { final Fund.FundBuilder fundBuilder = Fund.builder() .tokenValue(TokenValue.builder() .amountInWei(command.getAmountInWei()) .tokenAddress(command.getToken()) .build()) .requestId(command.getRequestId()) .timestamp(command.getTimestamp()) .funderAddress(command.getFunderAddress()) .blockchainEventId(command.getBlockchainEventId()); final Optional<PendingFund> pendingFund = pendingFundRepository.findByTransactionHash(command.getTransactionHash()); if (pendingFund.isPresent()) { fundBuilder.funderUserId(pendingFund.get().getUserId()); } final Fund fund = fundRepository.saveAndFlush(fundBuilder.build()); cacheManager.getCache("funds").evict(fund.getRequestId()); eventPublisher.publishEvent(RequestFundedEvent.builder() .fundDto(mappers.map(Fund.class, FundDto.class, fund)) .requestId(command.getRequestId()) .timestamp(command.getTimestamp()) .build()); }
@Test public void save() throws Exception { Request request = requestRepository.saveAndFlush(RequestMother.freeCodeCampNoUserStories().build()); final Fund fund = FundMother.fndFundFunderKnown() .tokenValue(FND().amountInWei((new BigDecimal("30"))).build()) .requestId(request.getId()) .build(); fundRepository.saveAndFlush(fund); }