private boolean wasCancelled(TaskId taskId) { return idToExecutionDetails.get(taskId).getStatus() == Status.CANCELLED; }
public String getStatus() { return executionDetails.getStatus().getValue(); }
@Override public List<TaskExecutionDetails> list(Status status) { return idToExecutionDetails.values() .stream() .filter(details -> details.getStatus().equals(status)) .collect(Guavate.toImmutableList()); }
private TaskManager.Status entryWithId(List<TaskExecutionDetails> list, TaskId taskId) { return list.stream() .filter(e -> e.getTaskId().equals(taskId)) .findFirst().get() .getStatus(); }
private TaskManager.Status entryWithId(List<TaskExecutionDetails> list, TaskId taskId) { return list.stream() .filter(e -> e.getTaskId().equals(taskId)) .findFirst().get() .getStatus(); }
@Test public void awaitShouldReturnFailedWhenExceptionThrown() { TaskId taskId = memoryTaskManager.submit(() -> { throw new RuntimeException(); }); TaskExecutionDetails executionDetails = memoryTaskManager.await(taskId); assertThat(executionDetails.getStatus()) .isEqualTo(TaskManager.Status.FAILED); }
@Test public void getStatusShouldReturnInProgressWhenProcessingIsInProgress() throws Exception { CountDownLatch latch1 = new CountDownLatch(1); CountDownLatch latch2 = new CountDownLatch(1); TaskId taskId = memoryTaskManager.submit(() -> { latch2.countDown(); await(latch1); return Task.Result.COMPLETED; }); latch2.await(); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.IN_PROGRESS); }
@Test public void getStatusShouldReturnInProgressWhenProcessingIsInProgress() throws Exception { CountDownLatch latch1 = new CountDownLatch(1); CountDownLatch latch2 = new CountDownLatch(1); TaskId taskId = memoryTaskManager.submit(() -> { latch2.countDown(); await(latch1); return Task.Result.COMPLETED; }); latch2.await(); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.IN_PROGRESS); }
@Test public void awaitShouldReturnFailedWhenExceptionThrown() { TaskId taskId = memoryTaskManager.submit(() -> { throw new RuntimeException(); }); TaskExecutionDetails executionDetails = memoryTaskManager.await(taskId); assertThat(executionDetails.getStatus()) .isEqualTo(TaskManager.Status.FAILED); }
@Test public void getStatusShouldReturnFailedWhenRunPartially() throws Exception { CountDownLatch latch = new CountDownLatch(1); TaskId taskId = memoryTaskManager.submit( () -> Task.Result.PARTIAL, countDownCallback(latch)); latch.await(); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.FAILED); }
@Test public void getStatusShouldReturnCompletedWhenRunSuccessfully() throws Exception { CountDownLatch latch = new CountDownLatch(1); TaskId taskId = memoryTaskManager.submit( () -> Task.Result.COMPLETED, countDownCallback(latch)); latch.await(); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.COMPLETED); }
@Test public void getStatusShouldReturnCompletedWhenRunSuccessfully() throws Exception { CountDownLatch latch = new CountDownLatch(1); TaskId taskId = memoryTaskManager.submit( () -> Task.Result.COMPLETED, countDownCallback(latch)); latch.await(); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.COMPLETED); }
@Test public void getStatusShouldReturnFailedWhenRunPartially() throws Exception { CountDownLatch latch = new CountDownLatch(1); TaskId taskId = memoryTaskManager.submit( () -> Task.Result.PARTIAL, countDownCallback(latch)); latch.await(); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.FAILED); }
@Test public void getStatusShouldReturnFailedWhenExceptionThrown() { TaskId taskId = memoryTaskManager.submit(() -> { throw new RuntimeException(); }); memoryTaskManager.await(taskId); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.FAILED); }
@Test public void getStatusShouldReturnFailedWhenExceptionThrown() { TaskId taskId = memoryTaskManager.submit(() -> { throw new RuntimeException(); }); memoryTaskManager.await(taskId); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.FAILED); }
@Test public void getStatusShouldReturnCancelledWhenCancelled() throws Exception { CountDownLatch task1Latch = new CountDownLatch(1); CountDownLatch ensureStartedLatch = new CountDownLatch(1); CountDownLatch ensureFinishedLatch = new CountDownLatch(1); TaskId id = memoryTaskManager.submit(() -> { ensureStartedLatch.countDown(); await(task1Latch); return Task.Result.COMPLETED; }, any -> ensureFinishedLatch.countDown()); ensureStartedLatch.await(); memoryTaskManager.cancel(id); ensureFinishedLatch.await(); assertThat(memoryTaskManager.getExecutionDetails(id).getStatus()) .isEqualTo(TaskManager.Status.CANCELLED); }
@Test public void getStatusShouldReturnCancelledWhenCancelled() throws Exception { CountDownLatch task1Latch = new CountDownLatch(1); CountDownLatch ensureStartedLatch = new CountDownLatch(1); CountDownLatch ensureFinishedLatch = new CountDownLatch(1); TaskId id = memoryTaskManager.submit(() -> { ensureStartedLatch.countDown(); await(task1Latch); return Task.Result.COMPLETED; }, any -> ensureFinishedLatch.countDown()); ensureStartedLatch.await(); memoryTaskManager.cancel(id); ensureFinishedLatch.await(); assertThat(memoryTaskManager.getExecutionDetails(id).getStatus()) .isEqualTo(TaskManager.Status.CANCELLED); }
@Test public void getStatusShouldReturnWaitingWhenNotYetProcessed() { CountDownLatch task1Latch = new CountDownLatch(1); memoryTaskManager.submit(() -> { await(task1Latch); return Task.Result.COMPLETED; }); TaskId taskId = memoryTaskManager.submit(() -> Task.Result.COMPLETED); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.WAITING); }
@Test public void getStatusShouldReturnWaitingWhenNotYetProcessed() { CountDownLatch task1Latch = new CountDownLatch(1); memoryTaskManager.submit(() -> { await(task1Latch); return Task.Result.COMPLETED; }); TaskId taskId = memoryTaskManager.submit(() -> Task.Result.COMPLETED); assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus()) .isEqualTo(TaskManager.Status.WAITING); }