package org.ovirt.engine.core.dao.gluster;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.sql.Time;
import java.util.Date;
import org.junit.Test;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotSchedule;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotScheduleRecurrence;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.BaseDaoTestCase;
public class GlusterVolumeSnapshotScheduleDaoTest extends BaseDaoTestCase {
private static final Guid CLUSTER_ID = new Guid("ae956031-6be2-43d6-bb8f-5191c9253314");
private static final Guid VOLUME_ID_1 = new Guid("0c3f45f6-3fe9-4b35-a30c-be0d1a835ea8");
private static final Guid VOLUME_ID_2 = new Guid("b2cb2f73-fab3-4a42-93f0-d5e4c069a43e");
private GlusterVolumeSnapshotScheduleDao dao;
private GlusterVolumeSnapshotSchedule existingSchedule;
private GlusterVolumeSnapshotSchedule newSchedule;
@Override
public void setUp() throws Exception {
super.setUp();
dao = dbFacade.getGlusterVolumeSnapshotScheduleDao();
existingSchedule = dao.getByVolumeId(VOLUME_ID_1);
}
@Test
public void testSaveAndGetByVolumeId() {
GlusterVolumeSnapshotSchedule schedule = dao.getByVolumeId(VOLUME_ID_2);
assertNull(schedule);
newSchedule = insertSnapshotSchedule();
schedule = dao.getByVolumeId(VOLUME_ID_2);
assertNotNull(schedule);
assertEquals(schedule, newSchedule);
}
private GlusterVolumeSnapshotSchedule insertSnapshotSchedule() {
GlusterVolumeSnapshotSchedule schedule = new GlusterVolumeSnapshotSchedule();
schedule.setClusterId(CLUSTER_ID);
schedule.setVolumeId(VOLUME_ID_2);
schedule.setJobId("test_job_id");
schedule.setSnapshotNamePrefix("prefix");
schedule.setSnapshotDescription("desc");
schedule.setInterval(0);
schedule.setRecurrence(GlusterVolumeSnapshotScheduleRecurrence.DAILY);
schedule.setTimeZone("Asia/Calcutta");
schedule.setExecutionTime(new Time(10, 30, 0));
schedule.setEndByDate(null);
dao.save(schedule);
return schedule;
}
@Test
public void testGetByVolumeId() {
GlusterVolumeSnapshotSchedule schedule = dao.getByVolumeId(VOLUME_ID_1);
assertNotNull(schedule);
assertEquals(schedule, existingSchedule);
}
@Test
public void testRemoveByVolumeId() {
dao.removeByVolumeId(VOLUME_ID_1);
GlusterVolumeSnapshotSchedule schedule = dao.getByVolumeId(VOLUME_ID_1);
assertNull(schedule);
}
@Test
public void testUpdateShceduleByVolumeId() {
GlusterVolumeSnapshotSchedule schedule = dao.getByVolumeId(VOLUME_ID_1);
schedule.setRecurrence(GlusterVolumeSnapshotScheduleRecurrence.HOURLY);
schedule.setStartDate(new Date());
schedule.setInterval(0);
dao.updateScheduleByVolumeId(VOLUME_ID_1, schedule);
GlusterVolumeSnapshotSchedule fetchedSchedule = dao.getByVolumeId(VOLUME_ID_1);
assertNotNull(fetchedSchedule);
assertEquals(fetchedSchedule, schedule);
}
}