CCM NG/ccm-core: Additional queries (and accompanying methods in RoleRepository) for Role to find Roles by the the permissions granted to the role.
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4349 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
689991f364
commit
ddc70c795d
|
|
@ -89,7 +89,18 @@ import javax.xml.bind.annotation.XmlRootElement;
|
||||||
query = "SELECT COUNT(r.name) FROM Role r "
|
query = "SELECT COUNT(r.name) FROM Role r "
|
||||||
+ "WHERE LOWER(r.name) LIKE CONCAT(LOWER(:name), '%') "
|
+ "WHERE LOWER(r.name) LIKE CONCAT(LOWER(:name), '%') "
|
||||||
+ "GROUP BY r.name "
|
+ "GROUP BY r.name "
|
||||||
+ "ORDER BY r.name ")
|
+ "ORDER BY r.name "),
|
||||||
|
@NamedQuery(
|
||||||
|
name = "Role.findByPrivilege",
|
||||||
|
query = "SELECT r FROM Role r JOIN r.permissions p "
|
||||||
|
+ "WHERE p.grantedPrivilege = :privilege "
|
||||||
|
+ "ORDER BY r.name"),
|
||||||
|
@NamedQuery(
|
||||||
|
name = "Role.findByPrivilegeAndObject",
|
||||||
|
query = "SELECT r FROM Role r JOIN r.permissions p "
|
||||||
|
+ "WHERE p.grantedPrivilege = :privilege "
|
||||||
|
+ "AND p.object = :object "
|
||||||
|
+ "ORDER BY r.name")
|
||||||
})
|
})
|
||||||
@NamedEntityGraphs({
|
@NamedEntityGraphs({
|
||||||
@NamedEntityGraph(
|
@NamedEntityGraph(
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import org.libreccm.core.CoreConstants;
|
||||||
|
|
||||||
import javax.persistence.NoResultException;
|
import javax.persistence.NoResultException;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
|
import org.libreccm.core.CcmObject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Repository class for {@link Role} entities.
|
* Repository class for {@link Role} entities.
|
||||||
|
|
@ -52,7 +53,7 @@ public class RoleRepository extends AbstractEntityRepository<Long, Role> {
|
||||||
|
|
||||||
public long count() {
|
public long count() {
|
||||||
final TypedQuery<Long> query = getEntityManager().createNamedQuery(
|
final TypedQuery<Long> query = getEntityManager().createNamedQuery(
|
||||||
"Role.count", Long.class);
|
"Role.count", Long.class);
|
||||||
return query.getSingleResult();
|
return query.getSingleResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -62,11 +63,11 @@ public class RoleRepository extends AbstractEntityRepository<Long, Role> {
|
||||||
* @param name The name of the role to retrieve.
|
* @param name The name of the role to retrieve.
|
||||||
*
|
*
|
||||||
* @return The role identified by the provided {@code name} or {@code null}
|
* @return The role identified by the provided {@code name} or {@code null}
|
||||||
* if there is no matching role.
|
* if there is no matching role.
|
||||||
*/
|
*/
|
||||||
public Role findByName(final String name) {
|
public Role findByName(final String name) {
|
||||||
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
||||||
"Role.findByName", Role.class);
|
"Role.findByName", Role.class);
|
||||||
query.setParameter("name", name);
|
query.setParameter("name", name);
|
||||||
final List<Role> result = query.getResultList();
|
final List<Role> result = query.getResultList();
|
||||||
if (result.isEmpty()) {
|
if (result.isEmpty()) {
|
||||||
|
|
@ -78,22 +79,42 @@ public class RoleRepository extends AbstractEntityRepository<Long, Role> {
|
||||||
|
|
||||||
public List<Role> findAllOrderedByRoleName() {
|
public List<Role> findAllOrderedByRoleName() {
|
||||||
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
||||||
"Role.findAllOrderedByRoleName", Role.class);
|
"Role.findAllOrderedByRoleName", Role.class);
|
||||||
return query.getResultList();
|
return query.getResultList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Role> findAllOrderedByRole(final int maxResults,
|
public List<Role> findAllOrderedByRole(final int maxResults,
|
||||||
final int firstResult) {
|
final int firstResult) {
|
||||||
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
||||||
"Role.findAllOrderedByRoleName", Role.class);
|
"Role.findAllOrderedByRoleName", Role.class);
|
||||||
query.setMaxResults(maxResults);
|
query.setMaxResults(maxResults);
|
||||||
query.setFirstResult(firstResult);
|
query.setFirstResult(firstResult);
|
||||||
return query.getResultList();
|
return query.getResultList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public List<Role> findByPrivilege(final String privilege) {
|
||||||
|
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
||||||
|
"Role.findByPrivilege", Role.class);
|
||||||
|
query.setParameter("privilege", privilege);
|
||||||
|
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public List<Role> findByPrivilege(final String privilege,
|
||||||
|
final CcmObject object) {
|
||||||
|
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
||||||
|
"Role.findByPrivilegeAndObject", Role.class);
|
||||||
|
query.setParameter("privilege", privilege);
|
||||||
|
query.setParameter("object", object);
|
||||||
|
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
public List<Role> searchByName(final String name) {
|
public List<Role> searchByName(final String name) {
|
||||||
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
||||||
"Role.searchByName", Role.class);
|
"Role.searchByName", Role.class);
|
||||||
query.setParameter("name", name);
|
query.setParameter("name", name);
|
||||||
return query.getResultList();
|
return query.getResultList();
|
||||||
}
|
}
|
||||||
|
|
@ -102,7 +123,7 @@ public class RoleRepository extends AbstractEntityRepository<Long, Role> {
|
||||||
final int maxResults,
|
final int maxResults,
|
||||||
final int firstResult) {
|
final int firstResult) {
|
||||||
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
final TypedQuery<Role> query = getEntityManager().createNamedQuery(
|
||||||
"Role.searchByName", Role.class);
|
"Role.searchByName", Role.class);
|
||||||
query.setParameter("name", name);
|
query.setParameter("name", name);
|
||||||
query.setFirstResult(firstResult);
|
query.setFirstResult(firstResult);
|
||||||
query.setMaxResults(maxResults);
|
query.setMaxResults(maxResults);
|
||||||
|
|
@ -111,7 +132,7 @@ public class RoleRepository extends AbstractEntityRepository<Long, Role> {
|
||||||
|
|
||||||
public long searchByNameCount(final String name) {
|
public long searchByNameCount(final String name) {
|
||||||
final TypedQuery<Long> query = getEntityManager().createNamedQuery(
|
final TypedQuery<Long> query = getEntityManager().createNamedQuery(
|
||||||
"Role.searchByNameCount", Long.class);
|
"Role.searchByNameCount", Long.class);
|
||||||
query.setParameter("name", name);
|
query.setParameter("name", name);
|
||||||
try {
|
try {
|
||||||
return query.getSingleResult();
|
return query.getSingleResult();
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,6 @@ import org.jboss.arquillian.transaction.api.annotation.Transactional;
|
||||||
import org.jboss.shrinkwrap.api.ShrinkWrap;
|
import org.jboss.shrinkwrap.api.ShrinkWrap;
|
||||||
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
|
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
|
||||||
import org.jboss.shrinkwrap.api.spec.WebArchive;
|
import org.jboss.shrinkwrap.api.spec.WebArchive;
|
||||||
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
|
|
||||||
import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStage;
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
|
@ -42,21 +40,22 @@ import org.junit.experimental.categories.Category;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.libreccm.tests.categories.IntegrationTest;
|
import org.libreccm.tests.categories.IntegrationTest;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.PersistenceContext;
|
import javax.persistence.PersistenceContext;
|
||||||
|
import org.libreccm.core.CcmObject;
|
||||||
|
import org.libreccm.core.CcmObjectRepository;
|
||||||
|
|
||||||
import static org.hamcrest.Matchers.*;
|
import static org.hamcrest.Matchers.*;
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
import static org.libreccm.testutils.DependenciesHelpers.*;
|
import static org.libreccm.testutils.DependenciesHelpers.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for the {@link RoleRepository}. Note. We are not enabling the
|
* Tests for the {@link RoleRepository}. Note. We are not enabling the
|
||||||
* {@link AuthorizationInterceptor} for this test.
|
* {@link AuthorizationInterceptor} for this test.
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
*/
|
*/
|
||||||
@Category(IntegrationTest.class)
|
@Category(IntegrationTest.class)
|
||||||
|
|
@ -73,6 +72,9 @@ public class RoleRepositoryTest {
|
||||||
@Inject
|
@Inject
|
||||||
private RoleRepository roleRepository;
|
private RoleRepository roleRepository;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private CcmObjectRepository ccmObjRepo;
|
||||||
|
|
||||||
@PersistenceContext
|
@PersistenceContext
|
||||||
private EntityManager entityManager;
|
private EntityManager entityManager;
|
||||||
|
|
||||||
|
|
@ -104,16 +106,18 @@ public class RoleRepositoryTest {
|
||||||
.addPackage(org.libreccm.core.CcmObject.class.getPackage())
|
.addPackage(org.libreccm.core.CcmObject.class.getPackage())
|
||||||
.addPackage(org.libreccm.categorization.Categorization.class
|
.addPackage(org.libreccm.categorization.Categorization.class
|
||||||
.getPackage())
|
.getPackage())
|
||||||
.addPackage(org.libreccm.configuration.ConfigurationManager.class
|
.addPackage(
|
||||||
|
org.libreccm.configuration.ConfigurationManager.class
|
||||||
.getPackage())
|
.getPackage())
|
||||||
.addPackage(org.libreccm.l10n.LocalizedString.class.getPackage())
|
.addPackage(org.libreccm.l10n.LocalizedString.class.getPackage()).
|
||||||
.addPackage(org.libreccm.web.CcmApplication.class.getPackage())
|
addPackage(org.libreccm.web.CcmApplication.class.getPackage())
|
||||||
.addPackage(org.libreccm.workflow.Workflow.class.getPackage())
|
.addPackage(org.libreccm.workflow.Workflow.class.getPackage())
|
||||||
.addPackage(org.libreccm.jpa.EntityManagerProducer.class
|
.addPackage(org.libreccm.jpa.EntityManagerProducer.class
|
||||||
.getPackage())
|
.getPackage())
|
||||||
.addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class
|
.addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class
|
||||||
.getPackage())
|
.getPackage())
|
||||||
.addPackage(org.libreccm.testutils.EqualsVerifier.class.getPackage())
|
.addPackage(org.libreccm.testutils.EqualsVerifier.class.
|
||||||
|
getPackage())
|
||||||
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
|
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
|
||||||
.getPackage())
|
.getPackage())
|
||||||
.addAsLibraries(getModuleDependencies())
|
.addAsLibraries(getModuleDependencies())
|
||||||
|
|
@ -124,16 +128,31 @@ public class RoleRepositoryTest {
|
||||||
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
|
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify that a {@link RoleRepository} instance is injected into
|
||||||
|
* {@link #roleRepository}.
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void repoIsInjected() {
|
public void repoIsInjected() {
|
||||||
assertThat(roleRepository, is(not(nullValue())));
|
assertThat(roleRepository, is(not(nullValue())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify that a {@link EntityManager} instance is injected into
|
||||||
|
* {@link #entityManager}.
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void entityManagerIsInjected() {
|
public void entityManagerIsInjected() {
|
||||||
assertThat(entityManager, is(not(nullValue())));
|
assertThat(entityManager, is(not(nullValue())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method encapsulating some checks done multiple test methods.
|
||||||
|
*
|
||||||
|
* @param administrator The administrator role.
|
||||||
|
* @param user The user role.
|
||||||
|
* @param reader The reader role.
|
||||||
|
*/
|
||||||
private void checkRoles(final Role administrator,
|
private void checkRoles(final Role administrator,
|
||||||
final Role user,
|
final Role user,
|
||||||
final Role reader) {
|
final Role reader) {
|
||||||
|
|
@ -150,6 +169,10 @@ public class RoleRepositoryTest {
|
||||||
assertThat(reader.getName(), is(equalTo(READER)));
|
assertThat(reader.getName(), is(equalTo(READER)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tries to find several {@link Role}s by their {@link Role#roleId} using
|
||||||
|
* {@link RoleRepository#findById(java.lang.Object)}.
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
||||||
@InSequence(100)
|
@InSequence(100)
|
||||||
|
|
@ -161,6 +184,10 @@ public class RoleRepositoryTest {
|
||||||
checkRoles(administrator, user, reader);
|
checkRoles(administrator, user, reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tries to find several {@link Role}s by their unique {@link Role#name}
|
||||||
|
* using {@link RoleRepository#findByName(java.lang.String)}.
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
||||||
@InSequence(200)
|
@InSequence(200)
|
||||||
|
|
@ -172,6 +199,9 @@ public class RoleRepositoryTest {
|
||||||
checkRoles(administrator, user, reader);
|
checkRoles(administrator, user, reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tries to find all {@link Role}s using {@link RoleRepository#findAll()}.
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
||||||
@InSequence(300)
|
@InSequence(300)
|
||||||
|
|
@ -181,6 +211,70 @@ public class RoleRepositoryTest {
|
||||||
assertThat(roles.size(), is(3));
|
assertThat(roles.size(), is(3));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests the {@link RoleRepository#findByPrivilege(java.lang.String)} method
|
||||||
|
* and the named query used by this method. Note: We are using the dataset
|
||||||
|
* from the {@link PermissionManagerTest} here because it contains roles,
|
||||||
|
* permissions and objects.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
@UsingDataSet(
|
||||||
|
"datasets/org/libreccm/security/PermissionManagerTest/data.yml")
|
||||||
|
@InSequence(310)
|
||||||
|
public void findByPrivilege() {
|
||||||
|
final List<Role> rolesWithPrivilege1 = roleRepository.findByPrivilege(
|
||||||
|
"privilege1");
|
||||||
|
final List<Role> rolesWithPrivilege2 = roleRepository.findByPrivilege(
|
||||||
|
"privilege2");
|
||||||
|
final List<Role> empty = roleRepository.findByPrivilege("privilege3");
|
||||||
|
|
||||||
|
assertThat(rolesWithPrivilege1.size(), is(1));
|
||||||
|
assertThat(rolesWithPrivilege2.size(), is(2));
|
||||||
|
assertThat(empty.isEmpty(), is(true));
|
||||||
|
|
||||||
|
assertThat(rolesWithPrivilege1.get(0).getName(), is(equalTo("role1")));
|
||||||
|
assertThat(rolesWithPrivilege2.get(0).getName(), is(equalTo("role1")));
|
||||||
|
assertThat(rolesWithPrivilege2.get(1).getName(), is(equalTo("role2")));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests the {@link RoleRepository#findByPrivilege(java.lang.String, org.libreccm.core.CcmObject)
|
||||||
|
* } method and the named query used by this method. Note: We are using the
|
||||||
|
* dataset from the {@link PermissionManagerTest} here because it contains
|
||||||
|
* roles, permissions and objects.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
@UsingDataSet(
|
||||||
|
"datasets/org/libreccm/security/PermissionManagerTest/data.yml")
|
||||||
|
@InSequence(310)
|
||||||
|
public void findByPrivilegeAndObject() {
|
||||||
|
final CcmObject object1 = ccmObjRepo.findById(-20001L);
|
||||||
|
final CcmObject object2 = ccmObjRepo.findById(-20002L);
|
||||||
|
final CcmObject object3 = ccmObjRepo.findById(-20003L);
|
||||||
|
|
||||||
|
final List<Role> rolesWithPrivilege1 = roleRepository.findByPrivilege(
|
||||||
|
"privilege1", object1);
|
||||||
|
final List<Role> rolesWithPrivilege2 = roleRepository.findByPrivilege(
|
||||||
|
"privilege2", object1);
|
||||||
|
final List<Role> empty1 = roleRepository.findByPrivilege("privilege3",
|
||||||
|
object1);
|
||||||
|
final List<Role> empty2 = roleRepository.findByPrivilege("privilege1",
|
||||||
|
object3);
|
||||||
|
|
||||||
|
assertThat(rolesWithPrivilege1.size(), is(0));
|
||||||
|
assertThat(rolesWithPrivilege2.size(), is(1));
|
||||||
|
assertThat(empty1.isEmpty(), is(true));
|
||||||
|
assertThat(empty2.isEmpty(), is(true));
|
||||||
|
|
||||||
|
assertThat(rolesWithPrivilege2.get(0).getName(), is(equalTo("role1")));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tries to save a new {@link Role} by using
|
||||||
|
* {@link RoleRepository#save(org.libreccm.security.Role)}.
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
||||||
@ShouldMatchDataSet(value = "datasets/org/libreccm/security/"
|
@ShouldMatchDataSet(value = "datasets/org/libreccm/security/"
|
||||||
|
|
@ -194,6 +288,10 @@ public class RoleRepositoryTest {
|
||||||
roleRepository.save(role);
|
roleRepository.save(role);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tries to save a updated {@link Role} by using
|
||||||
|
* {@link RoleRepository#save(org.libreccm.security.Role)}.
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
||||||
@ShouldMatchDataSet(value = "datasets/org/libreccm/security/"
|
@ShouldMatchDataSet(value = "datasets/org/libreccm/security/"
|
||||||
|
|
@ -207,6 +305,11 @@ public class RoleRepositoryTest {
|
||||||
roleRepository.save(role);
|
roleRepository.save(role);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifies that {@link RoleRepository#save(org.libreccm.security.Role)}
|
||||||
|
* throws a {@link IllegalArgumentException} is called with {@code null} for
|
||||||
|
* the {@link Role} to save.
|
||||||
|
*/
|
||||||
@Test(expected = IllegalArgumentException.class)
|
@Test(expected = IllegalArgumentException.class)
|
||||||
@ShouldThrowException(IllegalArgumentException.class)
|
@ShouldThrowException(IllegalArgumentException.class)
|
||||||
@InSequence(600)
|
@InSequence(600)
|
||||||
|
|
@ -214,6 +317,10 @@ public class RoleRepositoryTest {
|
||||||
roleRepository.save(null);
|
roleRepository.save(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tries a delete a {@link Role} by using
|
||||||
|
* {@link RoleRepository#delete(org.libreccm.security.Role)}.
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
@UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml")
|
||||||
@ShouldMatchDataSet(value = "datasets/org/libreccm/security/"
|
@ShouldMatchDataSet(value = "datasets/org/libreccm/security/"
|
||||||
|
|
@ -226,6 +333,11 @@ public class RoleRepositoryTest {
|
||||||
roleRepository.delete(role);
|
roleRepository.delete(role);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifies that {@link RoleRepository#delete(org.libreccm.security.Role)}
|
||||||
|
* throws an {@link IllegalArgumentException} is called with {@code null}
|
||||||
|
* for the {@link Role} to delete.
|
||||||
|
*/
|
||||||
@Test(expected = IllegalArgumentException.class)
|
@Test(expected = IllegalArgumentException.class)
|
||||||
@ShouldThrowException(IllegalArgumentException.class)
|
@ShouldThrowException(IllegalArgumentException.class)
|
||||||
@InSequence(800)
|
@InSequence(800)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue