TaskWorkerTest.java 文件源码

java
阅读 28 收藏 0 点赞 0 评论 0

项目:perecoder 作者:
public void testCancelTaskStatus() throws Throwable {
    final TaskDescriptor descriptor = createMockTaskDescriptor();
    final TaskWorker worker = new TaskWorker("owner", "author", descriptor, performer, eventPublisher);

    Mockito.doAnswer(
            new Answer() {
                @Override
                public Object answer(InvocationOnMock invocation) throws Throwable {
                    worker.cancel(true);
                    return Collections.<String, Object>emptyMap();
                }
            }
    ).when(performer).performTask(Mockito.any(ITaskProgress.class), Mockito.anyMapOf(String.class, Object.class));

    executorService.submit(worker).get();
    // check events
    ArgumentCaptor<TaskExecutionEvent> eventCaptor = ArgumentCaptor.forClass(TaskExecutionEvent.class);
    Mockito.verify(eventPublisher, new Times(6)).publishEvent(eventCaptor.capture());
    List<TaskExecutionEvent> events = eventCaptor.getAllValues();
    assertTaskProgressEvent(events.get(0), new TaskProgressEvent(worker, descriptor.getId(), null, new TaskProgress(TaskProgress.PENDING_STEP)));
    assertTaskExecutionEvent(events.get(1), new TaskExecutionEvent(worker, descriptor.getId(), null, TaskExecutionStatus.RUNNING));
    assertTaskProgressEvent(events.get(2), new TaskProgressEvent(worker, descriptor.getId(), null, new TaskProgress(TaskProgress.EXECUTING_STEP)));
    assertTaskExecutionEvent(events.get(3), new TaskExecutionEvent(worker, descriptor.getId(), null, TaskExecutionStatus.INTERRUPTING));
    assertTaskProgressEvent(events.get(4), new TaskProgressEvent(worker, descriptor.getId(), null, null));
    assertTaskExecutionEvent(events.get(5), new TaskExecutionEvent(worker, descriptor.getId(), null, TaskExecutionStatus.READY));
    // check result
    assertTaskResult(worker.get(), TaskResultStatus.CANCELED);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号