@Test
public void testTaskStart() throws Exception {
final CassandraDaemonTask daemonTask = Mockito.mock(CassandraDaemonTask.class);
Mockito.when(cassandraState.get("snapshot-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 backupRestoreContext = BackupRestoreContext.create("", "", "", "", "", "", false, "");
final BackupSnapshotTask snapshotTask = Mockito.mock(BackupSnapshotTask.class);
Mockito.when(snapshotTask.getSlaveId()).thenReturn("1234");
Mockito.when(snapshotTask.getType()).thenReturn(CassandraTask.TYPE.BACKUP_SNAPSHOT);
Mockito.when(cassandraState.getOrCreateBackupSnapshot(daemonTask, backupRestoreContext))
.thenReturn(snapshotTask);
final BackupSnapshotStep backupSnapshotStep =
new BackupSnapshotStep("node-0", cassandraState, provider, backupRestoreContext);
final OfferRequirement requirement = Mockito.mock(OfferRequirement.class);
Mockito.when(provider.getUpdateOfferRequirement(Mockito.any(), Mockito.any())).thenReturn(requirement);
Assert.assertNotNull(backupSnapshotStep.start());
Assert.assertEquals(Status.PENDING, backupSnapshotStep.getStatus());
}