ExchangeMetaData implements Serializable { @JsonIgnore public static Long getPollDelayMillis(RateLimit[] rateLimits) { if (rateLimits == null || rateLimits.length == 0) { return null; } long result = 0; for (RateLimit rateLimit : rateLimits) { result = Math.max(result, rateLimit.getPollDelayMillis()); } return result; } ExchangeMetaData(
      @JsonProperty("currency_pairs") Map<CurrencyPair, CurrencyPairMetaData> currencyPairs,
      @JsonProperty("currencies") Map<Currency, CurrencyMetaData> currency,
      @JsonProperty("public_rate_limits") RateLimit[] publicRateLimits,
      @JsonProperty("private_rate_limits") RateLimit[] privateRateLimits,
      @JsonProperty("share_rate_limits") Boolean shareRateLimits); @JsonIgnore static Long getPollDelayMillis(RateLimit[] rateLimits); Map<CurrencyPair, CurrencyPairMetaData> getCurrencyPairs(); Map<Currency, CurrencyMetaData> getCurrencies(); RateLimit[] getPublicRateLimits(); RateLimit[] getPrivateRateLimits(); boolean isShareRateLimits(); @JsonIgnore String toJSONString(); @Override String toString(); @JsonProperty("public_rate_limits")
  private RateLimit[] publicRateLimits; }
@Test public void testGetPollDelayMillis500() { RateLimit limit = new RateLimit(2, 1, SECONDS); assertEquals(500L, limit.getPollDelayMillis()); }
@Test public void testGetPollDelayMillisMulti() { assertEquals( 1000L, (long) ExchangeMetaData.getPollDelayMillis( new RateLimit[] {new RateLimit(2, 1, SECONDS), new RateLimit(1, 1, SECONDS)})); }
@Test public void testGetPollDelayMillisNull() { assertEquals(null, ExchangeMetaData.getPollDelayMillis(null)); }
@Test public void testGetPollDelayMillisEmpty() { assertEquals(null, ExchangeMetaData.getPollDelayMillis(new RateLimit[0])); }
@Test public void testGetPollDelayMillis1000() { RateLimit limit = new RateLimit(1, 1, SECONDS); assertEquals(1000L, limit.getPollDelayMillis()); }