@Test
public void testDefaultUGIProviderWithHDFSFiles() throws Exception {
Location hdfsKeytabDir = locationFactory.create("keytabs");
setKeytabDir(hdfsKeytabDir.toURI().toString());
Location aliceRemoteKeytabFile = copyFileToHDFS(hdfsKeytabDir, aliceKeytabFile);
Location bobRemoteKeytabFile = copyFileToHDFS(hdfsKeytabDir, bobKeytabFile);
OwnerAdmin ownerAdmin = getOwnerAdmin();
DefaultUGIProvider provider = new DefaultUGIProvider(cConf, locationFactory, ownerAdmin, namespaceClient);
ownerAdmin.add(aliceEntity, aliceKerberosPrincipalId);
ownerAdmin.add(bobEntity, bobKerberosPrincipalId);
ImpersonationRequest aliceImpRequest = new ImpersonationRequest(aliceEntity, ImpersonatedOpType.OTHER);
ImpersonationRequest bobImpRequest = new ImpersonationRequest(bobEntity, ImpersonatedOpType.OTHER);
UGIWithPrincipal aliceUGIWithPrincipal = verifyAndGetUGI(provider, aliceKerberosPrincipalId, aliceImpRequest);
UGIWithPrincipal bobUGIWithPrincipal = verifyAndGetUGI(provider, bobKerberosPrincipalId, bobImpRequest);
Assert.assertTrue(bobRemoteKeytabFile.delete());
verifyCaching(provider, aliceImpRequest, bobImpRequest, aliceUGIWithPrincipal, bobUGIWithPrincipal);
ownerAdmin.delete(aliceEntity);
ownerAdmin.delete(bobEntity);
}