package org.ovirt.engine.core.dao;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.Arrays;
import org.junit.Test;
import org.ovirt.engine.core.common.businessentities.VmStatistics;
import org.ovirt.engine.core.compat.Guid;
import org.springframework.dao.DataIntegrityViolationException;
public class VmStatisticsDaoTest extends BaseDaoTestCase {
private static final Guid EXISTING_VM_ID = new Guid("77296e00-0cad-4e5a-9299-008a7b6f4355");
private static final Guid NEW_VM_ID = new Guid("77296e00-0cad-4e5a-9299-008a7b6f5001");
private VmStatisticsDao dao;
private VmStatistics newVmStatistics;
@Override
public void setUp() throws Exception {
super.setUp();
dao = dbFacade.getVmStatisticsDao();
newVmStatistics = new VmStatistics();
}
@Test
public void testGet() {
VmStatistics result = dao.get(EXISTING_VM_ID);
assertNotNull(result);
assertEquals(EXISTING_VM_ID, result.getId());
}
@Test
public void testGetNonExistingId() {
VmStatistics result = dao.get(Guid.newGuid());
assertNull(result);
}
@Test
public void testSave() {
newVmStatistics.setId(NEW_VM_ID);
newVmStatistics.setCpuSys(22D);
newVmStatistics.setCpuUser(35D);
newVmStatistics.setUsageCpuPercent(44);
newVmStatistics.setUsageMemPercent(67);
newVmStatistics.setDisksUsage("disk_usage");
newVmStatistics.setGuestMemoryBuffered(32L);
newVmStatistics.setGuestMemoryCached(34L);
dao.save(newVmStatistics);
VmStatistics stats = dao.get(NEW_VM_ID);
assertNotNull(stats);
assertEquals(newVmStatistics, stats);
}
@Test(expected = DataIntegrityViolationException.class)
public void testSaveStaticDoesNotExist() {
Guid newGuid = Guid.newGuid();
newVmStatistics.setId(newGuid);
dao.save(newVmStatistics);
VmStatistics stats = dao.get(newGuid);
assertNull(stats);
}
@Test
public void testUpdateStatistics() {
VmStatistics before = dao.get(EXISTING_VM_ID);
before.setUsageMemPercent(17);
before.setDisksUsage("java.util.map { [ ] }");
dao.update(before);
VmStatistics after = dao.get(EXISTING_VM_ID);
assertEquals(before, after);
}
@Test
public void testRemoveStatistics() {
VmStatistics before = dao.get(EXISTING_VM_ID);
// make sure we're using a real example
assertNotNull(before);
dao.remove(EXISTING_VM_ID);
VmStatistics after = dao.get(EXISTING_VM_ID);
assertNull(after);
}
@Test(expected = UnsupportedOperationException.class)
public void testGetAll() {
dao.getAll();
}
@Test
public void testUpdateAll() throws Exception {
VmStatistics existingVm = dao.get(EXISTING_VM_ID);
VmStatistics existingVm2 = dao.get(new Guid("77296e00-0cad-4e5a-9299-008a7b6f4356"));
existingVm.setCpuSys(50.0);
existingVm2.setCpuUser(50.0);
dao.updateAll(Arrays.asList(existingVm, existingVm2));
assertEquals(existingVm, dao.get(existingVm.getId()));
assertEquals(existingVm2, dao.get(existingVm2.getId()));
}
}