package org.ovirt.engine.core.dao;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.Calendar;
import java.util.Date;
import org.junit.Before;
import org.junit.Test;
import org.ovirt.engine.core.common.businessentities.EngineBackupLog;
import org.ovirt.engine.core.utils.RandomUtils;
public class EngineBackupLogDaoTest extends BaseDaoTestCase {
private EngineBackupLogDao dao;
private EngineBackupLog existingEngineBackupLog;
private EngineBackupLog newEntity;
private static final String SCOPE = "db";
private static final String NON_EXISTING_SCOPE = "invalid";
@Override
@Before
public void setUp() throws Exception {
super.setUp();
dao = dbFacade.getEngineBackupLogDao();
existingEngineBackupLog = dao.getLastSuccessfulEngineBackup(SCOPE);
newEntity = new EngineBackupLog();
newEntity.setScope(RandomUtils.instance().nextString(20));
newEntity.setDoneAt(new Date());
newEntity.setPassed(true);
newEntity.setOutputMessage(RandomUtils.instance().nextString(20));
newEntity.setFqdn(RandomUtils.instance().nextString(20));
newEntity.setLogPath(RandomUtils.instance().nextString(20));
}
@Test
public void testGetLastSuccessfulEngineBackup() {
existingEngineBackupLog = dao.getLastSuccessfulEngineBackup(SCOPE);
assertNotNull(existingEngineBackupLog);
}
@Test
public void testGetLastSuccessfulEngineBackupWithWrongDbName() {
existingEngineBackupLog = dao.getLastSuccessfulEngineBackup(NON_EXISTING_SCOPE);
assertNull(existingEngineBackupLog);
}
@Test
public void testAddingNewUnsuccessfulBackupEvent() {
EngineBackupLog engineBackupLog = new EngineBackupLog();
engineBackupLog.setScope(SCOPE);
engineBackupLog.setDoneAt(Calendar.getInstance().getTime());
engineBackupLog.setPassed(false);
engineBackupLog.setOutputMessage("backup failed");
engineBackupLog.setFqdn(RandomUtils.instance().nextString(20));
engineBackupLog.setLogPath(RandomUtils.instance().nextString(20));
dao.save(engineBackupLog);
EngineBackupLog entry = dao.getLastSuccessfulEngineBackup(SCOPE);
assertNotNull(entry);
assertEquals(entry, existingEngineBackupLog);
}
@Test
public void testAddingNewSuccessfulBackupEvent() {
EngineBackupLog engineBackupLog = new EngineBackupLog();
engineBackupLog.setScope(SCOPE);
engineBackupLog.setDoneAt(Calendar.getInstance().getTime());
engineBackupLog.setPassed(true);
engineBackupLog.setOutputMessage("backup completed successfully");
engineBackupLog.setFqdn(RandomUtils.instance().nextString(20));
engineBackupLog.setLogPath(RandomUtils.instance().nextString(20));
dao.save(engineBackupLog);
EngineBackupLog entry = dao.getLastSuccessfulEngineBackup(SCOPE);
assertNotNull(entry);
assertNotEquals(entry.getDoneAt(), existingEngineBackupLog.getDoneAt());
assertTrue(entry.isPassed());
}
}