private void assertThatActivitiesHaveAllImportantInformation(HistoricActivityInstance activityInstance) { assertThat(activityInstance, notNullValue()); assertThat(activityInstance.getActivityName(), is("task")); assertThat(activityInstance.getActivityType(), is("userTask")); assertThat(activityInstance.getStartTime(), notNullValue()); assertThat(activityInstance.getEndTime(), nullValue()); assertThat(activityInstance.getProcessDefinitionKey(), is("process")); assertThat(activityInstance.getProcessDefinitionId(), notNullValue()); }
public ActivityPerfTestResult(HistoricActivityInstance historicActivity) { activityId = historicActivity.getActivityId(); activityInstanceId = historicActivity.getId(); processInstanceId = historicActivity.getProcessInstanceId(); startTime = historicActivity.getStartTime(); endTime = historicActivity.getEndTime(); duration = historicActivity.getDurationInMillis(); }
private void assertThatActivitiesHaveAllImportantInformation(List<HistoricActivityInstance> completedHistoricActivityInstances) { HistoricActivityInstance startEvent = null, endEvent = null; for (HistoricActivityInstance completedHistoricActivityInstance : completedHistoricActivityInstances) { if (completedHistoricActivityInstance.getActivityId().equals("startEvent")) { startEvent = completedHistoricActivityInstance; } else if (completedHistoricActivityInstance.getActivityId().equals("endEvent")) { endEvent = completedHistoricActivityInstance; } } assertThat(startEvent, notNullValue()); assertThat(startEvent.getActivityName(), is("start")); assertThat(startEvent.getActivityType(), is("startEvent")); assertThat(startEvent.getStartTime(), notNullValue()); assertThat(startEvent.getEndTime(), notNullValue()); assertThat(startEvent.getProcessDefinitionKey(), is("process")); assertThat(startEvent.getProcessDefinitionId(), notNullValue()); assertThat(endEvent, notNullValue()); assertThat(endEvent.getActivityName(), is("end")); assertThat(endEvent.getActivityType(), is("noneEndEvent")); assertThat(endEvent.getStartTime(), notNullValue()); assertThat(endEvent.getEndTime(), notNullValue()); assertThat(endEvent.getProcessDefinitionKey(), is("process")); assertThat(endEvent.getProcessDefinitionId(), notNullValue()); }
public static HistoricActivityInstance createMockRunningHistoricActivityInstance() { HistoricActivityInstance mock = mock(HistoricActivityInstance.class); when(mock.getId()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_ID); when(mock.getParentActivityInstanceId()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_PARENT_ACTIVITY_INSTANCE_ID); when(mock.getActivityId()).thenReturn(EXAMPLE_ACTIVITY_ID); when(mock.getActivityName()).thenReturn(EXAMPLE_ACTIVITY_NAME); when(mock.getActivityType()).thenReturn(EXAMPLE_ACTIVITY_TYPE); when(mock.getProcessDefinitionId()).thenReturn(EXAMPLE_PROCESS_DEFINITION_ID); when(mock.getProcessInstanceId()).thenReturn(EXAMPLE_PROCESS_INSTANCE_ID); when(mock.getExecutionId()).thenReturn(EXAMPLE_EXECUTION_ID); when(mock.getTaskId()).thenReturn(EXAMPLE_TASK_ID); when(mock.getCalledProcessInstanceId()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_CALLED_PROCESS_INSTANCE_ID); when(mock.getCalledCaseInstanceId()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_CALLED_CASE_INSTANCE_ID); when(mock.getAssignee()).thenReturn(EXAMPLE_TASK_ASSIGNEE_NAME); when(mock.getStartTime()).thenReturn(DateTimeUtil.parseDate(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_START_TIME)); when(mock.getEndTime()).thenReturn(null); when(mock.getDurationInMillis()).thenReturn(null); return mock; }
public static HistoricActivityInstance createMockHistoricActivityInstance(String tenantId) { HistoricActivityInstance mock = mock(HistoricActivityInstance.class); when(mock.getId()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_ID); when(mock.getParentActivityInstanceId()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_PARENT_ACTIVITY_INSTANCE_ID); when(mock.getActivityId()).thenReturn(EXAMPLE_ACTIVITY_ID); when(mock.getActivityName()).thenReturn(EXAMPLE_ACTIVITY_NAME); when(mock.getActivityType()).thenReturn(EXAMPLE_ACTIVITY_TYPE); when(mock.getProcessDefinitionKey()).thenReturn(EXAMPLE_PROCESS_DEFINITION_KEY); when(mock.getProcessDefinitionId()).thenReturn(EXAMPLE_PROCESS_DEFINITION_ID); when(mock.getProcessInstanceId()).thenReturn(EXAMPLE_PROCESS_INSTANCE_ID); when(mock.getExecutionId()).thenReturn(EXAMPLE_EXECUTION_ID); when(mock.getTaskId()).thenReturn(EXAMPLE_TASK_ID); when(mock.getCalledProcessInstanceId()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_CALLED_PROCESS_INSTANCE_ID); when(mock.getCalledCaseInstanceId()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_CALLED_CASE_INSTANCE_ID); when(mock.getAssignee()).thenReturn(EXAMPLE_TASK_ASSIGNEE_NAME); when(mock.getStartTime()).thenReturn(DateTimeUtil.parseDate(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_START_TIME)); when(mock.getEndTime()).thenReturn(DateTimeUtil.parseDate(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_END_TIME)); when(mock.getDurationInMillis()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_DURATION); when(mock.isCanceled()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_IS_CANCELED); when(mock.isCompleteScope()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_IS_COMPLETE_SCOPE); when(mock.getTenantId()).thenReturn(tenantId); when(mock.getRemovalTime()).thenReturn(DateTimeUtil.parseDate(EXAMPLE_HISTORIC_ACTIVITY_INSTANCE_REMOVAL_TIME)); when(mock.getRootProcessInstanceId()).thenReturn(EXAMPLE_HISTORIC_ACTIVITY_ROOT_PROCESS_INSTANCE_ID); return mock; }
@Deployment(resources = {"org/camunda/bpm/engine/test/bpmn/multiinstance/MultiInstanceTest.testParallelScriptTasks.bpmn20.xml"}) public void testParallelScriptTasksHistory() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("sum", 0); vars.put("nrOfLoops", 4); runtimeService.startProcessInstanceByKey("miParallelScriptTask", vars); if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().activityType("scriptTask").list(); assertEquals(4, historicActivityInstances.size()); for (HistoricActivityInstance hai : historicActivityInstances) { assertNotNull(hai.getStartTime()); assertNotNull(hai.getStartTime()); } } }
@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/bpmn/multiinstance/MultiInstanceTest.testSequentialSubProcess.bpmn20.xml"}) public void testSequentialSubProcessHistory() { runtimeService.startProcessInstanceByKey("miSequentialSubprocess"); for (int i=0; i<4; i++) { List<Task> tasks = taskService.createTaskQuery().list(); taskService.complete(tasks.get(0).getId()); taskService.complete(tasks.get(1).getId()); } // Validate history if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { List<HistoricActivityInstance> onlySubProcessInstances = historyService.createHistoricActivityInstanceQuery().activityType("subProcess").list(); assertEquals(4, onlySubProcessInstances.size()); List<HistoricActivityInstance> historicInstances = historyService.createHistoricActivityInstanceQuery().activityType("subProcess").list(); assertEquals(4, historicInstances.size()); for (HistoricActivityInstance hai : historicInstances) { assertNotNull(hai.getStartTime()); assertNotNull(hai.getEndTime()); } historicInstances = historyService.createHistoricActivityInstanceQuery().activityType("userTask").list(); assertEquals(8, historicInstances.size()); for (HistoricActivityInstance hai : historicInstances) { assertNotNull(hai.getStartTime()); assertNotNull(hai.getEndTime()); } } }
@Deployment public void testHistoricActivityInstanceForEventsQuery() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("eventProcess"); assertEquals(1, taskService.createTaskQuery().count()); runtimeService.signalEventReceived("signal"); assertProcessEnded(pi.getId()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("noop").list().size()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("userTask").list().size()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("intermediate-event").list().size()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("start").list().size()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("end").list().size()); assertEquals(1, historyService.createHistoricActivityInstanceQuery().activityId("boundaryEvent").list().size()); HistoricActivityInstance intermediateEvent = historyService.createHistoricActivityInstanceQuery().activityId("intermediate-event").singleResult(); assertNotNull(intermediateEvent.getStartTime()); assertNotNull(intermediateEvent.getEndTime()); HistoricActivityInstance startEvent = historyService.createHistoricActivityInstanceQuery().activityId("start").singleResult(); assertNotNull(startEvent.getStartTime()); assertNotNull(startEvent.getEndTime()); HistoricActivityInstance endEvent = historyService.createHistoricActivityInstanceQuery().activityId("end").singleResult(); assertNotNull(endEvent.getStartTime()); assertNotNull(endEvent.getEndTime()); }
public static HistoricActivityInstanceDto fromHistoricActivityInstance(HistoricActivityInstance historicActivityInstance) { HistoricActivityInstanceDto dto = new HistoricActivityInstanceDto(); dto.id = historicActivityInstance.getId(); dto.parentActivityInstanceId = historicActivityInstance.getParentActivityInstanceId(); dto.activityId = historicActivityInstance.getActivityId(); dto.activityName = historicActivityInstance.getActivityName(); dto.activityType = historicActivityInstance.getActivityType(); dto.processDefinitionKey = historicActivityInstance.getProcessDefinitionKey(); dto.processDefinitionId = historicActivityInstance.getProcessDefinitionId(); dto.processInstanceId = historicActivityInstance.getProcessInstanceId(); dto.executionId = historicActivityInstance.getExecutionId(); dto.taskId = historicActivityInstance.getTaskId(); dto.calledProcessInstanceId = historicActivityInstance.getCalledProcessInstanceId(); dto.calledCaseInstanceId = historicActivityInstance.getCalledCaseInstanceId(); dto.assignee = historicActivityInstance.getAssignee(); dto.startTime = historicActivityInstance.getStartTime(); dto.endTime = historicActivityInstance.getEndTime(); dto.durationInMillis = historicActivityInstance.getDurationInMillis(); dto.canceled = historicActivityInstance.isCanceled(); dto.completeScope = historicActivityInstance.isCompleteScope(); dto.tenantId = historicActivityInstance.getTenantId(); dto.removalTime = historicActivityInstance.getRemovalTime(); dto.rootProcessInstanceId = historicActivityInstance.getRootProcessInstanceId(); return dto; } }
public static HistoricActivityInstanceDto fromHistoricActivityInstance(HistoricActivityInstance historicActivityInstance) { HistoricActivityInstanceDto dto = new HistoricActivityInstanceDto(); dto.id = historicActivityInstance.getId(); dto.parentActivityInstanceId = historicActivityInstance.getParentActivityInstanceId(); dto.activityId = historicActivityInstance.getActivityId(); dto.activityName = historicActivityInstance.getActivityName(); dto.activityType = historicActivityInstance.getActivityType(); dto.processDefinitionKey = historicActivityInstance.getProcessDefinitionKey(); dto.processDefinitionId = historicActivityInstance.getProcessDefinitionId(); dto.processInstanceId = historicActivityInstance.getProcessInstanceId(); dto.executionId = historicActivityInstance.getExecutionId(); dto.taskId = historicActivityInstance.getTaskId(); dto.calledProcessInstanceId = historicActivityInstance.getCalledProcessInstanceId(); dto.calledCaseInstanceId = historicActivityInstance.getCalledCaseInstanceId(); dto.assignee = historicActivityInstance.getAssignee(); dto.startTime = historicActivityInstance.getStartTime(); dto.endTime = historicActivityInstance.getEndTime(); dto.durationInMillis = historicActivityInstance.getDurationInMillis(); dto.canceled = historicActivityInstance.isCanceled(); dto.completeScope = historicActivityInstance.isCompleteScope(); dto.tenantId = historicActivityInstance.getTenantId(); dto.removalTime = historicActivityInstance.getRemovalTime(); dto.rootProcessInstanceId = historicActivityInstance.getRootProcessInstanceId(); return dto; } }
@Deployment(resources = {"org/camunda/bpm/engine/test/bpmn/multiinstance/MultiInstanceTest.testParallelSubProcess.bpmn20.xml"}) public void testParallelSubProcessHistory() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("miParallelSubprocess"); // Validate history if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().activityId("miSubProcess").list(); assertEquals(2, historicActivityInstances.size()); for (HistoricActivityInstance hai : historicActivityInstances) { assertNotNull(hai.getStartTime()); // now end time is null assertNull(hai.getEndTime()); assertNotNull(pi.getId(), hai.getParentActivityInstanceId()); } } for (Task task : taskService.createTaskQuery().list()) { taskService.complete(task.getId()); } // Validate history if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().activityId("miSubProcess").list(); assertEquals(2, historicActivityInstances.size()); for (HistoricActivityInstance hai : historicActivityInstances) { assertNotNull(hai.getStartTime()); assertNotNull(hai.getEndTime()); assertNotNull(pi.getId(), hai.getParentActivityInstanceId()); } } }
assertEquals(processInstance.getId(), historicActivityInstance.getProcessInstanceId()); assertEquals(processInstance.getId(), historicActivityInstance.getExecutionId()); assertNotNull(historicActivityInstance.getStartTime()); assertEquals(processInstance.getId(), historicActivityInstance.getProcessInstanceId()); assertEquals(processInstance.getId(), historicActivityInstance.getExecutionId()); assertNotNull(historicActivityInstance.getStartTime()); assertTrue(historicActivityInstance.getDurationInMillis() >= ONE_YEAR); assertTrue(((HistoricActivityInstanceEventEntity)historicActivityInstance).getDurationRaw() >= ONE_YEAR);
assertEquals(6, historicActivityInstances.size()); for (HistoricActivityInstance hai : historicActivityInstances) { assertNotNull(hai.getStartTime()); assertNotNull(hai.getEndTime());
assertNotNull(subProcessInstance.getId()); assertFalse(instance.getId().equals(subProcessInstance.getId())); assertNotNull(subProcessInstance.getStartTime()); assertNull(subProcessInstance.getEndTime()); assertNotNull(startEventInstance.getId()); assertFalse(instance.getId().equals(startEventInstance.getId())); assertNotNull(startEventInstance.getStartTime()); assertNotNull(startEventInstance.getEndTime()); assertNotNull(innerTaskInstance.getId()); assertFalse(instance.getId().equals(innerTaskInstance.getId())); assertNotNull(innerTaskInstance.getStartTime()); assertNull(innerTaskInstance.getEndTime());
@Deployment public void testHistoricActivityInstanceNoop() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("noopProcess"); HistoricActivityInstance historicActivityInstance = historyService.createHistoricActivityInstanceQuery().activityId("noop").singleResult(); assertEquals("noop", historicActivityInstance.getActivityId()); assertEquals("serviceTask", historicActivityInstance.getActivityType()); assertNotNull(historicActivityInstance.getProcessDefinitionId()); assertEquals(processInstance.getId(), historicActivityInstance.getProcessInstanceId()); assertEquals(processInstance.getId(), historicActivityInstance.getExecutionId()); assertNotNull(historicActivityInstance.getStartTime()); assertNotNull(historicActivityInstance.getEndTime()); assertTrue(historicActivityInstance.getDurationInMillis() >= 0); }
@Deployment public void testHistoricActivityInstanceReceive() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("receiveProcess"); HistoricActivityInstance historicActivityInstance = historyService.createHistoricActivityInstanceQuery().activityId("receive").singleResult(); assertEquals("receive", historicActivityInstance.getActivityId()); assertEquals("receiveTask", historicActivityInstance.getActivityType()); assertNull(historicActivityInstance.getEndTime()); assertNull(historicActivityInstance.getDurationInMillis()); assertNotNull(historicActivityInstance.getProcessDefinitionId()); assertEquals(processInstance.getId(), historicActivityInstance.getProcessInstanceId()); assertEquals(processInstance.getId(), historicActivityInstance.getExecutionId()); assertNotNull(historicActivityInstance.getStartTime()); // move clock by 1 second Date now = ClockUtil.getCurrentTime(); ClockUtil.setCurrentTime(new Date(now.getTime() + 1000)); runtimeService.signal(processInstance.getId()); historicActivityInstance = historyService.createHistoricActivityInstanceQuery().activityId("receive").singleResult(); assertEquals("receive", historicActivityInstance.getActivityId()); assertEquals("receiveTask", historicActivityInstance.getActivityType()); assertNotNull(historicActivityInstance.getEndTime()); assertNotNull(historicActivityInstance.getProcessDefinitionId()); assertEquals(processInstance.getId(), historicActivityInstance.getProcessInstanceId()); assertEquals(processInstance.getId(), historicActivityInstance.getExecutionId()); assertNotNull(historicActivityInstance.getStartTime()); assertTrue(historicActivityInstance.getDurationInMillis() >= 1000); assertTrue(((HistoricActivityInstanceEventEntity)historicActivityInstance).getDurationRaw() >= 1000); }
@Deployment(resources = {"org/camunda/bpm/engine/test/bpmn/multiinstance/MultiInstanceTest.sequentialUserTasks.bpmn20.xml"}) public void testSequentialUserTasksHistory() { runtimeService.startProcessInstanceByKey("miSequentialUserTasks", CollectionUtil.singletonMap("nrOfLoops", 4)).getId(); for (int i=0; i<4; i++) { taskService.complete(taskService.createTaskQuery().singleResult().getId()); } if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().activityType("userTask").list(); assertEquals(4, historicActivityInstances.size()); for (HistoricActivityInstance hai : historicActivityInstances) { assertNotNull(hai.getActivityId()); assertNotNull(hai.getActivityName()); assertNotNull(hai.getStartTime()); assertNotNull(hai.getEndTime()); assertNotNull(hai.getAssignee()); } } if (processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_ACTIVITY) { List<HistoricTaskInstance> historicTaskInstances = historyService.createHistoricTaskInstanceQuery().list(); assertEquals(4, historicTaskInstances.size()); for (HistoricTaskInstance ht : historicTaskInstances) { assertNotNull(ht.getAssignee()); assertNotNull(ht.getStartTime()); assertNotNull(ht.getEndTime()); } } }
assertEquals(3, historicActivityInstances.size()); for (HistoricActivityInstance hai : historicActivityInstances) { assertNotNull(hai.getStartTime()); assertNotNull(hai.getEndTime()); assertNotNull(hai.getAssignee());
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testHistoricProcessInstanceForSingleActivityInstantiation() { // when ProcessInstance instance = runtimeService .createProcessInstanceByKey("exclusiveGateway") .startBeforeActivity("task1") .execute(); // then HistoricProcessInstance historicInstance = historyService.createHistoricProcessInstanceQuery().singleResult(); assertNotNull(historicInstance); assertEquals(instance.getId(), historicInstance.getId()); assertNotNull(historicInstance.getStartTime()); assertNull(historicInstance.getEndTime()); // should be the first activity started assertEquals("task1", historicInstance.getStartActivityId()); HistoricActivityInstance historicActivityInstance = historyService.createHistoricActivityInstanceQuery().singleResult(); assertNotNull(historicActivityInstance); assertEquals("task1", historicActivityInstance.getActivityId()); assertNotNull(historicActivityInstance.getId()); assertFalse(instance.getId().equals(historicActivityInstance.getId())); assertNotNull(historicActivityInstance.getStartTime()); assertNull(historicActivityInstance.getEndTime()); }