package enhancedsnapshots.dto.converter;
import com.sungardas.enhancedsnapshots.aws.dynamodb.model.TaskEntry;
import com.sungardas.enhancedsnapshots.dto.TaskDto;
import com.sungardas.enhancedsnapshots.dto.converter.TaskDtoConverter;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
public class TaskDtoConverterTest {
private String id = "Id1";
private String priority = "2";
private String status = "queued";
private String type = "backup";
private List<String> volumes = Arrays.asList("vol-c343123b", "vol-c34232");
private String schedulerManual = "false";
private String schedulerName = "everyYear";
private String schedulerTime = "00:03:82";
private String instanceId = "i-6easdads";
private String backupFileName = "someFileName";
private String cron = "0 0 1 1 *";
private String zone = "az";
private String regular = Boolean.TRUE.toString();
private String enabled = "true";
private TaskDto taskDto;
@Before
public void setUp(){
taskDto = new TaskDto();
taskDto.setId(id);
taskDto.setPriority(priority);
taskDto.setType(type);
taskDto.setStatus(status);
taskDto.setVolumes(volumes);
taskDto.setSchedulerManual(schedulerManual);
taskDto.setSchedulerTime(schedulerTime);
taskDto.setSchedulerName(schedulerName);
taskDto.setBackupFileName(backupFileName);
taskDto.setCron(cron);
taskDto.setZone(zone);
taskDto.setRegular(regular);
taskDto.setEnabled(enabled);
}
@Test
public void shouldConvertFromTaskDtoToTaskEnty(){
List<TaskEntry> taskEntries = TaskDtoConverter.convert(taskDto);
// assert there are 2 taskEntries since there are 2 volumes in the volumes list
Assert.assertTrue(taskEntries.size() == 2);
// check properties values
for(TaskEntry taskEntry: taskEntries) {
Assert.assertTrue(taskEntry.getId().equals(id));
// backup priority is 0
Assert.assertTrue(taskEntry.getPriority() == 0);
Assert.assertTrue(taskEntry.getType().equals(type));
Assert.assertTrue(taskEntry.getStatus().equals(status));
Assert.assertTrue(taskEntry.getSchedulerManual().equals(schedulerManual));
Assert.assertTrue(taskEntry.getSchedulerName().equals(schedulerName));
//TODO: find out what if instance ids were different while backup of several volumes ???
Assert.assertTrue(taskEntry.getCron().equals(cron));
Assert.assertTrue(taskEntry.getAvailabilityZone().equals(zone));
Assert.assertTrue(taskEntry.getEnabled().equals(enabled));
}
// check volume id of first taskEntry
Assert.assertTrue(taskEntries.get(0).getVolume().equals(volumes.get(0)));
// check volume id of second taskEntry
Assert.assertTrue(taskEntries.get(1).getVolume().equals(volumes.get(1)));
}
@Test
public void shouldSetPriority1ForDeleteTasks(){
taskDto.setType("delete");
List<TaskEntry> taskEntries = TaskDtoConverter.convert(taskDto);
// check priority of first taskEntry
Assert.assertTrue(taskEntries.get(0).getPriority() == 1);
// check priority of second taskEntry
Assert.assertTrue(taskEntries.get(1).getPriority() == 1);
}
}