@Override
  protected ObjectListingChunk getObjectListingChunk(String key, boolean recursive)
      throws IOException {
    String delimiter = recursive ? "" : PATH_SEPARATOR;
    key = PathUtils.normalizePath(key, PATH_SEPARATOR);
    // In case key is root (empty string) do not normalize prefix
    key = key.equals(PATH_SEPARATOR) ? "" : key;
    ListObjectsRequest request = new ListObjectsRequest();
    request.setBucketName(mBucketNameInternal);
    request.setPrefix(key);
    request.setMaxKeys(getListingChunkLength(mUfsConf));
    request.setDelimiter(delimiter);

    ObjectListing result = getObjectListingChunk(request);
    if (result != null) {
      return new COSObjectListingChunk(request, result);
    }
    return null;
  }
@Test
  public void testGetObjectListingChunk() {
    // test successful get object listing chunk
    Mockito.when(mClient.listObjects(ArgumentMatchers.any(ListObjectsRequest.class)))
        .thenReturn(new ObjectListing());
    ListObjectsRequest request = new ListObjectsRequest();
    Serializable result = mCOSUnderFileSystem.getObjectListingChunk(request);
    Assert.assertTrue(result instanceof ObjectListing);
  }