public static List<URI> getPeerServerURIs(HelixManager helixManager, String tableNameWithType, String segmentName,
      String downloadScheme) {
    HelixAdmin helixAdmin = helixManager.getClusterManagmentTool();
    String clusterName = helixManager.getClusterName();
    List<URI> onlineServerURIs = new ArrayList<>();
    try {
      RetryPolicies.exponentialBackoffRetryPolicy(MAX_NUM_ATTEMPTS, INITIAL_DELAY_MS, DELAY_SCALE_FACTOR)
          .attempt(() -> {
            getOnlineServersFromExternalView(helixAdmin, clusterName, tableNameWithType, segmentName, downloadScheme,
                onlineServerURIs);
            return !onlineServerURIs.isEmpty();
          });
    } catch (AttemptsExceededException e) {
      LOGGER.error("Failed to find ONLINE servers for segment: {} in table: {} after {} attempts", segmentName,
          tableNameWithType, MAX_NUM_ATTEMPTS);
    } catch (Exception e) {
      LOGGER.error("Caught exception while getting peer server URIs for segment: {} in table: {}", segmentName,
          tableNameWithType, e);
    }
    return onlineServerURIs;
  }
@Test
  public void testSegmentNotFound() {
    assertTrue(PeerServerSegmentFinder.getPeerServerURIs(_helixManager, REALTIME_TABLE_NAME, SEGMENT_2,
        CommonConstants.HTTP_PROTOCOL).isEmpty());
  }