@Override
public void runTestAsSubject() throws Exception {
String requestorUserName = ADMIN_USER;
Set<String> requestorUserGroupNames = Sets.newHashSet(ADMIN_GROUP);
setLocalGroupMapping(requestorUserName, requestorUserGroupNames);
writePolicyFile();
String roleName = "admin_r1";
client.createRole(requestorUserName, roleName, SOLR);
TSentryPrivilege queryPrivilege = new TSentryPrivilege(SOLR, "service1",
fromAuthorizable(Arrays.asList(new Collection("c1"), new Field("f1"))),
SolrConstants.QUERY);
client.grantPrivilege(requestorUserName, roleName, SOLR, queryPrivilege);
assertEquals(1, client.listPrivilegesByRoleName(requestorUserName, roleName,
SOLR, "service1", Arrays.asList(new Collection("c1"), new Field("f1"))).size());
assertEquals(0, client.listPrivilegesByRoleName(requestorUserName, roleName,
SOLR, "service1", Arrays.asList(new Collection("c2"), new Field("f2"))).size());
client.renamePrivilege(requestorUserName, SOLR, "service1", Arrays.asList(new Collection("c1"), new Field("f1")),
Arrays.asList(new Collection("c2"), new Field("f2")));
assertEquals(0, client.listPrivilegesByRoleName(requestorUserName, roleName,
SOLR, "service1", Arrays.asList(new Collection("c1"), new Field("f1"))).size());
assertEquals(1, client.listPrivilegesByRoleName(requestorUserName, roleName,
SOLR, "service1", Arrays.asList(new Collection("c2"), new Field("f2"))).size());
TSentryPrivilege dropPrivilege = new TSentryPrivilege(SOLR, "service1",
fromAuthorizable(Arrays.asList(new Collection("c2"), new Field("f2"))),
SolrConstants.QUERY);
client.dropPrivilege(requestorUserName, SOLR, dropPrivilege);
assertEquals(0, client.listPrivilegesByRoleName(requestorUserName, roleName,
SOLR, "service1", Arrays.asList(new Collection("c2"), new Field("f2"))).size());
}});
}