package org.activiti.examples.bpmn.usertask; import java.util.HashMap; import java.util.List; import java.util.Map; import org.activiti.engine.impl.test.PluggableActivitiTestCase; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.test.Deployment; public class SkipExpressionUserTaskTest extends PluggableActivitiTestCase { @Deployment public void test() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("skipExpressionUserTask"); List<Task> tasks = taskService.createTaskQuery().list(); assertEquals(1, tasks.size()); taskService.complete(tasks.get(0).getId()); assertEquals(0, taskService.createTaskQuery().list().size()); Map<String, Object> variables2 = new HashMap<String, Object>(); variables2.put("_ACTIVITI_SKIP_EXPRESSION_ENABLED", true); variables2.put("skip", false); ProcessInstance pi2 = runtimeService.startProcessInstanceByKey("skipExpressionUserTask", variables2); List<Task> tasks2 = taskService.createTaskQuery().list(); assertEquals(1, tasks2.size()); taskService.complete(tasks2.get(0).getId()); assertEquals(0, taskService.createTaskQuery().list().size()); Map<String, Object> variables3 = new HashMap<String, Object>(); variables3.put("_ACTIVITI_SKIP_EXPRESSION_ENABLED", true); variables3.put("skip", true); ProcessInstance pi3 = runtimeService.startProcessInstanceByKey("skipExpressionUserTask", variables3); List<Task> tasks3 = taskService.createTaskQuery().list(); assertEquals(0, tasks3.size()); } @Deployment public void testWithCandidateGroups() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("_ACTIVITI_SKIP_EXPRESSION_ENABLED", true); vars.put("skip", true); runtimeService.startProcessInstanceByKey("skipExpressionUserTask", vars); assertEquals(0, taskService.createTaskQuery().list().size()); } @Deployment public void testSkipMultipleTasks() { Map<String,Object> variables = new HashMap<String,Object>(); variables.put("_ACTIVITI_SKIP_EXPRESSION_ENABLED", true); variables.put("skip1", true); variables.put("skip2", true); variables.put("skip3", false); ProcessInstance pi = runtimeService.startProcessInstanceByKey("skipExpressionUserTask-testSkipMultipleTasks", variables); List<Task> tasks = taskService.createTaskQuery().list(); assertEquals(1, tasks.size()); assertEquals("Task3", tasks.get(0).getName()); } }