package org.ovirt.engine.core.dao; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.RoleGroupMap; import org.ovirt.engine.core.compat.Guid; public class RoleGroupMapDaoTest extends BaseDaoTestCase { private static final Guid EXISTING_ROLE_ID = new Guid("f5972bfa-7102-4d33-ad22-9dd421bfba78"); private RoleGroupMapDao dao; private RoleGroupMap newRoleGroupMap; private ActionGroup actionGroup; private RoleGroupMap existingRoleGroupMap; @Override public void setUp() throws Exception { super.setUp(); dao = dbFacade.getRoleGroupMapDao(); existingRoleGroupMap = dao.getByActionGroupAndRole(ActionGroup.RUN_VM, EXISTING_ROLE_ID); actionGroup = ActionGroup.CONNECT_TO_VM; newRoleGroupMap = new RoleGroupMap(actionGroup, EXISTING_ROLE_ID); } @Test public void testGetByActionGroupAndRole() { RoleGroupMap result = dao.getByActionGroupAndRole(existingRoleGroupMap.getActionGroup(), existingRoleGroupMap.getRoleId()); assertNotNull(result); assertEquals(existingRoleGroupMap, result); } /** * Ensures an empty collection is returned when the role is invalid. */ @Test public void testGetAllRoleGroupMapsWithInvalidRole() { List<RoleGroupMap> result = dao.getAllForRole(Guid.newGuid()); assertNotNull(result); assertTrue(result.isEmpty()); } /** * Ensures the right mappings are returned. */ @Test public void testGetAllRoleGroupMaps() { List<RoleGroupMap> result = dao.getAllForRole(EXISTING_ROLE_ID); assertNotNull(result); assertFalse(result.isEmpty()); for (RoleGroupMap map : result) { assertEquals(EXISTING_ROLE_ID, map.getRoleId()); } } /** * Ensures saving such a mapping works as expected. */ @Test public void testSaveRoleGroupMap() { dao.save(newRoleGroupMap); List<RoleGroupMap> result = dao.getAllForRole(newRoleGroupMap.getRoleId()); boolean worked = false; for (RoleGroupMap map : result) { worked |= newRoleGroupMap.equals(map); } assertTrue(worked); } /** * Ensures deleting a mapping works as expected. */ @Test public void testRemoveRoleGroupMap() { List<RoleGroupMap> before = dao.getAllForRole(EXISTING_ROLE_ID); // make sure we have things to delete first assertFalse(before.isEmpty()); for (RoleGroupMap map : before) { dao.remove(map.getActionGroup(), map.getRoleId()); } List<RoleGroupMap> after = dao.getAllForRole(EXISTING_ROLE_ID); assertTrue(after.isEmpty()); } }