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);
}
TaskWorkerTest.java 文件源码
java
阅读 28
收藏 0
点赞 0
评论 0
项目:perecoder
作者:
评论列表
文章目录