/** * */ 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.assertNull; import static org.junit.Assert.assertTrue; import java.util.List; import org.apache.commons.lang.NotImplementedException; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.VmStatic; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; /** * @author yzaslavs * */ public class VmStaticDAOTest extends BaseDAOTestCase { private static final Guid EXISTING_VM_ID = new Guid("77296e00-0cad-4e5a-9299-008a7b6f4355"); private static final Guid VDS_STATIC_ID = new Guid("afce7a39-8e8c-4819-ba9c-796d316592e6"); private static final Guid VDS_GROUP_ID = new Guid("b399944a-81ab-4ec5-8266-e19ba7c3c9d1"); private VmStaticDAO dao; private VmStatic existingVmStatic; private VmStatic newVmStatic; private VmTemplate vmtemplate; @Override public void setUp() throws Exception { super.setUp(); dao = dbFacade.getVmStaticDAO(); existingVmStatic = dao.get(EXISTING_VM_ID); vmtemplate = dbFacade.getVmTemplateDAO().get( new Guid("1b85420c-b84c-4f29-997e-0eb674b40b79")); newVmStatic = new VmStatic(); newVmStatic.setId(Guid.NewGuid()); newVmStatic.setvm_name("New Virtual Machine"); newVmStatic.setvds_group_id(VDS_GROUP_ID); newVmStatic.setvmt_guid(vmtemplate.getId()); } /** * Ensures that get requires a valid id. */ @Test public void testGetWithInvalidId() { VmStatic result = dao.get(Guid.NewGuid()); assertNull(result); } /** * Ensures that get works as expected. */ @Test public void testGet() { VmStatic result = dao.get(existingVmStatic.getId()); assertNotNull(result); assertEquals(result, existingVmStatic); } /** * Ensures that all VMs are returned. */ @Test public void testGetAllStaticByName() { List<VmStatic> result = dao.getAllByName("rhel5-pool-50"); assertNotNull(result); assertFalse(result.isEmpty()); for (VmStatic vm : result) { assertEquals("rhel5-pool-50", vm.getvm_name()); } } /** * Ensures that all VMs are returned from storage pool */ @Test public void testGetAllStaticByStoragePool() { NGuid spID = dbFacade.getVdsGroupDAO().get(newVmStatic.getvds_group_id()).getstorage_pool_id(); assertNotNull(spID.getValue()); List<VmStatic> result = dao.getAllByStoragePoolId(spID.getValue()); assertNotNull(result); assertFalse(result.isEmpty()); } /** * Ensures that all static vm details for the specified group and network are returned. */ @Test public void testGetAllByGroupAndNetwork() { List<VmStatic> result = dao.getAllByGroupAndNetworkName( VDS_GROUP_ID, "engine"); assertNotNull(result); assertFalse(result.isEmpty()); for (VmStatic vm : result) { assertEquals(VDS_GROUP_ID, vm.getvds_group_id()); } } /** * Ensures that all static VMs for the specified VDS group are returned. */ @Test public void testGetAllByVdsGroup() { List<VmStatic> result = dao.getAllByVdsGroup(VDS_GROUP_ID); assertNotNull(result); assertFalse(result.isEmpty()); for (VmStatic vm : result) { assertEquals(VDS_GROUP_ID, vm.getvds_group_id()); } } /** * Ensures that the right set of VMs are returned. */ @Test public void testGetAllWithFailbackByVds() { List<VmStatic> result = dao.getAllWithFailbackByVds(VDS_STATIC_ID); assertNotNull(result); assertFalse(result.isEmpty()); for (VmStatic vm : result) { assertEquals(VDS_GROUP_ID, vm.getvds_group_id()); } } @Test(expected = NotImplementedException.class) public void testGetAll() { dao.getAll(); } @Test public void testSave() { dao.save(newVmStatic); VmStatic result = dao.get(newVmStatic.getId()); assertNotNull(result); assertEquals(newVmStatic, result); } @Test public void testUpdate() { existingVmStatic.setdescription("updated"); dao.update(existingVmStatic); VmStatic result = dao.get(EXISTING_VM_ID); assertNotNull(result); assertEquals(existingVmStatic, result); } @Test public void testRemove() { dao.remove(EXISTING_VM_ID); VmStatic result = dao.get(EXISTING_VM_ID); assertNull(result); } @Test public void testGetAllNamesPinnedToHostReturnsNothingForRandomHost() throws Exception { assertTrue(dao.getAllNamesPinnedToHost(Guid.NewGuid()).isEmpty()); } @Test public void testGetAllNamesPinnedToHostReturnsNothingForHostButNotPinned() throws Exception { assertTrue(dao.getAllNamesPinnedToHost(Guid.createGuidFromString("afce7a39-8e8c-4819-ba9c-796d316592e7")).isEmpty()); } @Test public void testGetAllNamesPinnedToHostReturnsVmNameForHostPinned() throws Exception { List<String> namesPinnedToHost = dao.getAllNamesPinnedToHost(VDS_STATIC_ID); assertFalse(namesPinnedToHost.isEmpty()); assertTrue(namesPinnedToHost.contains(existingVmStatic.getvm_name())); } }