public void testQuerySortingAsc() { List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery() .orderByTenantId() .asc() .list(); assertThat(historicActivityInstances.size(), is(4)); assertThat(historicActivityInstances.get(0).getTenantId(), is(TENANT_ONE)); assertThat(historicActivityInstances.get(1).getTenantId(), is(TENANT_ONE)); assertThat(historicActivityInstances.get(2).getTenantId(), is(TENANT_TWO)); assertThat(historicActivityInstances.get(3).getTenantId(), is(TENANT_TWO)); }
private List<HistoricActivityInstance> getAllActivityInstances() { return historyService.createHistoricActivityInstanceQuery().orderByHistoricActivityInstanceStartTime().asc().list(); }
protected void logActivityResults(PerfTestPass pass, PerfTestRun run, HistoryService historyService) { String processInstanceId = run.getVariable(PerfTestConstants.PROCESS_INSTANCE_ID); List<ActivityPerfTestResult> activityResults = new ArrayList<ActivityPerfTestResult>(); HistoricProcessInstance processInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); Date startTime = processInstance.getStartTime(); List<HistoricActivityInstance> activityInstances = historyService.createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId) .orderByHistoricActivityInstanceStartTime() .asc() .list(); for (HistoricActivityInstance activityInstance : activityInstances) { if (watchAllActivities || activityIds.contains(activityInstance.getActivityId())) { ActivityPerfTestResult result = new ActivityPerfTestResult(activityInstance); if (activityInstance.getActivityType().equals("startEvent")) { result.setStartTime(startTime); } activityResults.add(result); } } pass.logActivityResult(processInstanceId, activityResults); }
protected HistoricActivityInstance resolveStartActivityInstance(HistoricProcessInstance processInstance) { HistoryService historyService = Context.getProcessEngineConfiguration().getHistoryService(); String processInstanceId = processInstance.getId(); String startActivityId = processInstance.getStartActivityId(); ensureNotNull("startActivityId", startActivityId); List<HistoricActivityInstance> historicActivityInstances = historyService .createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId) .activityId(startActivityId) .orderPartiallyByOccurrence() .asc() .list(); ensureNotEmpty("historicActivityInstances", historicActivityInstances); HistoricActivityInstance startActivityInstance = historicActivityInstances.get(0); return startActivityInstance; }
protected HistoricActivityInstance resolveStartActivityInstance(HistoricProcessInstance processInstance) { HistoryService historyService = Context.getProcessEngineConfiguration().getHistoryService(); String processInstanceId = processInstance.getId(); String startActivityId = processInstance.getStartActivityId(); ensureNotNull("startActivityId", startActivityId); List<HistoricActivityInstance> historicActivityInstances = historyService .createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId) .activityId(startActivityId) .orderPartiallyByOccurrence() .asc() .list(); ensureNotEmpty("historicActivityInstances", historicActivityInstances); HistoricActivityInstance startActivityInstance = historicActivityInstances.get(0); return startActivityInstance; }
private List<HistoricActivityInstance> getEndActivityInstances() { return historyService.createHistoricActivityInstanceQuery().orderByHistoricActivityInstanceEndTime().asc().completeScope().list(); }
@Deployment(resources = {"org/camunda/bpm/engine/test/standalone/entity/ExecutionSequenceCounterTest.testSequence.bpmn20.xml"}) public void testSequence() { // given HistoricActivityInstanceQuery query = historyService .createHistoricActivityInstanceQuery() .orderPartiallyByOccurrence() .asc(); // when runtimeService.startProcessInstanceByKey("process"); // then verifyOrder(query, "theStart", "theService1", "theService2", "theEnd"); }
@Test public void testSecondarySortingAsPost() { InOrder inOrder = Mockito.inOrder(mockedQuery); Map<String, Object> json = new HashMap<String, Object>(); json.put("sorting", OrderingBuilder.create() .orderBy("definitionId").desc() .orderBy("instanceId").asc() .getJson()); given().contentType(POST_JSON_CONTENT_TYPE).body(json) .header("accept", MediaType.APPLICATION_JSON) .then().expect().statusCode(Status.OK.getStatusCode()) .when().post(HISTORIC_ACTIVITY_INSTANCE_RESOURCE_URL); inOrder.verify(mockedQuery).orderByProcessDefinitionId(); inOrder.verify(mockedQuery).desc(); inOrder.verify(mockedQuery).orderByProcessInstanceId(); inOrder.verify(mockedQuery).asc(); }
@Deployment(resources = {"org/camunda/bpm/engine/test/bpmn/multiinstance/MultiInstanceTest.testSequentialScriptTasks.bpmn20.xml"}) public void testSequentialScriptTasksHistory() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("sum", 0); vars.put("nrOfLoops", 7); runtimeService.startProcessInstanceByKey("miSequentialScriptTask", vars); // Validate history if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { List<HistoricActivityInstance> historicInstances = historyService.createHistoricActivityInstanceQuery().activityType("scriptTask").orderByActivityId().asc().list(); assertEquals(7, historicInstances.size()); for (int i=0; i<7; i++) { HistoricActivityInstance hai = historicInstances.get(i); assertEquals("scriptTask", hai.getActivityType()); assertNotNull(hai.getStartTime()); assertNotNull(hai.getEndTime()); } } }
@Deployment(resources = {"org/camunda/bpm/engine/test/standalone/entity/ExecutionSequenceCounterTest.testLoop.bpmn20.xml"}) public void testLoop() { // given HistoricActivityInstanceQuery query = historyService .createHistoricActivityInstanceQuery() .orderPartiallyByOccurrence() .asc(); // when String processInstanceId = runtimeService.startProcessInstanceByKey("process").getId(); // then query.executionId(processInstanceId); verifyOrder(query, "theStart", "theService1", "join", "theScript", "fork", "join", "theScript", "fork", "theService2", "theEnd"); }
@Deployment public void testEventLinkMultipleSources() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("linkEventValid"); List<String> activeActivities = runtimeService.getActiveActivityIds(pi.getId()); // assert that the link event was triggered and that we are assertEquals(Arrays.asList(new String []{"WaitAfterLink", "WaitAfterLink"}), activeActivities); runtimeService.deleteProcessInstance(pi.getId(), "test done"); // validate history if(processEngineConfiguration.getHistoryLevel().getId() >= ProcessEngineConfigurationImpl.HISTORYLEVEL_ACTIVITY) { List<HistoricActivityInstance> activities = historyService.createHistoricActivityInstanceQuery().processInstanceId(pi.getId()).orderByActivityId().asc().list(); assertEquals(5, activities.size()); assertEquals("ManualTask_1", activities.get(0).getActivityId()); assertEquals("ParallelGateway_1", activities.get(1).getActivityId()); assertEquals("StartEvent_1", activities.get(2).getActivityId()); assertEquals("WaitAfterLink", activities.get(3).getActivityId()); assertEquals("WaitAfterLink", activities.get(4).getActivityId()); } }
@Deployment(resources="org/camunda/bpm/engine/test/bpmn/multiinstance/MultiInstanceTest.testParallelUserTasksBasedOnCollection.bpmn20.xml") public void testEmptyCollectionInMI() { List<String> assigneeList = new ArrayList<String>(); String procId = runtimeService.startProcessInstanceByKey("miParallelUserTasksBasedOnCollection", CollectionUtil.singletonMap("assigneeList", assigneeList)).getId(); assertEquals(0, taskService.createTaskQuery().count()); assertProcessEnded(procId); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { List<HistoricActivityInstance> activities = historyService .createHistoricActivityInstanceQuery() .processInstanceId(procId) .orderByActivityId() .asc().list(); assertEquals(3, activities.size()); assertEquals("miTasks#multiInstanceBody", activities.get(0).getActivityId()); assertEquals("theEnd", activities.get(1).getActivityId()); assertEquals("theStart", activities.get(2).getActivityId()); } }
@Deployment public void testValidEventLink() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("linkEventValid"); List<String> activeActivities = runtimeService.getActiveActivityIds(pi.getId()); // assert that now the first receive task is active assertEquals(Arrays.asList(new String []{"waitAfterLink1"}), activeActivities); runtimeService.signal(pi.getId()); activeActivities = runtimeService.getActiveActivityIds(pi.getId()); // assert that now the second receive task is active assertEquals(Arrays.asList(new String []{"waitAfterLink2"}), activeActivities); runtimeService.signal(pi.getId()); assertProcessEnded(pi.getId()); // validate history if(processEngineConfiguration.getHistoryLevel().getId() >= ProcessEngineConfigurationImpl.HISTORYLEVEL_ACTIVITY) { List<HistoricActivityInstance> activities = historyService.createHistoricActivityInstanceQuery().processInstanceId(pi.getId()).orderByActivityId().asc().list(); assertEquals(4, activities.size()); assertEquals("EndEvent_1", activities.get(0).getActivityId()); assertEquals("StartEvent_1", activities.get(1).getActivityId()); assertEquals("waitAfterLink1", activities.get(2).getActivityId()); assertEquals("waitAfterLink2", activities.get(3).getActivityId()); } }
@Deployment(resources = {"org/camunda/bpm/engine/test/standalone/entity/ExecutionSequenceCounterTest.testForkSameSequenceLengthWithoutWaitStates.bpmn20.xml"}) public void testFork() { // given String processInstanceId = runtimeService.startProcessInstanceByKey("process").getId(); HistoricActivityInstanceQuery query = historyService .createHistoricActivityInstanceQuery() .orderPartiallyByOccurrence() .asc(); // when // then query.executionId(processInstanceId); verifyOrder(query, "theStart", "theService", "fork", "theService2", "theEnd2"); String firstExecutionId = historyService.createHistoricActivityInstanceQuery().activityId("theService1").singleResult().getExecutionId(); query.executionId(firstExecutionId); verifyOrder(query, "theService1", "theEnd1"); query = historyService .createHistoricActivityInstanceQuery() .orderPartiallyByOccurrence() .asc(); verifyOrder(query, "theStart", "theService", "fork", "theService1", "theEnd1", "theService2", "theEnd2"); }
@Deployment(resources = {"org/camunda/bpm/engine/test/standalone/entity/ExecutionSequenceCounterTest.testSequenceInsideSubProcess.bpmn20.xml"}) public void testSequenceInsideSubProcess() { // given HistoricActivityInstanceQuery query = historyService .createHistoricActivityInstanceQuery() .orderPartiallyByOccurrence() .asc(); // when String processInstanceId = runtimeService.startProcessInstanceByKey("process").getId(); // then query.executionId(processInstanceId); verifyOrder(query, "theStart", "theService1", "theService2", "theEnd"); String subProcessExecutionId = historyService .createHistoricActivityInstanceQuery() .activityId("subProcess") .singleResult() .getExecutionId(); query.executionId(subProcessExecutionId); verifyOrder(query, "subProcess", "innerStart", "innerService", "innerEnd"); query = historyService .createHistoricActivityInstanceQuery() .orderPartiallyByOccurrence() .asc(); verifyOrder(query, "theStart", "theService1", "subProcess", "innerStart", "innerService", "innerEnd", "theService2", "theEnd"); }
@Deployment(resources = {"org/camunda/bpm/engine/test/standalone/entity/ExecutionSequenceCounterTest.testParallelMultiInstance.bpmn20.xml"}) public void testParallelMultiInstance() { // given HistoricActivityInstanceQuery query = historyService .createHistoricActivityInstanceQuery() .orderPartiallyByOccurrence() .asc(); // when String processInstanceId = runtimeService.startProcessInstanceByKey("process").getId(); // then query.executionId(processInstanceId); verifyOrder(query, "theStart", "theService1", "theService3", "theEnd"); List<HistoricActivityInstance> taskActivityInstances = historyService .createHistoricActivityInstanceQuery() .activityId("theService2") .list(); for (HistoricActivityInstance activityInstance : taskActivityInstances) { query.executionId(activityInstance.getExecutionId()); verifyOrder(query, "theService2"); } query = historyService .createHistoricActivityInstanceQuery() .orderPartiallyByOccurrence() .asc(); verifyOrder(query, "theStart", "theService1", "theService2#multiInstanceBody", "theService2", "theService2", "theService3", "theEnd"); }
@Test @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_ACTIVITY) public void testMigrateHistoricActivityInstanceAddScope() { //given ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.SUBPROCESS_PROCESS); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .mapActivities("userTask", "userTask") .build(); ProcessInstance processInstance = rule.getRuntimeService().startProcessInstanceById(sourceDefinition.getId()); // when rule.getRuntimeService().newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .execute(); // then List<HistoricActivityInstance> historicInstances = historyService .createHistoricActivityInstanceQuery() .processInstanceId(processInstance.getId()) .unfinished() .orderByActivityId() .asc() .list(); Assert.assertEquals(2, historicInstances.size()); assertMigratedTo(historicInstances.get(0), targetDefinition, "subProcess"); assertMigratedTo(historicInstances.get(1), targetDefinition, "userTask"); assertEquals(processInstance.getId(), historicInstances.get(0).getParentActivityInstanceId()); assertEquals(historicInstances.get(0).getId(), historicInstances.get(1).getParentActivityInstanceId()); }
public void testInvalidSorting() { try { historyService.createHistoricActivityInstanceQuery().asc().list(); fail(); } catch (ProcessEngineException e) { } try { historyService.createHistoricActivityInstanceQuery().desc().list(); fail(); } catch (ProcessEngineException e) { } try { historyService.createHistoricActivityInstanceQuery().orderByHistoricActivityInstanceDuration().list(); fail(); } catch (ProcessEngineException e) { } } @Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"})
@Test @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_ACTIVITY) public void testHistoricActivityInstanceBecomeScope() { //given ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.SCOPE_TASK_PROCESS); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .mapEqualActivities() .build(); ProcessInstance processInstance = rule.getRuntimeService().startProcessInstanceById(sourceDefinition.getId()); // when rule.getRuntimeService().newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .execute(); // then List<HistoricActivityInstance> historicInstances = historyService .createHistoricActivityInstanceQuery() .processInstanceId(processInstance.getId()) .unfinished() .orderByActivityId() .asc() .list(); Assert.assertEquals(1, historicInstances.size()); assertMigratedTo(historicInstances.get(0), targetDefinition, "userTask"); assertEquals(processInstance.getId(), historicInstances.get(0).getParentActivityInstanceId()); }
@Deployment(resources = {"org/camunda/bpm/engine/test/standalone/entity/ExecutionSequenceCounterTest.testInterruptingBoundaryEvent.bpmn20.xml"}) public void testInterruptingBoundaryEvent() { // given HistoricActivityInstanceQuery query = historyService .createHistoricActivityInstanceQuery() .orderPartiallyByOccurrence() .asc(); // when String processInstanceId = runtimeService.startProcessInstanceByKey("process").getId(); runtimeService.correlateMessage("newMessage"); // then verifyOrder(query, "theStart", "theService1", "theTask", "messageBoundary", "theServiceAfterMessage", "theEnd2"); query.executionId(processInstanceId); verifyOrder(query, "theStart", "theService1", "messageBoundary", "theServiceAfterMessage", "theEnd2"); String taskExecutionId = historyService .createHistoricActivityInstanceQuery() .activityId("theTask") .singleResult() .getExecutionId(); query.executionId(taskExecutionId); verifyOrder(query, "theTask"); }