@Test
public void testUGICacheInSecure() throws Exception {

  String uri1 = WebHdfsFileSystem.PATH_PREFIX
      + PATH
      + "?op=OPEN"
      + Param.toSortedString("&", new OffsetParam((long) OFFSET),
          new LengthParam((long) LENGTH), new UserParam("root"));
  String uri2 = WebHdfsFileSystem.PATH_PREFIX
      + PATH
      + "?op=OPEN"
      + Param.toSortedString("&", new OffsetParam((long) OFFSET),
          new LengthParam((long) LENGTH), new UserParam("hdfs"));
  DataNodeUGIProvider ugiProvider1 = new DataNodeUGIProvider(
      new ParameterParser(new QueryStringDecoder(URI.create(uri1)), conf));
  UserGroupInformation ugi11 = ugiProvider1.ugi();
  UserGroupInformation ugi12 = ugiProvider1.ugi();
  Assert.assertEquals(
      "With UGI cache, two UGIs for the same user should be same", ugi11,
      ugi12);
  DataNodeUGIProvider ugiProvider2 = new DataNodeUGIProvider(
      new ParameterParser(new QueryStringDecoder(URI.create(uri2)), conf));
  UserGroupInformation url21 = ugiProvider2.ugi();
  UserGroupInformation url22 = ugiProvider2.ugi();
  Assert.assertEquals(
      "With UGI cache, two UGIs for the same user should be same", url21,
      url22);
  Assert.assertNotEquals(
      "With UGI cache, two UGIs for the different user should not be same",
      ugi11, url22);
  awaitCacheEmptyDueToExpiration();
  ugi12 = ugiProvider1.ugi();
  url22 = ugiProvider2.ugi();
  String msg = "With cache eviction, two UGIs returned by" +
  " the same user should not be same";
  Assert.assertNotEquals(msg, ugi11, ugi12);
  Assert.assertNotEquals(msg, url21, url22);
  Assert.assertNotEquals(
      "With UGI cache, two UGIs for the different user should not be same",
      ugi11, url22);
}