### Question:
NetworkRepositoryVertxImpl extends AbstractRepositoryVertxImpl implements NetworkRepository { @Override public Observable<RentalFees> getRentalFees() { Consumer<Handler<AsyncResult<RentalFeesDTO>>> callback = handler -> getNetworkRoutesApi().getRentalFees(handler); return exceptionHandling( call(callback) .map( info -> new RentalFees( info.getEffectiveRootNamespaceRentalFeePerBlock(), info.getEffectiveChildNamespaceRentalFee(), info.getEffectiveMosaicRentalFee()))); } NetworkRepositoryVertxImpl(ApiClient apiClient); @Override Observable<NetworkType> getNetworkType(); @Override Observable<TransactionFees> getTransactionFees(); @Override Observable<RentalFees> getRentalFees(); @Override Observable<NetworkInfo> getNetworkInfo(); @Override Observable<NetworkConfiguration> getNetworkProperties(); NetworkRoutesApi getNetworkRoutesApi(); NodeRoutesApi getNodeRoutesApi();  }### Answer:
@Test void getRentalFees() throws Exception { RentalFeesDTO dto = new RentalFeesDTO(); dto.setEffectiveChildNamespaceRentalFee(BigInteger.valueOf(1)); dto.setEffectiveMosaicRentalFee(BigInteger.valueOf(2)); dto.setEffectiveRootNamespaceRentalFeePerBlock(BigInteger.valueOf(3)); mockRemoteCall(dto); RentalFees info = repository.getRentalFees().toFuture().get(); Assertions.assertNotNull(info); Assertions.assertEquals( dto.getEffectiveChildNamespaceRentalFee(), info.getEffectiveChildNamespaceRentalFee()); Assertions.assertEquals(dto.getEffectiveMosaicRentalFee(), info.getEffectiveMosaicRentalFee()); Assertions.assertEquals( dto.getEffectiveRootNamespaceRentalFeePerBlock(), info.getEffectiveRootNamespaceRentalFeePerBlock()); }