blob: fc81b5ed04dd09445efc174ccf2e66e5f59d5dcc [file] [log] [blame]
package de.ids_mannheim.korap.dao;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.sqlite.SQLiteException;
import de.ids_mannheim.korap.constant.PredefinedRole;
import de.ids_mannheim.korap.constant.PrivilegeType;
import de.ids_mannheim.korap.entity.QueryDO;
import de.ids_mannheim.korap.entity.Role;
import de.ids_mannheim.korap.entity.UserGroup;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import jakarta.persistence.PersistenceException;
@Disabled
@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:test-config.xml")
public class RoleDaoTest extends DaoTestBase {
@Autowired
private RoleDao roleDao;
@Autowired
private QueryDao queryDao;
@Test
public void testUniqueRoleWithoutQuery () throws KustvaktException {
UserGroup group = createDoryGroup();
Role r = new Role(PredefinedRole.GROUP_ADMIN, PrivilegeType.READ_MEMBER,
group);
Exception exception = assertThrows(PersistenceException.class, () -> {
roleDao.addRole(r);
});
Throwable rootCause = exception;
while (rootCause.getCause() != null) {
rootCause = rootCause.getCause();
}
assertEquals(SQLiteException.class, rootCause.getClass());
assertTrue(rootCause.getMessage()
.startsWith("[SQLITE_CONSTRAINT_UNIQUE]"));
deleteUserGroup(group.getId(), "dory");
}
@Test
public void testUniqueRoleWithQuery () throws KustvaktException {
QueryDO query = queryDao.retrieveQueryByName("dory-vc", "dory");
UserGroup group = createDoryGroup();
Role r1 = new Role(PredefinedRole.GROUP_ADMIN,
PrivilegeType.READ_MEMBER, group, query);
roleDao.addRole(r1);
Role r2 = new Role(PredefinedRole.GROUP_ADMIN,
PrivilegeType.READ_MEMBER, group, query);
Exception exception = assertThrows(PersistenceException.class, () -> {
roleDao.addRole(r2);
});
Throwable rootCause = exception;
while (rootCause.getCause() != null) {
rootCause = rootCause.getCause();
}
assertEquals(SQLiteException.class, rootCause.getClass());
assertTrue(rootCause.getMessage()
.startsWith("[SQLITE_CONSTRAINT_UNIQUE]"));
deleteUserGroup(group.getId(), "dory");
}
}