@Test(timeout = 15000)
public void testTaskNotStartedReassign() throws Exception {
Reader reader = new InputStreamReader(getClass().getResourceAsStream(MvelFilePath.DeadlineWithMultipleReassignment));
Map<String, Object> vars = new HashMap<String, Object>();
vars.put("now", new Date());
Task task = (InternalTask) TaskFactory.evalTask(reader, vars);
Environment environment = EnvironmentFactory.newEnvironment();
Map<String, Object> inputVars = new HashMap<String, Object>();
inputVars.put("NotStartedReassign", "[users:Tony Stark,Bobba Fet,Jabba Hutt|groups:]@[2s]");
((InternalTask) task).setDeadlines(HumanTaskHandlerHelper.setDeadlines(inputVars, Collections.emptyList(), environment));
taskService.addTask(task, inputVars);
CountDownTaskEventListener countDownListener = new CountDownTaskEventListener(1, true, false);
addCountDownListner(countDownListener);
long taskId = task.getId();
String []owners = new String[] {
"Tony Stark", "Bobba Fet", "Jabba Hutt"
};
for(String owner : owners) {
countDownListener.reset(1);
taskService.claim(taskId, owner);
task = taskService.getTaskById(taskId);
assertThat(task.getTaskData().getActualOwner().getId()).isEqualTo(owner);
countDownListener.waitTillCompleted();
task = taskService.getTaskById(taskId);
assertThat(task.getTaskData().getActualOwner()).as("Task was not reclaimed").isNull();
}
taskService.claim(taskId, "Bobba Fet");
taskService.start(taskId, "Bobba Fet");
taskService.complete(taskId, "Bobba Fet", Collections.<String, Object>emptyMap());
}