### Question:
ReceiptRepositoryVertxImpl extends AbstractRepositoryVertxImpl implements ReceiptRepository { @Override public Observable<Page<TransactionStatement>> searchReceipts( TransactionStatementSearchCriteria criteria) { BigInteger height = criteria.getHeight(); List<ReceiptTypeEnum> receiptTypes = toDto(criteria.getReceiptTypes()); String recipientAddress = toDto(criteria.getRecipientAddress()); String senderAddress = toDto(criteria.getSenderAddress()); String targetAddress = toDto(criteria.getTargetAddress()); String artifactId = criteria.getArtifactId(); Integer pageSize = criteria.getPageSize(); Integer pageNumber = criteria.getPageNumber(); String offset = criteria.getOffset(); Order order = toDto(criteria.getOrder()); Consumer<Handler<AsyncResult<TransactionStatementPage>>> callback = (handler) -> getClient() .searchReceipts( height, receiptTypes, recipientAddress, senderAddress, targetAddress, artifactId, pageSize, pageNumber, offset, order, handler); return exceptionHandling( call(callback) .map( page -> this.toPage( page.getPagination(), page.getData().stream() .map(mapper::createTransactionStatement) .collect(Collectors.toList())))); } ReceiptRepositoryVertxImpl(ApiClient apiClient); @Override Observable<Page<TransactionStatement>> searchReceipts(
      TransactionStatementSearchCriteria criteria); @Override Observable<Page<AddressResolutionStatement>> searchAddressResolutionStatements(
      ResolutionStatementSearchCriteria criteria); @Override Observable<Page<MosaicResolutionStatement>> searchMosaicResolutionStatements(
      ResolutionStatementSearchCriteria criteria); ReceiptRoutesApi getClient();  }### Answer:
@Test public void searchReceipts() throws Exception { List<TransactionStatementInfoDTO> transactionStatementInfoDTOS = jsonHelper.parseList( TestHelperVertx.loadResource("Recipient-TransactionResolutionStatement.json"), TransactionStatementInfoDTO.class); mockRemoteCall(toPage(transactionStatementInfoDTOS)); BigInteger height = BigInteger.valueOf(10L); List<TransactionStatement> transactionStatements = repository .searchReceipts( new TransactionStatementSearchCriteria() .height(height) .receiptTypes(Collections.singletonList(ReceiptType.MOSAIC_ALIAS_RESOLUTION))) .toFuture() .get() .getData(); Assertions.assertEquals(transactionStatementInfoDTOS.size(), transactionStatements.size()); Assertions.assertEquals( "82FEFFC329618ECF56B8A6FDBCFCF1BF0A4B6747AB6A5746B195CEEB810F335C", transactionStatements.get(0).generateHash().toUpperCase()); }