@Override
  public int chown(String path, long uid, long gid) {
    return AlluxioFuseUtils.call(LOG, () -> chownInternal(path, uid, gid),
        FuseConstants.FUSE_CHOWN, "path=%s,uid=%d,gid=%d", path, uid, gid);
  }
@Test
  @DoraTestTodoItem(action = DoraTestTodoItem.Action.FIX, owner = "LuQQiu",
      comment = "waiting on security metadata to be implemented in Dora")
  @Ignore
  public void chown() throws Exception {
    Optional<Long> uid = AlluxioFuseUtils.getUid(System.getProperty("user.name"));
    // avoid using the launch user
    if (uid.isPresent() && uid.get().equals(AlluxioFuseUtils.getSystemUid())) {
      uid = Optional.of(uid.get() + 1);
    }
    assertTrue(uid.isPresent());
    Optional<String> userName = AlluxioFuseUtils.getUserName(uid.get());
    if (!userName.isPresent()) {
      // skip this case for such an environment
      return;
    }
    Optional<Long> gid = AlluxioFuseUtils.getGidFromUserName(userName.get());
    assertTrue(gid.isPresent());
    URIStatus status = mock(URIStatus.class);
    when(status.getOwner()).thenReturn("user");
    when(status.getGroup()).thenReturn("group");
    when(mFileSystem.getStatus(any(AlluxioURI.class))).thenReturn(status);
    mFuseFs.chown("/foo/bar", uid.get(), gid.get());
    Optional<String> groupName = AlluxioFuseUtils.getGroupName(gid.get());
    assertTrue(groupName.isPresent());
    AlluxioURI expectedPath = BASE_EXPECTED_URI.join("/foo/bar");
    SetAttributePOptions options =
        SetAttributePOptions.newBuilder().setGroup(groupName.get())
            .setOwner(userName.get()).build();
    verify(mFileSystem).setAttribute(expectedPath, options);
  }