public void testBoundaryEventTest() throws Exception { ProcessDefinition process = ProcessBuilder.createProcess("boundaryTimer", "1.0") .addHuman(getLogin()) .addHumanTask("step1", getLogin()) .addTimerBoundaryEvent("In_5_seconds", "5000") .addHumanTask("normal", getLogin()) .addHumanTask("exception", getLogin()) .addTransition("step1", "normal") .addExceptionTransition("step1", "In_5_seconds", "exception") .done(); BusinessArchive archive = getBusinessArchive(process); process = getManagementAPI().deploy(archive); final ProcessDefinitionUUID processUUID = process.getUUID(); ProcessInstanceUUID instanceUUID = getRuntimeAPI().instantiateProcess(processUUID); Set<LightTaskInstance> tasks = getQueryRuntimeAPI().getLightTasks(instanceUUID); assertEquals(1, tasks.size()); LightTaskInstance task = tasks.iterator().next(); assertEquals("step1", task.getActivityName()); Thread.sleep(8000); tasks = getQueryRuntimeAPI().getLightTasks(instanceUUID); for (LightTaskInstance lightTaskInstance : tasks) { System.out.println(lightTaskInstance); } assertEquals(2, tasks.size()); // task = tasks.iterator().next(); // assertEquals("exception", task.getActivityName()); getManagementAPI().deleteProcess(processUUID); }
public void testDeleteBoundaryEventTest() throws Exception { ProcessDefinition process = ProcessBuilder.createProcess("boundaryTimer", "1.1") .addHuman(getLogin()) .addHumanTask("step1", getLogin()) .addTimerBoundaryEvent("In_a_minute", "5000") .addHumanTask("normal", getLogin()) .addHumanTask("exception", getLogin()) .addTransition("step1", "normal") .addExceptionTransition("step1", "In_a_minute", "exception") .done(); BusinessArchive archive = getBusinessArchive(process); process = getManagementAPI().deploy(archive); final ProcessDefinitionUUID processUUID = process.getUUID(); ProcessInstanceUUID instanceUUID = getRuntimeAPI().instantiateProcess(processUUID); Set<LightTaskInstance> tasks = getQueryRuntimeAPI().getLightTasks(instanceUUID); assertEquals(1, tasks.size()); LightTaskInstance task = tasks.iterator().next(); assertEquals("step1", task.getActivityName()); executeTask(instanceUUID, "step1"); getManagementAPI().deleteProcess(processUUID); }
public void testCancelAProcessUsingAStartTimerEvent() throws Exception { ProcessDefinition process = ProcessBuilder.createProcess("CancelitSTime", "1.0") .addHuman(getLogin()) .addTimerTask("every_second", "${new Date(timerLastExecution + 100000)}") .addHumanTask("step1", getLogin()) .addTransition("every_second", "step1") .done(); process = getManagementAPI().deploy(getBusinessArchive(process)); final ProcessDefinitionUUID processUUID = process.getUUID(); ProcessInstanceUUID instanceUUID = getRuntimeAPI().instantiateProcess(processUUID); Set<LightActivityInstance> activities = getQueryRuntimeAPI().getLightActivityInstances(instanceUUID); assertEquals(2, activities.size()); Set<LightTaskInstance> tasks = getQueryRuntimeAPI().getLightTasks(instanceUUID); assertEquals(1, tasks.size()); LightTaskInstance task = tasks.iterator().next(); assertEquals("step1", task.getActivityName()); getRuntimeAPI().cancelProcessInstance(instanceUUID); assertEquals( InstanceState.CANCELLED, getQueryRuntimeAPI().getProcessInstance(instanceUUID).getInstanceState()); getManagementAPI().deleteProcess(processUUID); }
public void testExecuteTimerBoundaryEventOnASubFlowUsingATimer2() throws Exception { ProcessDefinition subflow = ProcessBuilder.createProcess("sub", "atomic") .addHuman(getLogin()) .addSystemTask("end") .addHumanTask("subStep", getLogin()) .addTimerBoundaryEvent("In_a_second", "1000") .addExceptionTransition("subStep", "In_a_second", "end") .done(); ProcessDefinition mainflow = ProcessBuilder.createProcess("main", "frame") .addHuman(getLogin()) .addSubProcess("step1", "sub") .addTimerBoundaryEvent("In_5_seconds", "5000") .addHumanTask("normalStep", getLogin()) .addHumanTask("exceptionStep", getLogin()) .addTransition("step1", "normalStep") .addExceptionTransition("step1", "In_5_seconds", "exceptionStep") .done(); subflow = getManagementAPI().deploy(getBusinessArchive(subflow)); mainflow = getManagementAPI().deploy(getBusinessArchive(mainflow)); final ProcessInstanceUUID instanceUUID = getRuntimeAPI().instantiateProcess(mainflow.getUUID()); final ProcessInstanceUUID subflowInstanceUUID = getQueryRuntimeAPI() .getLightProcessInstances(subflow.getUUID()) .iterator() .next() .getUUID(); final Set<LightActivityInstance> parentActivities = getQueryRuntimeAPI().getLightActivityInstances(instanceUUID); assertEquals(1, parentActivities.size()); LightActivityInstance activity = parentActivities.iterator().next(); assertEquals("step1", activity.getActivityName()); assertEquals(ActivityState.EXECUTING, activity.getState()); final Set<LightActivityInstance> subflowActivities = getQueryRuntimeAPI().getLightActivityInstances(subflowInstanceUUID); assertEquals(1, subflowActivities.size()); LightActivityInstance subActivity = subflowActivities.iterator().next(); assertEquals("subStep", subActivity.getActivityName()); assertEquals(ActivityState.READY, subActivity.getState()); Thread.sleep(6000); Set<LightTaskInstance> tasks = getQueryRuntimeAPI().getLightTasks(instanceUUID); assertEquals(1, tasks.size()); LightTaskInstance task = tasks.iterator().next(); assertEquals("normalStep", task.getActivityName()); assertEquals( 0, getQueryRuntimeAPI().getLightTaskList(subflowInstanceUUID, ActivityState.READY).size()); assertEquals( ActivityState.FINISHED, getQueryRuntimeAPI() .getLightActivityInstances(instanceUUID, "step1") .iterator() .next() .getState()); assertEquals( InstanceState.FINISHED, getQueryRuntimeAPI().getLightProcessInstance(subflowInstanceUUID).getInstanceState()); assertEquals( ActivityState.ABORTED, getQueryRuntimeAPI() .getLightActivityInstances(subflowInstanceUUID, "subStep") .iterator() .next() .getState()); getManagementAPI().deleteProcess(mainflow.getUUID()); getManagementAPI().deleteProcess(subflow.getUUID()); }