### Question:
CryptoCompareClientService { protected URI getPriceHistoricalURI(CryptoCompareCurrency fromCurrency, List<CryptoCompareCurrency> toCurrency, long timeInSeconds) { return UriComponentsBuilder.fromUriString(cryptoCompareConfigHolder.getBaseUrl()) .path("/data") .path("/pricehistorical") .queryParam("fsym", fromCurrency) .queryParam("tsyms", StringUtils.join(toCurrency, ',')) .queryParam("ts", timeInSeconds) .queryParam("extraParams", "ICOnator_client") .build() .toUri(); } @Autowired  CryptoCompareClientService(@Qualifier("restTemplateCryptoCompare") RestTemplate restTemplate,
                                      CryptoCompareConfigHolder cryptoCompareConfigHolder); CryptoCompareResponseDTO getHistorical(CryptoCompareCurrency fromCurrency, List<CryptoCompareCurrency> toCurrency, long timeInSecond);  }### Answer:
@Test public void testGetPriceHistoricalURI() { URI actualUri = cryptoCompareClientService.getPriceHistoricalURI( CryptoCompareCurrency.ETH, Arrays.asList(CryptoCompareCurrency.CHF, CryptoCompareCurrency.USD), 123456789 ); URI expectedUri = URI.create( String.format( "%s/data/pricehistorical?fsym=%s&tsyms=%s&ts=%s&extraParams=%s", cryptoCompareConfigHolder.getBaseUrl(), "ETH", "CHF,USD", "123456789", "ICOnator_client" ) ); assertEquals(expectedUri, actualUri); }