@VisibleForTesting
  static BigDecimal extractConversionRate(final CoinMarketCapResponse response, final String destinationCurrency)
      throws IOException {
    if (!response.priceConversionResponse().quote.containsKey(destinationCurrency)) {
      throw new IOException("Response does not contain conversion rate for " + destinationCurrency);
    }

    return response.priceConversionResponse().quote.get(destinationCurrency).price();
  }
@Test
  void extractConversionRate() throws IOException {
    final CoinMarketCapClient.CoinMarketCapResponse parsedResponse = CoinMarketCapClient.parseResponse(RESPONSE_JSON);

    assertEquals(new BigDecimal("0.6625319895827952"), CoinMarketCapClient.extractConversionRate(parsedResponse, "USD"));
    assertThrows(IOException.class, () -> CoinMarketCapClient.extractConversionRate(parsedResponse, "CAD"));
  }