public static void assertProcessEnded(ProcessEngine processEngine, String processInstanceId) { ProcessInstance processInstance = processEngine .getRuntimeService() .createProcessInstanceQuery() .processInstanceId(processInstanceId) .singleResult(); if (processInstance!=null) { throw new AssertionFailedError("expected finished process instance '"+processInstanceId+"' but it was still in the db"); } } }
@Test public void testAdditionalParametersExcludingVariables() { Map<String, String> queryParameters = getCompleteQueryParameters(); given().queryParams(queryParameters) .expect().statusCode(Status.OK.getStatusCode()) .when().get(PROCESS_INSTANCE_QUERY_URL); verify(mockedQuery).caseInstanceId(queryParameters.get("caseInstanceId")); verify(mockedQuery).processInstanceBusinessKey(queryParameters.get("businessKey")); verify(mockedQuery).processInstanceBusinessKeyLike(queryParameters.get("businessKeyLike")); verify(mockedQuery).processDefinitionKey(queryParameters.get("processDefinitionKey")); verify(mockedQuery).processDefinitionId(queryParameters.get("processDefinitionId")); verify(mockedQuery).deploymentId(queryParameters.get("deploymentId")); verify(mockedQuery).superProcessInstanceId(queryParameters.get("superProcessInstance")); verify(mockedQuery).subProcessInstanceId(queryParameters.get("subProcessInstance")); verify(mockedQuery).superCaseInstanceId(queryParameters.get("superCaseInstance")); verify(mockedQuery).subCaseInstanceId(queryParameters.get("subCaseInstance")); verify(mockedQuery).suspended(); verify(mockedQuery).active(); verify(mockedQuery).incidentId(queryParameters.get("incidentId")); verify(mockedQuery).incidentMessage(queryParameters.get("incidentMessage")); verify(mockedQuery).incidentMessageLike(queryParameters.get("incidentMessageLike")); verify(mockedQuery).incidentType(queryParameters.get("incidentType")); verify(mockedQuery).list(); }
@Test public void testQueryByProcessDefinitionKeyMultipleResults() { ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().processDefinitionKey(PROCESS_DEFINITION_KEY); assertEquals(4, query.count()); assertEquals(4, query.list().size()); try { query.singleResult(); fail(); } catch (ProcessEngineException e) { // Exception is expected } }
private ProcessInstanceQuery setUpMockInstanceQuery(List<ProcessInstance> mockedInstances) { ProcessInstanceQuery sampleInstanceQuery = mock(ProcessInstanceQuery.class); when(sampleInstanceQuery.list()).thenReturn(mockedInstances); when(sampleInstanceQuery.count()).thenReturn((long) mockedInstances.size()); when(processEngine.getRuntimeService().createProcessInstanceQuery()).thenReturn(sampleInstanceQuery); return sampleInstanceQuery; }
@Test public void testQueryByInvalidSuperCaseInstanceId() { ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery(); assertNull(query.superProcessInstanceId("invalid").singleResult()); assertEquals(0, query.superProcessInstanceId("invalid").list().size()); try { query.superCaseInstanceId(null); fail(); } catch (NullValueException e) { // expected } }
@RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void testRestartProcessInstanceSyncWithTenantId() { // given ProcessInstance processInstance = startAndDeleteProcessInstance(TENANT_ONE, PROCESS); identityService.setAuthentication("user", null, Collections.singletonList(TENANT_ONE)); // when runtimeService.restartProcessInstances(processInstance.getProcessDefinitionId()) .startBeforeActivity("userTask") .processInstanceIds(processInstance.getId()) .execute(); // then ProcessInstance restartedInstance = runtimeService.createProcessInstanceQuery().active() .processDefinitionId(processInstance.getProcessDefinitionId()).singleResult(); assertNotNull(restartedInstance); assertEquals(restartedInstance.getTenantId(), TENANT_ONE); }
@Test @OperateOnDeployment("clientDeployment") public void testStartInstanceWithBeanCondition() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("process"); // then ProcessInstance subInstance = runtimeService.createProcessInstanceQuery().processDefinitionKey("subProcess").superProcessInstanceId(processInstance.getId()).singleResult(); assertNotNull(subInstance); } }
protected void assertMigratedTo(ProcessInstance processInstance, ProcessDefinition targetDefinition) { Assert.assertEquals(1, engineRule.getRuntimeService() .createProcessInstanceQuery() .processInstanceId(processInstance.getId()) .processDefinitionId(targetDefinition.getId()) .count()); } }
@Test @Deployment(resources = {"org/camunda/bpm/engine/test/api/runtime/superProcess.bpmn20.xml", "org/camunda/bpm/engine/test/api/runtime/subProcess.bpmn20.xml"}) public void testQueryBySuperProcessInstanceId() { ProcessInstance superProcessInstance = runtimeService.startProcessInstanceByKey("subProcessQueryTest"); ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().superProcessInstanceId(superProcessInstance.getId()); ProcessInstance subProcessInstance = query.singleResult(); assertNotNull(subProcessInstance); assertEquals(1, query.list().size()); assertEquals(1, query.count()); }
@Test @Deployment(resources = {"org/camunda/bpm/engine/test/api/runtime/superProcessWithNestedSubProcess.bpmn20.xml", "org/camunda/bpm/engine/test/api/runtime/nestedSubProcess.bpmn20.xml", "org/camunda/bpm/engine/test/api/runtime/subProcess.bpmn20.xml"}) public void testQueryBySuperProcessInstanceIdNested() { ProcessInstance superProcessInstance = runtimeService.startProcessInstanceByKey("nestedSubProcessQueryTest"); ProcessInstance subProcessInstance = runtimeService.createProcessInstanceQuery().superProcessInstanceId(superProcessInstance.getId()).singleResult(); assertNotNull(subProcessInstance); ProcessInstance nestedSubProcessInstance = runtimeService.createProcessInstanceQuery().superProcessInstanceId(subProcessInstance.getId()).singleResult(); assertNotNull(nestedSubProcessInstance); }
@Test public void testQueryByProcessInstanceId() { for (String processInstanceId : processInstanceIds) { assertNotNull(runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult()); assertEquals(1, runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).list().size()); } }
@Test @Deployment(resources = {"org/camunda/bpm/engine/test/api/cmmn/oneProcessTaskCase.cmmn"}) public void testQueryBySuperCaseInstanceId() { String superCaseInstanceId = caseService.createCaseInstanceByKey("oneProcessTaskCase").getId(); ProcessInstanceQuery query = runtimeService .createProcessInstanceQuery() .superCaseInstanceId(superCaseInstanceId); assertEquals(1, query.list().size()); assertEquals(1, query.count()); ProcessInstance subProcessInstance = query.singleResult(); assertNotNull(subProcessInstance); }
@Test public void testQueryByInvalidSuperProcessInstanceId() { assertNull(runtimeService.createProcessInstanceQuery().superProcessInstanceId("invalid").singleResult()); assertEquals(0, runtimeService.createProcessInstanceQuery().superProcessInstanceId("invalid").list().size()); }
@Test public void testQueryByInvalidProcessDefinitionKey() { assertNull(runtimeService.createProcessInstanceQuery().processDefinitionKey("invalid").singleResult()); assertEquals(0, runtimeService.createProcessInstanceQuery().processDefinitionKey("invalid").list().size()); }
@Test @Deployment(resources = {"org/camunda/bpm/engine/test/api/externaltask/oneExternalTaskProcess.bpmn20.xml", "org/camunda/bpm/engine/test/api/externaltask/twoExternalTaskProcess.bpmn20.xml"}) public void testBatchSuspensionByProcessInstanceQuery() { // given ProcessInstance processInstance1 = runtimeService.startProcessInstanceByKey("oneExternalTaskProcess"); ProcessInstance processInstance2 = runtimeService.startProcessInstanceByKey("twoExternalTaskProcess"); // when the process instances are suspended runtimeService.updateProcessInstanceSuspensionState() .byProcessInstanceQuery(runtimeService.createProcessInstanceQuery().active()).suspend(); // Update the process instances and they are suspended ProcessInstance p1c = runtimeService.createProcessInstanceQuery().processInstanceId(processInstance1.getId()).singleResult(); assertTrue(p1c.isSuspended()); ProcessInstance p2c = runtimeService.createProcessInstanceQuery().processInstanceId(processInstance2.getId()).singleResult(); assertTrue(p2c.isSuspended()); }
@Test public void suspendProcessInstanceForNonTenant() { // given activated process instances ProcessInstanceQuery query = engineRule.getRuntimeService().createProcessInstanceQuery(); assertThat(query.active().count(), is(3L)); assertThat(query.suspended().count(), is(0L)); engineRule.getRuntimeService() .updateProcessInstanceSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .processDefinitionWithoutTenantId() .suspend(); assertThat(query.active().count(), is(2L)); assertThat(query.suspended().count(), is(1L)); assertThat(query.suspended().withoutTenantId().count(), is(1L)); }
public void testStartProcessInstanceWithLatestBindingDifferentVersion() { deploymentForTenant(TENANT_ONE, CMMN_LATEST_WITH_MANUAL_ACTIVATION, PROCESS); deploymentForTenant(TENANT_TWO, CMMN_LATEST_WITH_MANUAL_ACTIVATION, PROCESS); deploymentForTenant(TENANT_TWO, PROCESS); createCaseInstance("testCase", TENANT_ONE); createCaseInstance("testCase", TENANT_TWO); ProcessDefinition latestProcessTenantTwo = repositoryService.createProcessDefinitionQuery() .tenantIdIn(TENANT_TWO).processDefinitionKey("testProcess").latestVersion().singleResult(); ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().processDefinitionKey("testProcess"); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).processDefinitionId(latestProcessTenantTwo.getId()).count(), is(1L)); }
@Test public void testQueryByInvalidSubProcessInstanceId() { assertNull(runtimeService.createProcessInstanceQuery().subProcessInstanceId("invalid").singleResult()); assertEquals(0, runtimeService.createProcessInstanceQuery().subProcessInstanceId("invalid").list().size()); }
@Test @Deployment(resources = {"org/camunda/bpm/engine/test/api/runtime/superProcessWithNestedSubProcess.bpmn20.xml", "org/camunda/bpm/engine/test/api/runtime/nestedSubProcess.bpmn20.xml", "org/camunda/bpm/engine/test/api/runtime/subProcess.bpmn20.xml"}) public void testQueryBySubProcessInstanceIdNested() { ProcessInstance superProcessInstance = runtimeService.startProcessInstanceByKey("nestedSubProcessQueryTest"); ProcessInstance subProcessInstance = runtimeService.createProcessInstanceQuery().superProcessInstanceId(superProcessInstance.getId()).singleResult(); assertEquals(superProcessInstance.getId(), runtimeService.createProcessInstanceQuery().subProcessInstanceId(subProcessInstance.getId()).singleResult().getId()); ProcessInstance nestedSubProcessInstance = runtimeService.createProcessInstanceQuery().superProcessInstanceId(subProcessInstance.getId()).singleResult(); assertEquals(subProcessInstance.getId(), runtimeService.createProcessInstanceQuery().subProcessInstanceId(nestedSubProcessInstance.getId()).singleResult().getId()); }
@Test public void testProcessExecution() { ProcessInstance instance = runtimeService.startProcessInstanceByKey("TimerExecutionProcess"); waitForJobExecutorToProcessAllJobs(); List<ProcessInstance> finallyRunningInstances = runtimeService.createProcessInstanceQuery().processInstanceId(instance.getId()).list(); Assert.assertEquals(0, finallyRunningInstances.size()); } }