@Test
  public void defaultPerformanceConfigTest() {
    // purposely use empty properties to make config use default value
    VerifiableProperties properties = new VerifiableProperties(new Properties());
    PerformanceConfig config = new PerformanceConfig(properties);
    for (RestMethod method : EnumSet.of(RestMethod.GET, RestMethod.DELETE, RestMethod.POST, RestMethod.HEAD,
        RestMethod.PUT)) {
      Criteria criteria = config.nonSuccessRequestThresholds.get(method).getCriteria(PerformanceIndex.RoundTripTime);
      assertEquals("Threshold value is not as expected", criteria.getThresholdValue(), Long.MAX_VALUE);
    }
    // verify default GET time to first byte is Long.MAX_VALUE
    assertEquals("Threshold value is not as expected", config.successGetTimeToFirstByteThreshold, Long.MAX_VALUE);
    // verify default GET/POST average bandwidth is 0
    assertEquals("Threshold value is not as expected", config.successGetAverageBandwidthThreshold, 0);
    assertEquals("Threshold value is not as expected", config.successPostAverageBandwidthThreshold, 0);
  }
Test that {@link PerformanceConfig} can correctly populate thresholds with default value. This is to ensure JSONObject
can parse the long value from default strings.
ambry-api/src/test/java/com/github/ambry/commons/ThresholdsTest.java