List<Pair<String, String>> listDatasetVersions(Dataset dataset, HttpHeaders listHeaders) throws Exception {
    List<Pair<String, String>> datasetVersions = new ArrayList<>();
    String accountName = dataset.getAccountName();
    String containerName = dataset.getContainerName();
    String datasetName = dataset.getDatasetName();
    FullHttpRequest httpRequest =
        buildRequest(HttpMethod.GET, buildUriForNamedBlob(accountName, containerName, datasetName), listHeaders, null);
    NettyClient.ResponseParts responseParts = nettyClient.sendRequest(httpRequest, null, null).get();
    HttpResponse response = getHttpResponse(responseParts);
    assertEquals("Unexpected response status", HttpResponseStatus.OK, response.status());
    ByteBuffer content = getContent(responseParts.queue, HttpUtil.getContentLength(response));
    Page<String> page = Page.fromJsonWithoutKey(new JSONObject(new String(content.array())), Object::toString);
    for (String version : page.getEntries()) {
      datasetVersions.add(new Pair<>(datasetName, version));
    }
    return datasetVersions;
  }
Verify Named blob List operation.
@param accountName The account name.
@param containerName The container name
@param ownerId The owner id
@param prefix The prefix of blob name.
@param numberOfBlobs The expected number of named blobs returned by list operation.
@throws Exception
ambry-frontend/src/integration-test/java/com/github/ambry/frontend/FrontendIntegrationTestBase.java