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 java.util.Arrays; import java.util.List; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.VmDynamic; import org.ovirt.engine.core.compat.Guid; public class VmDynamicDAOTest extends BaseDAOTestCase { private static final Guid VDS_STATIC_ID = new Guid("afce7a39-8e8c-4819-ba9c-796d316592e6"); private static final int DYNAMIC_RUNNING_COUNT = 3; private VmDynamicDAO dao; private VmDynamic existingVm; private Guid existingStaticGuidVm = new Guid("77296e00-0cad-4e5a-9299-008a7b6f4357"); private VmDynamic newVmDynamic; @Override public void setUp() throws Exception { super.setUp(); dao = dbFacade.getVmDynamicDAO(); existingVm = dao.get(new Guid("77296e00-0cad-4e5a-9299-008a7b6f4355")); existingVm.setstatus(VMStatus.Up); newVmDynamic = new VmDynamic(); } /** * Gets all dynamic details for VMs running on a specific VDS. */ @Test public void testGetAllForRunningForVds() { List<VmDynamic> result = dao.getAllRunningForVds(VDS_STATIC_ID); assertNotNull(result); assertFalse(result.isEmpty()); assertEquals(DYNAMIC_RUNNING_COUNT, result.size()); for (VmDynamic vmdynamic : result) { assertEquals(VDS_STATIC_ID, vmdynamic.getrun_on_vds()); } } /** * Ensures updating the dynamic status aspect of the VM works. */ @Test public void testUpdateStatus() { VmDynamic before = dao.get(existingVm.getId()); before.setstatus(VMStatus.Down); dao.updateStatus(before.getId(), before.getstatus()); VmDynamic after = dao.get(existingVm.getId()); assertEquals(before, after); } /** * Ensures that null is returned when the id is invalid. */ @Test public void testGetWithInvalidId() { VmDynamic result = dao.get(Guid.NewGuid()); assertNull(result); } @Test public void testGet() { VmDynamic result = dao.get(existingVm.getId()); assertNotNull(result); assertEquals(existingVm.getId(), result.getId()); } @Test public void testSave() { newVmDynamic.setId(existingStaticGuidVm); dao.save(newVmDynamic); VmDynamic vmdynamic = dao.get(newVmDynamic.getId()); assertNotNull(vmdynamic); assertEquals(vmdynamic, newVmDynamic); } /** * Ensures deleting the dynamic portion of a VM works. */ @Test public void testRemoveDynamic() { VmDynamic before = dao.get(existingVm.getId()); // make sure we're using a real example assertNotNull(before); dao.remove(existingVm.getId()); VmDynamic after = dao.get(existingVm.getId()); assertNull(after); } /** * Ensures updating the dynamic aspect of the VM works. */ @Test public void testUpdate() { VmDynamic before = dao.get(existingVm.getId()); before.setvm_host("farkle.redhat.com"); dao.update(before); VmDynamic after = dao.get(existingVm.getId()); assertEquals(before, after); } @Test public void testUpdateAll() throws Exception { VmDynamic existingVm2 = dao.get(Guid.createGuidFromString("77296e00-0cad-4e5a-9299-008a7b6f4356")); existingVm.setstatus(VMStatus.Down); existingVm2.setvm_ip("111"); dao.updateAll(Arrays.asList(new VmDynamic[] { existingVm, existingVm2 })); assertEquals(existingVm, dao.get(existingVm.getId())); assertEquals(existingVm2, dao.get(existingVm2.getId())); } }