### Question:
BlockRepositoryVertxImpl extends AbstractRepositoryVertxImpl implements BlockRepository { @Override public Observable<MerkleProofInfo> getMerkleTransaction(BigInteger height, String hash) { Consumer<Handler<AsyncResult<MerkleProofInfoDTO>>> callback = handler -> client.getMerkleTransaction(height, hash, handler); return exceptionHandling(call(callback).map(this::toMerkleProofInfo)); } BlockRepositoryVertxImpl(ApiClient apiClient); @Override Observable<BlockInfo> getBlockByHeight(BigInteger height); @Override Observable<Page<BlockInfo>> search(BlockSearchCriteria criteria); @Override Observable<MerkleProofInfo> getMerkleTransaction(BigInteger height, String hash); Observable<MerkleProofInfo> getMerkleReceipts(BigInteger height, String hash); static BlockInfo toBlockInfo(BlockInfoDTO blockInfoDTO); BlockRoutesApi getClient();  }### Answer:
@Test public void getMerkleTransaction() throws Exception { MerkleProofInfoDTO merkleProofInfoDTO = new MerkleProofInfoDTO(); MerklePathItemDTO item = new MerklePathItemDTO().hash("someHash").position(PositionEnum.LEFT); mockRemoteCall(merkleProofInfoDTO.addMerklePathItem(item)); MerkleProofInfo merkleProofInfo = repository.getMerkleTransaction(BigInteger.ONE, "HASH!").toFuture().get(); Assertions.assertEquals(1, merkleProofInfo.getMerklePath().size()); Assertions.assertEquals("someHash", merkleProofInfo.getMerklePath().get(0).getHash()); Assertions.assertEquals(Position.LEFT, merkleProofInfo.getMerklePath().get(0).getPosition()); }