@Deployment public void testExecutionListeners() { Map<String, Object> variables = new HashMap<String, Object>(); variables.put("start", 0); variables.put("end", 0); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testProcess", variables); int started = (Integer) runtimeService.getVariable(processInstance.getId(), "start"); assertEquals(5, started); int ended = (Integer) runtimeService.getVariable(processInstance.getId(), "end"); assertEquals(5, ended); int historyLevel = processEngineConfiguration.getHistoryLevel().getId(); if (historyLevel > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { long finishedCount = historyService.createHistoricActivityInstanceQuery().activityId("undoBookHotel").finished().count(); assertEquals(5, finishedCount); } }
@Deployment public void testNestedEventSubprocessListenersInvoked() { runtimeService.startProcessInstanceByKey("testProcess"); runtimeService.correlateMessage("message"); Task taskInEventSubProcess = taskService.createTaskQuery().singleResult(); assertEquals("taskInEventSubProcess", taskInEventSubProcess.getTaskDefinitionKey()); taskService.complete(taskInEventSubProcess.getId()); List<String> collectedEvents = TestExecutionListener.collectedEvents; assertEquals("taskInMainFlow-start", collectedEvents.get(0)); assertEquals("taskInMainFlow-end", collectedEvents.get(1)); assertEquals("eventSubProcess-start", collectedEvents.get(2)); assertEquals("startEventInSubProcess-start", collectedEvents.get(3)); assertEquals("startEventInSubProcess-end", collectedEvents.get(4)); assertEquals("taskInEventSubProcess-start", collectedEvents.get(5)); assertEquals("taskInEventSubProcess-end", collectedEvents.get(6)); assertEquals("eventSubProcess-end", collectedEvents.get(7)); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").canceled().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("startEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInEventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("endEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("eventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("subProcess").finished().count()); } }
@Deployment public void testNestedNonInterruptingEventSubprocessListenersInvoked() { runtimeService.startProcessInstanceByKey("testProcess"); runtimeService.correlateMessage("message"); Task taskInMainFlow = taskService.createTaskQuery().taskDefinitionKey("taskInMainFlow").singleResult(); assertNotNull(taskInMainFlow); Task taskInEventSubProcess = taskService.createTaskQuery().taskDefinitionKey("taskInEventSubProcess").singleResult(); assertNotNull(taskInEventSubProcess); taskService.complete(taskInMainFlow.getId()); taskService.complete(taskInEventSubProcess.getId()); List<String> collectedEvents = TestExecutionListener.collectedEvents; assertEquals("taskInMainFlow-start", collectedEvents.get(0)); assertEquals("eventSubProcess-start", collectedEvents.get(1)); assertEquals("startEventInSubProcess-start", collectedEvents.get(2)); assertEquals("startEventInSubProcess-end", collectedEvents.get(3)); assertEquals("taskInEventSubProcess-start", collectedEvents.get(4)); assertEquals("taskInMainFlow-end", collectedEvents.get(5)); assertEquals("taskInEventSubProcess-end", collectedEvents.get(6)); assertEquals("eventSubProcess-end", collectedEvents.get(7)); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("startEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInEventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("endEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("eventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("subProcess").finished().count()); } }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testHistoricActivityInstanceQueryStartFinishAfterBefore() { Calendar startTime = Calendar.getInstance(); ClockUtil.setCurrentTime(startTime.getTime()); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess", "businessKey123"); Calendar hourAgo = Calendar.getInstance(); hourAgo.add(Calendar.HOUR_OF_DAY, -1); Calendar hourFromNow = Calendar.getInstance(); hourFromNow.add(Calendar.HOUR_OF_DAY, 1); // Start/end dates assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finishedBefore(hourAgo.getTime()).count()); assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finishedBefore(hourFromNow.getTime()).count()); assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finishedAfter(hourAgo.getTime()).count()); assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finishedAfter(hourFromNow.getTime()).count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("theTask").startedBefore(hourFromNow.getTime()).count()); assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").startedBefore(hourAgo.getTime()).count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("theTask").startedAfter(hourAgo.getTime()).count()); assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").startedAfter(hourFromNow.getTime()).count()); assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").startedAfter(hourFromNow.getTime()).startedBefore(hourAgo.getTime()).count()); // After finishing process taskService.complete(taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult().getId()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finished().count()); assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finishedBefore(hourAgo.getTime()).count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finishedBefore(hourFromNow.getTime()).count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finishedAfter(hourAgo.getTime()).count()); assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finishedAfter(hourFromNow.getTime()).count()); assertEquals(0, historyService.createHistoricActivityInstanceQuery().activityId("theTask").finishedBefore(hourAgo.getTime()).finishedAfter(hourFromNow.getTime()).count()); }
@Test public void testFinishedHistoricActivityQueryAsPost() { Map<String, Boolean> body = new HashMap<String, Boolean>(); body.put("finished", true); Response response = given() .contentType(POST_JSON_CONTENT_TYPE) .body(body) .then() .expect() .statusCode(Status.OK.getStatusCode()) .when() .post(HISTORIC_ACTIVITY_INSTANCE_RESOURCE_URL); InOrder inOrder = inOrder(mockedQuery); inOrder.verify(mockedQuery).finished(); inOrder.verify(mockedQuery).list(); String content = response.asString(); List<String> instances = from(content).getList(""); Assert.assertEquals("There should be one activity instance returned.", 1, instances.size()); Assert.assertNotNull("The returned activity instance should not be null.", instances.get(0)); String returnedProcessInstanceId = from(content).getString("[0].processInstanceId"); String returnedProcessDefinitionId = from(content).getString("[0].processDefinitionId"); String returnedActivityEndTime = from(content).getString("[0].endTime"); Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID, returnedProcessInstanceId); Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID, returnedProcessDefinitionId); Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_END_TIME, returnedActivityEndTime); }
@Deployment public void testEventSubprocessListenersInvoked() { runtimeService.startProcessInstanceByKey("testProcess"); runtimeService.correlateMessage("message"); Task taskInEventSubProcess = taskService.createTaskQuery().singleResult(); assertEquals("taskInEventSubProcess", taskInEventSubProcess.getTaskDefinitionKey()); taskService.complete(taskInEventSubProcess.getId()); List<String> collectedEvents = TestExecutionListener.collectedEvents; assertEquals("taskInMainFlow-start", collectedEvents.get(0)); assertEquals("taskInMainFlow-end", collectedEvents.get(1)); assertEquals("eventSubProcess-start", collectedEvents.get(2)); assertEquals("startEventInSubProcess-start", collectedEvents.get(3)); assertEquals("startEventInSubProcess-end", collectedEvents.get(4)); assertEquals("taskInEventSubProcess-start", collectedEvents.get(5)); assertEquals("taskInEventSubProcess-end", collectedEvents.get(6)); assertEquals("eventSubProcess-end", collectedEvents.get(7)); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").canceled().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("startEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInEventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("endEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("eventSubProcess").finished().count()); } }
@Deployment public void testNonInterruptingEventSubprocessListenersInvoked() { runtimeService.startProcessInstanceByKey("testProcess"); runtimeService.correlateMessage("message"); Task taskInMainFlow = taskService.createTaskQuery().taskDefinitionKey("taskInMainFlow").singleResult(); assertNotNull(taskInMainFlow); Task taskInEventSubProcess = taskService.createTaskQuery().taskDefinitionKey("taskInEventSubProcess").singleResult(); assertNotNull(taskInEventSubProcess); taskService.complete(taskInMainFlow.getId()); taskService.complete(taskInEventSubProcess.getId()); List<String> collectedEvents = TestExecutionListener.collectedEvents; assertEquals("taskInMainFlow-start", collectedEvents.get(0)); assertEquals("eventSubProcess-start", collectedEvents.get(1)); assertEquals("startEventInSubProcess-start", collectedEvents.get(2)); assertEquals("startEventInSubProcess-end", collectedEvents.get(3)); assertEquals("taskInEventSubProcess-start", collectedEvents.get(4)); assertEquals("taskInMainFlow-end", collectedEvents.get(5)); assertEquals("taskInEventSubProcess-end", collectedEvents.get(6)); assertEquals("eventSubProcess-end", collectedEvents.get(7)); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("startEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInEventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("endEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("eventSubProcess").finished().count()); } }
@Test public void testFinishedHistoricActivityQuery() { Response response = given() .queryParam("finished", true) .then() .expect() .statusCode(Status.OK.getStatusCode()) .when() .get(HISTORIC_ACTIVITY_INSTANCE_RESOURCE_URL); InOrder inOrder = inOrder(mockedQuery); inOrder.verify(mockedQuery).finished(); inOrder.verify(mockedQuery).list(); String content = response.asString(); List<String> instances = from(content).getList(""); Assert.assertEquals("There should be one activity instance returned.", 1, instances.size()); Assert.assertNotNull("The returned activity instance should not be null.", instances.get(0)); String returnedProcessInstanceId = from(content).getString("[0].processInstanceId"); String returnedProcessDefinitionId = from(content).getString("[0].processDefinitionId"); String returnedActivityEndTime = from(content).getString("[0].endTime"); Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID, returnedProcessInstanceId); Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID, returnedProcessDefinitionId); Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_END_TIME, returnedActivityEndTime); }
@Deployment public void testEventSubprocessBoundaryListenersInvoked() { runtimeService.startProcessInstanceByKey("testProcess"); runtimeService.correlateMessage("message"); Task taskInEventSubProcess = taskService.createTaskQuery().singleResult(); assertEquals("taskInEventSubProcess", taskInEventSubProcess.getTaskDefinitionKey()); runtimeService.correlateMessage("message2"); List<String> collectedEvents = TestExecutionListener.collectedEvents; assertEquals("taskInMainFlow-start", collectedEvents.get(0)); assertEquals("taskInMainFlow-end", collectedEvents.get(1)); assertEquals("eventSubProcess-start", collectedEvents.get(2)); assertEquals("startEventInSubProcess-start", collectedEvents.get(3)); assertEquals("startEventInSubProcess-end", collectedEvents.get(4)); assertEquals("taskInEventSubProcess-start", collectedEvents.get(5)); assertEquals("taskInEventSubProcess-end", collectedEvents.get(6)); assertEquals("eventSubProcess-end", collectedEvents.get(7)); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").canceled().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("startEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInEventSubProcess").canceled().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("eventSubProcess").finished().count()); } }
/** * Tests following scenario: * 1. Process application 1 declares custom de-/serializer for object variable. Process is started with object variable within process application 1. * 2. Process is modified within process application 2, so that variable deserialization is required -> correct deserializer is used. */ @Test @OperateOnDeployment("pa3") public void test() throws Exception { final ProcessInstance processInstance = withProcessApplicationContext(new Callable<ProcessInstance>() { @Override public ProcessInstance call() throws Exception { final XmlSerializable var = new XmlSerializable(); var.setProperty("jonny"); return runtimeService.startProcessInstanceByKey("processWithTimer", Variables.createVariables() .putValueTyped("testObject", Variables.objectValue(var).serializationDataFormat(DataFormats.JSON_DATAFORMAT_NAME).create())); } }, "pa3"); withProcessApplicationContext(new Callable<Void>() { @Override public Void call() throws Exception { runtimeService.createProcessInstanceModification(processInstance.getProcessInstanceId()).startTransition("flow2") .execute(); return null; } }, "pa4"); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("exclusiveGateway").finished().count()); }
/** CAM-9220 (https://app.camunda.com/jira/browse/CAM-9220) */ @Deployment @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void testThrowEscalationEventFromEventSubprocess() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("embeddedEventSubprocess"); Job job = managementService.createJobQuery().singleResult(); managementService.executeJob(job.getId()); assertEquals(0, taskService.createTaskQuery() .processInstanceId(processInstance.getId()) .taskName("task in subprocess").count()); assertEquals(1, taskService.createTaskQuery() .processInstanceId(processInstance.getId()) .taskName("task in process").count()); // second timer job shouldn't be available job = managementService.createJobQuery().singleResult(); assertNull(job); // there should only be one completed Escalation Catch Boundary Event assertEquals(1, historyService.createHistoricActivityInstanceQuery() .processInstanceId(processInstance.getId()) .activityId("EscalationCatchBoundaryEvent") .finished() .count()); }
@Deployment public void testExecutionListeners() { Map<String, Object> variables = new HashMap<String, Object>(); variables.put("start", 0); variables.put("end", 0); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testProcess", variables); int started = (Integer) runtimeService.getVariable(processInstance.getId(), "start"); assertEquals(5, started); int ended = (Integer) runtimeService.getVariable(processInstance.getId(), "end"); assertEquals(5, ended); int historyLevel = processEngineConfiguration.getHistoryLevel().getId(); if (historyLevel > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { long finishedCount = historyService.createHistoricActivityInstanceQuery().activityId("undoBookHotel").finished().count(); assertEquals(5, finishedCount); } }
@Deployment public void testNestedEventSubprocessListenersInvoked() { runtimeService.startProcessInstanceByKey("testProcess"); runtimeService.correlateMessage("message"); Task taskInEventSubProcess = taskService.createTaskQuery().singleResult(); assertEquals("taskInEventSubProcess", taskInEventSubProcess.getTaskDefinitionKey()); taskService.complete(taskInEventSubProcess.getId()); List<String> collectedEvents = TestExecutionListener.collectedEvents; assertEquals("taskInMainFlow-start", collectedEvents.get(0)); assertEquals("taskInMainFlow-end", collectedEvents.get(1)); assertEquals("eventSubProcess-start", collectedEvents.get(2)); assertEquals("startEventInSubProcess-start", collectedEvents.get(3)); assertEquals("startEventInSubProcess-end", collectedEvents.get(4)); assertEquals("taskInEventSubProcess-start", collectedEvents.get(5)); assertEquals("taskInEventSubProcess-end", collectedEvents.get(6)); assertEquals("eventSubProcess-end", collectedEvents.get(7)); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").canceled().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("startEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInEventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("endEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("eventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("subProcess").finished().count()); } }
@Deployment public void testEventSubprocessListenersInvoked() { runtimeService.startProcessInstanceByKey("testProcess"); runtimeService.correlateMessage("message"); Task taskInEventSubProcess = taskService.createTaskQuery().singleResult(); assertEquals("taskInEventSubProcess", taskInEventSubProcess.getTaskDefinitionKey()); taskService.complete(taskInEventSubProcess.getId()); List<String> collectedEvents = TestExecutionListener.collectedEvents; assertEquals("taskInMainFlow-start", collectedEvents.get(0)); assertEquals("taskInMainFlow-end", collectedEvents.get(1)); assertEquals("eventSubProcess-start", collectedEvents.get(2)); assertEquals("startEventInSubProcess-start", collectedEvents.get(3)); assertEquals("startEventInSubProcess-end", collectedEvents.get(4)); assertEquals("taskInEventSubProcess-start", collectedEvents.get(5)); assertEquals("taskInEventSubProcess-end", collectedEvents.get(6)); assertEquals("eventSubProcess-end", collectedEvents.get(7)); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").canceled().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("startEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInEventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("endEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("eventSubProcess").finished().count()); } }
@Deployment public void testNonInterruptingEventSubprocessListenersInvoked() { runtimeService.startProcessInstanceByKey("testProcess"); runtimeService.correlateMessage("message"); Task taskInMainFlow = taskService.createTaskQuery().taskDefinitionKey("taskInMainFlow").singleResult(); assertNotNull(taskInMainFlow); Task taskInEventSubProcess = taskService.createTaskQuery().taskDefinitionKey("taskInEventSubProcess").singleResult(); assertNotNull(taskInEventSubProcess); taskService.complete(taskInMainFlow.getId()); taskService.complete(taskInEventSubProcess.getId()); List<String> collectedEvents = TestExecutionListener.collectedEvents; assertEquals("taskInMainFlow-start", collectedEvents.get(0)); assertEquals("eventSubProcess-start", collectedEvents.get(1)); assertEquals("startEventInSubProcess-start", collectedEvents.get(2)); assertEquals("startEventInSubProcess-end", collectedEvents.get(3)); assertEquals("taskInEventSubProcess-start", collectedEvents.get(4)); assertEquals("taskInMainFlow-end", collectedEvents.get(5)); assertEquals("taskInEventSubProcess-end", collectedEvents.get(6)); assertEquals("eventSubProcess-end", collectedEvents.get(7)); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("startEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInEventSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("endEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("eventSubProcess").finished().count()); } }
@Deployment public void testEventSubprocessBoundaryListenersInvoked() { runtimeService.startProcessInstanceByKey("testProcess"); runtimeService.correlateMessage("message"); Task taskInEventSubProcess = taskService.createTaskQuery().singleResult(); assertEquals("taskInEventSubProcess", taskInEventSubProcess.getTaskDefinitionKey()); runtimeService.correlateMessage("message2"); List<String> collectedEvents = TestExecutionListener.collectedEvents; assertEquals("taskInMainFlow-start", collectedEvents.get(0)); assertEquals("taskInMainFlow-end", collectedEvents.get(1)); assertEquals("eventSubProcess-start", collectedEvents.get(2)); assertEquals("startEventInSubProcess-start", collectedEvents.get(3)); assertEquals("startEventInSubProcess-end", collectedEvents.get(4)); assertEquals("taskInEventSubProcess-start", collectedEvents.get(5)); assertEquals("taskInEventSubProcess-end", collectedEvents.get(6)); assertEquals("eventSubProcess-end", collectedEvents.get(7)); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInMainFlow").canceled().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("startEventInSubProcess").finished().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("taskInEventSubProcess").canceled().count()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("eventSubProcess").finished().count()); } }
/** CAM-9220 (https://app.camunda.com/jira/browse/CAM-9220) */ @Deployment @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void testThrowEscalationEventFromEventSubprocess() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("embeddedEventSubprocess"); Job job = managementService.createJobQuery().singleResult(); managementService.executeJob(job.getId()); assertEquals(0, taskService.createTaskQuery() .processInstanceId(processInstance.getId()) .taskName("task in subprocess").count()); assertEquals(1, taskService.createTaskQuery() .processInstanceId(processInstance.getId()) .taskName("task in process").count()); // second timer job shouldn't be available job = managementService.createJobQuery().singleResult(); assertNull(job); // there should only be one completed Escalation Catch Boundary Event assertEquals(1, historyService.createHistoricActivityInstanceQuery() .processInstanceId(processInstance.getId()) .activityId("EscalationCatchBoundaryEvent") .finished() .count()); }