@Test public void testTaskStartAlreadyCompleted() throws Exception { final CassandraDaemonTask daemonTask = Mockito.mock(CassandraDaemonTask.class); Mockito.when(cassandraState.get(UPGRADESSTABLE_NODE_0)).thenReturn(Optional.empty()); final HashMap<String, CassandraDaemonTask> map = new HashMap<>(); map.put(NODE_0, null); Mockito.when(cassandraState.getDaemons()).thenReturn(map); final UpgradeSSTableContext context = UpgradeSSTableContext.create(Collections.emptyList(), Collections.emptyList(), Collections.emptyList()); final UpgradeSSTableTask task = Mockito.mock(UpgradeSSTableTask.class); Mockito.when(task.getSlaveId()).thenReturn("1234"); Mockito.when(cassandraState.getOrCreateUpgradeSSTable(daemonTask, CONTEXT)).thenReturn(task); final UpgradeSSTableStep step = new UpgradeSSTableStep(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.assertTrue(step.isComplete()); }
@Test public void testTaskStart() throws Exception { final CassandraDaemonTask daemonTask = Mockito.mock(CassandraDaemonTask.class); Mockito.when(cassandraState.get(UPGRADESSTABLE_NODE_0)).thenReturn(Optional.empty()); final HashMap<String, CassandraDaemonTask> map = new HashMap<>(); map.put(NODE_0, daemonTask); Mockito.when(cassandraState.getDaemons()).thenReturn(map); final UpgradeSSTableTask task = Mockito.mock(UpgradeSSTableTask.class); Mockito.when(task.getSlaveId()).thenReturn("1234"); Mockito.when(task.getType()).thenReturn(CassandraTask.TYPE.CLEANUP); Mockito.when(cassandraState.getOrCreateUpgradeSSTable(daemonTask, CONTEXT)).thenReturn(task); final UpgradeSSTableStep step = new UpgradeSSTableStep(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()); // not IN_PROGRESS until the requirement is fulfilled!: Assert.assertEquals(Status.PENDING, step.getStatus()); } }