/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.intel.mtwilson.as.rest.v2.resource;
import com.intel.dcsg.cpg.io.UUID;
import com.intel.mtwilson.user.management.rest.v2.model.Role;
import com.intel.mtwilson.user.management.rest.v2.model.RoleCollection;
import com.intel.mtwilson.user.management.rest.v2.model.RoleFilterCriteria;
import com.intel.mtwilson.user.management.rest.v2.model.RoleLocator;
import com.intel.mtwilson.user.management.rest.v2.model.RolePermission;
import com.intel.mtwilson.user.management.rest.v2.model.RolePermissionCollection;
import com.intel.mtwilson.user.management.rest.v2.model.RolePermissionFilterCriteria;
import com.intel.mtwilson.user.management.rest.v2.repository.RolePermissionRepository;
import com.intel.mtwilson.user.management.rest.v2.repository.RoleRepository;
import org.junit.Test;
/**
*
* @author ssbangal
*/
public class RoleAndRolePermissionTest {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(RoleAndRolePermissionTest.class);
@Test
public void testRoleAndRolePermissions() throws Exception {
RoleRepository rRepo = new RoleRepository();
RolePermissionRepository rpRepo = new RolePermissionRepository();
UUID roleId = new UUID();
UUID rolePermId = new UUID();
Role role = new Role();
role.setId(roleId);
role.setRoleName("MTW_Manager");
role.setDescription("Mt Wilson Manager role");
rRepo.create(role);
RoleFilterCriteria rCriteria = new RoleFilterCriteria();
rCriteria.filter = false;
RoleCollection rSearch = rRepo.search(rCriteria);
for (Role roleObj : rSearch.getRoles())
log.debug("Retrieved role with id {}, name {} and description {}.", roleObj.getId(), roleObj.getRoleName(), roleObj.getDescription());
role.setDescription("Role description updated");
rRepo.store(role);
RoleLocator rLocator = new RoleLocator();
rLocator.id = roleId;
Role rRetrieve = rRepo.retrieve(rLocator);
log.debug("Retrieved role with id {}, name {} and description {}.", rRetrieve.getId(), rRetrieve.getRoleName(), rRetrieve.getDescription());
RolePermission rpObj = new RolePermission();
rpObj.setRoleId(roleId);
rpObj.setPermitDomain("role_permissions");
rpObj.setPermitAction("store,search,create,retrieve");
rpRepo.create(rpObj);
rpObj.setPermitDomain("roles");
rpObj.setPermitAction("store,search,create,retrieve");
rpObj.setPermitSelection("*");
rpRepo.create(rpObj);
RolePermissionFilterCriteria rpCriteria = new RolePermissionFilterCriteria();
rpCriteria.roleId = roleId;
rpCriteria.filter = false;
RolePermissionCollection search = rpRepo.search(rpCriteria);
for (RolePermission rp : search.getRolePermissions()) {
log.debug("Role Id {}, domain is {}, action is {} and selection is {}", rp.getRoleId(), rp.getPermitDomain(), rp.getPermitAction(), rp.getPermitSelection());
}
try {
rRepo.delete(rLocator);
} catch(Exception ex) {
log.debug("Error details {}", ex);
}
rpRepo.delete(rpCriteria);
rRepo.delete(rLocator);
}
}