package org.ovirt.engine.core.dao; import static org.junit.Assert.*; import java.util.List; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.RoleType; import org.ovirt.engine.core.common.businessentities.roles; import org.ovirt.engine.core.compat.Guid; public class RoleDAOTest extends BaseDAOTestCase { private static final Guid AD_ELEMENT_ID = new Guid("9bf7c640-b620-456f-a550-0348f366544b"); private static final int ROLE_COUNT = 3; private RoleDAO dao; private roles existingRole; private roles newRole; @Override public void setUp() throws Exception { super.setUp(); dao = prepareDAO(dbFacade.getRoleDAO()); existingRole = dao.get(new Guid("f5972bfa-7102-4d33-ad22-9dd421bfba78")); newRole = new roles(); newRole.setname("new role"); newRole.setdescription("This is a new role."); newRole.setType(RoleType.USER); } /** * Ensures that the id must be valid. */ @Test public void testGetRoleWithInvalidId() { roles result = dao.get(Guid.NewGuid()); assertNull(result); } /** * Ensures that retrieving a role works as expected. */ @Test public void testGetRole() { roles result = dao.get(existingRole.getId()); assertNotNull(result); assertEquals(existingRole, result); } /** * Ensures that an invalid name results in a null role. */ @Test public void testGetRoleByNameWithInvalidName() { roles result = dao.getByName("Farkle"); assertNull(result); } /** * Ensures that retrieving a role by name works as expected. */ @Test public void testGetRoleByName() { roles result = dao.getByName(existingRole.getname()); assertNotNull(result); assertEquals(existingRole, result); } /** * Ensures the right number of roles are returned. */ @Test public void testGetAllRoles() { List<roles> result = dao.getAll(); assertNotNull(result); assertFalse(result.isEmpty()); assertEquals(ROLE_COUNT, result.size()); } /** * Ensures an empty collection is returned when no roles exist for the specified ad element. */ @Test public void testGetAllRolesForAdElementWithInvalidId() { List<roles> result = dao.getAllForAdElement(Guid.NewGuid()); assertNotNull(result); assertTrue(result.isEmpty()); } /** * Ensures that a collection of roles are returned. */ @Test public void testGetAllRolesForAdElement() { List<roles> result = dao.getAllForAdElement(AD_ELEMENT_ID); assertNotNull(result); assertFalse(result.isEmpty()); } /** * Ensures an empty collection is returned if the ad element is invalid. */ @Test public void testGetAllRolesForUserAndGroupByAdElementWithInvalidAdElement() { List<roles> result = dao.getAllForAdElement(Guid.NewGuid()); assertNotNull(result); assertTrue(result.isEmpty()); } /** * Ensures the right collection of roles is returned. */ @Test public void testGetAllRolesForUserAndGroupByAdElement() { List<roles> result = dao.getAllForAdElement(AD_ELEMENT_ID); assertNotNull(result); assertFalse(result.isEmpty()); } /** * Ensures that saving a role works as expected. */ @Test public void testSaveRole() { dao.save(newRole); roles result = dao.getByName(newRole.getname()); assertNotNull(result); assertEquals(newRole, result); } /** * Ensures that updating a role works as expected. */ @Test public void testUpdateRole() { existingRole.setdescription("This is an updated description"); dao.update(existingRole); roles result = dao.get(existingRole.getId()); assertNotNull(result); assertEquals(existingRole, result); } /** * Asserts removing a role works as expectedl */ @Test public void testRemoveRole() { dao.remove(existingRole.getId()); roles result = dao.get(existingRole.getId()); assertNull(result); } }