@Override protected CmmnActivityBehavior getActivityBehavior() { return new HumanTaskActivityBehavior(); }
protected void manualCompleting(CmmnActivityExecution execution) { completing(execution); }
protected void completing(CmmnActivityExecution execution) { TaskEntity task = getTask(execution); if (task != null) { task.caseExecutionCompleted(); } }
@Test public void testTaskDefinition() { // given: a plan item // when CmmnActivity activity = handler.handleElement(planItem, context); // then // there exists a taskDefinition HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); assertNotNull(behavior.getTaskDefinition()); }
protected void performExit(CmmnActivityExecution execution) { terminating(execution); super.performExit(execution); }
@Override protected void initializeActivity(CmmnElement element, CmmnActivity activity, CmmnHandlerContext context) { // execute standard initialization super.initializeActivity(element, activity, context); // create a taskDefinition TaskDefinition taskDefinition = createTaskDefinition(element, context); // get the caseDefinition... CaseDefinitionEntity caseDefinition = (CaseDefinitionEntity) context.getCaseDefinition(); // ... and taskDefinition to caseDefinition caseDefinition.getTaskDefinitions().put(taskDefinition.getKey(), taskDefinition); ExpressionManager expressionManager = context.getExpressionManager(); // create decorator TaskDecorator taskDecorator = new TaskDecorator(taskDefinition, expressionManager); // set taskDecorator on behavior HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); behavior.setTaskDecorator(taskDecorator); // task listeners initializeTaskListeners(element, activity, context, taskDefinition); }
@Test public void testExpressionManager() { // given: a plan item // when CmmnActivity activity = handler.handleElement(planItem, context); // then HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); ExpressionManager expressionManager = behavior.getExpressionManager(); assertNotNull(expressionManager); assertEquals(context.getExpressionManager(), expressionManager); }
@Test public void testTaskDecorator() { // given: a plan item // when CmmnActivity activity = handler.handleElement(planItem, context); // then // there exists a taskDecorator HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); assertNotNull(behavior.getTaskDecorator()); }
@Test public void testTaskDefinitionCandidateGroups() { // given String aCandidateGroups = "accounting,management,backoffice"; humanTask.setCamundaCandidateGroups(aCandidateGroups); // when CmmnActivity activity = handler.handleElement(planItem, context); // then HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); TaskDefinition taskDefinition = behavior.getTaskDefinition(); Set<Expression> candidateGroupExpressions = taskDefinition.getCandidateGroupIdExpressions(); assertEquals(3, candidateGroupExpressions.size()); for (Expression candidateGroupExpression : candidateGroupExpressions) { String candidateGroup = candidateGroupExpression.getExpressionText(); if ("accounting".equals(candidateGroup)) { assertEquals("accounting", candidateGroup); } else if ("management".equals(candidateGroup)) { assertEquals("management", candidateGroup); } else if ("backoffice".equals(candidateGroup)) { assertEquals("backoffice", candidateGroup); } else { fail("Unexpected candidate group: " + candidateGroup); } } }
protected void performExit(CmmnActivityExecution execution) { terminating(execution); super.performExit(execution); }
@Override protected void initializeActivity(CmmnElement element, CmmnActivity activity, CmmnHandlerContext context) { // execute standard initialization super.initializeActivity(element, activity, context); // create a taskDefinition TaskDefinition taskDefinition = createTaskDefinition(element, context); // get the caseDefinition... CaseDefinitionEntity caseDefinition = (CaseDefinitionEntity) context.getCaseDefinition(); // ... and taskDefinition to caseDefinition caseDefinition.getTaskDefinitions().put(taskDefinition.getKey(), taskDefinition); ExpressionManager expressionManager = context.getExpressionManager(); // create decorator TaskDecorator taskDecorator = new TaskDecorator(taskDefinition, expressionManager); // set taskDecorator on behavior HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); behavior.setTaskDecorator(taskDecorator); // task listeners initializeTaskListeners(element, activity, context, taskDefinition); }
@Test public void testExpressionManager() { // given: a plan item // when CmmnActivity activity = handler.handleElement(planItem, context); // then HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); ExpressionManager expressionManager = behavior.getExpressionManager(); assertNotNull(expressionManager); assertEquals(context.getExpressionManager(), expressionManager); }
@Test public void testTaskDecorator() { // given: a plan item // when CmmnActivity activity = handler.handleElement(planItem, context); // then // there exists a taskDecorator HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); assertNotNull(behavior.getTaskDecorator()); }
@Test public void testTaskDefinitionCandidateUsers() { // given String aCandidateUsers = "mary,john,peter"; humanTask.setCamundaCandidateUsers(aCandidateUsers); // when CmmnActivity activity = handler.handleElement(planItem, context); // then HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); TaskDefinition taskDefinition = behavior.getTaskDefinition(); Set<Expression> candidateUserExpressions = taskDefinition.getCandidateUserIdExpressions(); assertEquals(3, candidateUserExpressions.size()); for (Expression candidateUserExpression : candidateUserExpressions) { String candidateUser = candidateUserExpression.getExpressionText(); if ("mary".equals(candidateUser)) { assertEquals("mary", candidateUser); } else if ("john".equals(candidateUser)) { assertEquals("john", candidateUser); } else if ("peter".equals(candidateUser)) { assertEquals("peter", candidateUser); } else { fail("Unexpected candidate user: " + candidateUser); } } }
protected void terminating(CmmnActivityExecution execution) { TaskEntity task = getTask(execution); // it can happen that a there does not exist // a task, because the given execution was never // active. if (task != null) { task.delete("terminated", false); } }
protected void performTerminate(CmmnActivityExecution execution) { terminating(execution); super.performTerminate(execution); }
@Override protected CmmnActivityBehavior getActivityBehavior() { return new HumanTaskActivityBehavior(); }
protected void manualCompleting(CmmnActivityExecution execution) { completing(execution); }
@Override protected void initializeActivity(CmmnElement element, CmmnActivity activity, CmmnHandlerContext context) { // execute standard initialization super.initializeActivity(element, activity, context); // create a taskDefinition TaskDefinition taskDefinition = createTaskDefinition(element, context); // get the caseDefinition... CaseDefinitionEntity caseDefinition = (CaseDefinitionEntity) context.getCaseDefinition(); // ... and taskDefinition to caseDefinition caseDefinition.getTaskDefinitions().put(taskDefinition.getKey(), taskDefinition); ExpressionManager expressionManager = context.getExpressionManager(); // create decorator TaskDecorator taskDecorator = new TaskDecorator(taskDefinition, expressionManager); // set taskDecorator on behavior HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); behavior.setTaskDecorator(taskDecorator); // task listeners initializeTaskListeners(element, activity, context, taskDefinition); }
@Test public void testTaskDefinitionPriorityExpression() { // given String aPriority = "aPriority"; humanTask.setCamundaPriority(aPriority); // when CmmnActivity activity = handler.handleElement(planItem, context); // then HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior(); TaskDefinition taskDefinition = behavior.getTaskDefinition(); Expression priorityExpression = taskDefinition.getPriorityExpression(); assertNotNull(priorityExpression); assertEquals(aPriority, priorityExpression.getExpressionText()); }