@Test
public void testTaskStart() throws Exception {
final CassandraDaemonTask daemonTask = Mockito.mock(CassandraDaemonTask.class);
Mockito.when(cassandraState.get(UPLOAD_NODE_0)).thenReturn(Optional.empty());
final HashMap<String, CassandraDaemonTask> map = new HashMap<>();
map.put(NODE_0, daemonTask);
Mockito.when(cassandraState.getDaemons()).thenReturn(map);
final BackupRestoreContext context = BackupRestoreContext.create("", "", "", "", "", "", false, "");
final BackupUploadTask task = Mockito.mock(BackupUploadTask.class);
Mockito.when(task.getSlaveId()).thenReturn("1234");
Mockito.when(task.getType()).thenReturn(CassandraTask.TYPE.BACKUP_UPLOAD);
Mockito.when(cassandraState.getOrCreateBackupUpload(daemonTask, context)).thenReturn(task);
final UploadBackupStep step = new UploadBackupStep(NODE_0, cassandraState, provider, context);
final OfferRequirement requirement = Mockito.mock(OfferRequirement.class);
Mockito.when(provider.getUpdateOfferRequirement(Mockito.any(), Mockito.any())).thenReturn(requirement);
Assert.assertTrue(step.start().isPresent());
Assert.assertEquals(Status.PENDING, step.getStatus());
}
}