blob: a4d770b6a75d003b5244d766d22e0120871f2bba [file] [log] [blame]
package de.ids_mannheim.korap.dao;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import de.ids_mannheim.korap.constant.PredefinedRole;
import de.ids_mannheim.korap.constant.PrivilegeType;
import de.ids_mannheim.korap.entity.Privilege;
import de.ids_mannheim.korap.entity.Role;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:test-config.xml")
public class RolePrivilegeDaoTest {
@Autowired
private RoleDao roleDao;
@Autowired
private PrivilegeDao privilegeDao;
@Test
public void retrievePredefinedRole () {
Role r = roleDao.retrieveRoleById(PredefinedRole.USER_GROUP_ADMIN.getId());
assertEquals(1, r.getId());
}
@Test
public void createDeleteRole () {
String roleName = "vc editor";
List<PrivilegeType> privileges = new ArrayList<PrivilegeType>();
privileges.add(PrivilegeType.READ);
privileges.add(PrivilegeType.WRITE);
roleDao.createRole(roleName, privileges);
Role r = roleDao.retrieveRoleByName(roleName);
assertEquals(roleName, r.getName());
assertEquals(2, r.getPrivileges().size());
roleDao.deleteRole(r.getId());
}
@Test
public void updateRole () {
Role role = roleDao.retrieveRoleByName("USER_GROUP_MEMBER");
roleDao.editRoleName(role.getId(), "USER_GROUP_MEMBER role");
role = roleDao.retrieveRoleById(role.getId());
assertEquals("USER_GROUP_MEMBER role", role.getName());
roleDao.editRoleName(role.getId(), "USER_GROUP_MEMBER");
role = roleDao.retrieveRoleById(role.getId());
assertEquals("USER_GROUP_MEMBER", role.getName());
}
@Test
public void addDeletePrivilegeOfExistingRole () {
Role role = roleDao.retrieveRoleByName("USER_GROUP_MEMBER");
List<Privilege> privileges = role.getPrivileges();
assertEquals(1, role.getPrivileges().size());
assertEquals(privileges.get(0).getName(), PrivilegeType.DELETE);
// add privilege
List<PrivilegeType> privilegeTypes = new ArrayList<PrivilegeType>();
privilegeTypes.add(PrivilegeType.READ);
privilegeDao.addPrivilegesToRole(role, privilegeTypes);
role = roleDao.retrieveRoleByName("USER_GROUP_MEMBER");
assertEquals(2, role.getPrivileges().size());
//delete privilege
privilegeDao.deletePrivilegeFromRole(role.getId(), PrivilegeType.READ);
role = roleDao.retrieveRoleByName("USER_GROUP_MEMBER");
assertEquals(1, role.getPrivileges().size());
assertEquals(privileges.get(0).getName(), PrivilegeType.DELETE);
}
}