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.List;
import org.junit.Test;
import org.ovirt.engine.core.common.businessentities.KdumpFlowStatus;
import org.ovirt.engine.core.common.businessentities.VdsKdumpStatus;
import org.ovirt.engine.core.compat.Guid;
/**
* {@link VdsKdumpStatusDao} tests
*/
public class VdsKdumpStatusDaoTest extends BaseDaoTestCase {
/**
* Test getting status for existing VDS
*/
@Test
public void getForExistingVds() {
VdsKdumpStatus expected = new VdsKdumpStatus();
expected.setVdsId(new Guid("afce7a39-8e8c-4819-ba9c-796d316592e7"));
expected.setStatus(KdumpFlowStatus.DUMPING);
expected.setAddress("[\"192.168.122.18\", 2222]");
VdsKdumpStatus found = dbFacade.getVdsKdumpStatusDao().get(expected.getVdsId());
assertNotNull(found);
assertEquals(expected, found);
}
/**
* Test getting status for non existent VDS
*/
@Test
public void getForNonExistentVds() {
VdsKdumpStatus found = dbFacade.getVdsKdumpStatusDao().get(
new Guid("11111111-2222-3333-4444-555555555555")
);
assertNull(found);
}
/**
* Test creating new status record
*/
@Test
public void createStatusForVds() {
VdsKdumpStatus newVdsKdumpStatus = new VdsKdumpStatus();
newVdsKdumpStatus.setVdsId(new Guid("afce7a39-8e8c-4819-ba9c-796d316592e8"));
newVdsKdumpStatus.setStatus(KdumpFlowStatus.DUMPING);
newVdsKdumpStatus.setAddress("[\"192.168.122.16\", 1111]");
dbFacade.getVdsKdumpStatusDao().update(newVdsKdumpStatus);
VdsKdumpStatus found = dbFacade.getVdsKdumpStatusDao().get(newVdsKdumpStatus.getVdsId());
assertNotNull(found);
assertEquals(newVdsKdumpStatus, found);
}
/**
* Test creating new status record
*/
@Test
public void createStatusForIp() {
VdsKdumpStatus newVdsKdumpStatus = new VdsKdumpStatus();
newVdsKdumpStatus.setStatus(KdumpFlowStatus.DUMPING);
newVdsKdumpStatus.setAddress("[\"10.35.110.10\", 1111]");
dbFacade.getVdsKdumpStatusDao().updateForIp("10.35.110.10", newVdsKdumpStatus);
newVdsKdumpStatus.setVdsId(new Guid("afce7a39-8e8c-4819-ba9c-796d316592e6"));
VdsKdumpStatus found = dbFacade.getVdsKdumpStatusDao().get(newVdsKdumpStatus.getVdsId());
assertNotNull(found);
assertEquals(newVdsKdumpStatus, found);
}
/**
* Test updating existing status record
*/
@Test
public void updateStatusForVds() {
VdsKdumpStatus existing = new VdsKdumpStatus();
existing.setVdsId(new Guid("afce7a39-8e8c-4819-ba9c-796d316592e7"));
existing.setStatus(KdumpFlowStatus.FINISHED);
existing.setAddress("[\"192.168.122.25\", 4444]");
dbFacade.getVdsKdumpStatusDao().update(existing);
VdsKdumpStatus found = dbFacade.getVdsKdumpStatusDao().get(existing.getVdsId());
assertNotNull(found);
assertEquals(existing, found);
}
/**
* Test updating existing status record for IP address
*/
@Test
public void updateStatusForIp() {
VdsKdumpStatus existing = new VdsKdumpStatus();
existing.setStatus(KdumpFlowStatus.FINISHED);
existing.setAddress("[\"10.35.110.10\", 4444]");
dbFacade.getVdsKdumpStatusDao().updateForIp("10.35.110.10", existing);
existing.setVdsId(new Guid("afce7a39-8e8c-4819-ba9c-796d316592e6"));
VdsKdumpStatus found = dbFacade.getVdsKdumpStatusDao().get(existing.getVdsId());
assertNotNull(found);
assertEquals(existing, found);
}
/**
* Test removing finished status for existing VDS
*/
@Test
public void removeForExistingVds() {
Guid vdsId = new Guid("11111111-1111-1111-1111-111111111112");
dbFacade.getVdsKdumpStatusDao().remove(vdsId);
VdsKdumpStatus found = dbFacade.getVdsKdumpStatusDao().get(vdsId);
assertNull(found);
}
/**
* Test removing finished status for non existent VDS
*/
@Test
public void removeForNonExistentVds() {
dbFacade.getVdsKdumpStatusDao().remove(
new Guid("11111111-2222-3333-4444-555555555555")
);
}
/**
* Test getting all VDSs with unfinished kdump status
*/
@Test
public void getAllUnfinishedKdumpStatus() {
List<VdsKdumpStatus> result = dbFacade.getVdsKdumpStatusDao().getAllUnfinishedVdsKdumpStatus();
assertNotNull(result);
assertEquals(1, result.size());
}
}