public ActivityPerfTestResult(HistoricActivityInstance historicActivity) { activityId = historicActivity.getActivityId(); activityInstanceId = historicActivity.getId(); processInstanceId = historicActivity.getProcessInstanceId(); startTime = historicActivity.getStartTime(); endTime = historicActivity.getEndTime(); duration = historicActivity.getDurationInMillis(); }
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 = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void testQueryByActivityInstanceId() { startProcessInstanceAndEvaluateDecision(); String activityInstanceId = historyService.createHistoricActivityInstanceQuery().activityId("task").singleResult().getId(); HistoricDecisionInstanceQuery query = historyService.createHistoricDecisionInstanceQuery(); assertThat(query.activityInstanceIdIn(activityInstanceId).count(), is(1L)); assertThat(query.activityInstanceIdIn("other activity").count(), is(0L)); assertThat(query.activityInstanceIdIn(activityInstanceId, "other activity").count(), is(1L)); }
@Deployment(resources = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void testDecisionInstanceProperties() { startProcessInstanceAndEvaluateDecision(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().singleResult(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).singleResult(); String decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().getId(); String activityInstanceId = historyService.createHistoricActivityInstanceQuery().activityId("task").singleResult().getId(); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult(); assertThat(historicDecisionInstance, is(notNullValue())); assertThat(historicDecisionInstance.getDecisionDefinitionId(), is(decisionDefinitionId)); assertThat(historicDecisionInstance.getDecisionDefinitionKey(), is(DECISION_DEFINITION_KEY)); assertThat(historicDecisionInstance.getDecisionDefinitionName(), is("sample decision")); assertThat(historicDecisionInstance.getProcessDefinitionKey(), is(processDefinition.getKey())); assertThat(historicDecisionInstance.getProcessDefinitionId(), is(processDefinition.getId())); assertThat(historicDecisionInstance.getProcessInstanceId(), is(processInstance.getId())); assertThat(historicDecisionInstance.getCaseDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getCaseDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getCaseInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getActivityId(), is("task")); assertThat(historicDecisionInstance.getActivityInstanceId(), is(activityInstanceId)); assertThat(historicDecisionInstance.getRootDecisionInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getDecisionRequirementsDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getDecisionRequirementsDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getEvaluationTime(), is(notNullValue())); }
@Deployment(resources={"org/camunda/bpm/engine/test/history/HistoricTaskInstanceTest.testHistoricTaskInstance.bpmn20.xml"}) public void testHistoricTaskInstanceQueryByActivityInstanceId() throws Exception { runtimeService.startProcessInstanceByKey("HistoricTaskInstanceTest"); String activityInstanceId = historyService.createHistoricActivityInstanceQuery() .activityId("task") .singleResult() .getId(); HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery() .activityInstanceIdIn(activityInstanceId); assertEquals(1, query.count()); assertEquals(1, query.list().size()); }
protected VariableMap collectInitialVariables(CommandContext commandContext, HistoricProcessInstance processInstance) { HistoryService historyService = commandContext.getProcessEngineConfiguration().getHistoryService(); HistoricActivityInstance startActivityInstance = resolveStartActivityInstance(processInstance); HistoricDetailQueryImpl query = (HistoricDetailQueryImpl) historyService.createHistoricDetailQuery() .variableUpdates() .executionId(processInstance.getId()) .activityInstanceId(startActivityInstance.getId()); List<HistoricDetail> historicDetails = query .sequenceCounter(1) .list(); VariableMap variables = new VariableMapImpl(); for (HistoricDetail detail : historicDetails) { HistoricVariableUpdate variableUpdate = (HistoricVariableUpdate) detail; variables.putValueTyped(variableUpdate.getVariableName(), variableUpdate.getTypedValue()); } return variables; }
protected VariableMap collectInitialVariables(CommandContext commandContext, HistoricProcessInstance processInstance) { HistoryService historyService = commandContext.getProcessEngineConfiguration().getHistoryService(); HistoricActivityInstance startActivityInstance = resolveStartActivityInstance(processInstance); HistoricDetailQueryImpl query = (HistoricDetailQueryImpl) historyService.createHistoricDetailQuery() .variableUpdates() .executionId(processInstance.getId()) .activityInstanceId(startActivityInstance.getId()); List<HistoricDetail> historicDetails = query .sequenceCounter(1) .list(); VariableMap variables = new VariableMapImpl(); for (HistoricDetail detail : historicDetails) { HistoricVariableUpdate variableUpdate = (HistoricVariableUpdate) detail; variables.putValueTyped(variableUpdate.getVariableName(), variableUpdate.getTypedValue()); } return variables; }
@Deployment(resources={"org/camunda/bpm/engine/test/history/HistoricTaskInstanceTest.testHistoricTaskInstance.bpmn20.xml"}) public void testHistoricTaskInstanceQueryByActivityInstanceIds() throws Exception { ProcessInstance pi1 = runtimeService.startProcessInstanceByKey("HistoricTaskInstanceTest"); ProcessInstance pi2 = runtimeService.startProcessInstanceByKey("HistoricTaskInstanceTest"); String activityInstanceId1 = historyService.createHistoricActivityInstanceQuery() .processInstanceId(pi1.getId()) .activityId("task") .singleResult() .getId(); String activityInstanceId2 = historyService.createHistoricActivityInstanceQuery() .processInstanceId(pi2.getId()) .activityId("task") .singleResult() .getId(); HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery() .activityInstanceIdIn(activityInstanceId1, activityInstanceId2); assertEquals(2, query.count()); assertEquals(2, query.list().size()); }
@Deployment public void testMultiInstanceReceiveActivity() { runtimeService.startProcessInstanceByKey("process"); HistoricActivityInstanceQuery query = historyService.createHistoricActivityInstanceQuery(); HistoricActivityInstance miBodyInstance = query.activityId("receiveTask#multiInstanceBody").singleResult(); query.activityId("receiveTask"); assertEquals(5, query.count()); List<HistoricActivityInstance> result = query.list(); for (HistoricActivityInstance instance : result) { assertEquals(miBodyInstance.getId(), instance.getParentActivityInstanceId()); } }
@Test public void testQueryByActivityInstanceIds() { // given startExternalTaskProcessGivenActivityId("dummyName"); ExternalTask task = startExternalTaskProcess(); String activityInstanceId = historyService.createHistoricActivityInstanceQuery() .activityId(DEFAULT_EXTERNAL_TASK_NAME) .singleResult() .getId(); // when HistoricExternalTaskLog log = historyService .createHistoricExternalTaskLogQuery() .activityInstanceIdIn(activityInstanceId) .singleResult(); // then assertNotNull(log); assertThat(log.getExternalTaskId(), is(task.getId())); }
@Deployment(resources = "org/camunda/bpm/engine/test/history/HistoricVariableInstanceTest.testImplicitVariableUpdate.bpmn20.xml") public void FAILING_testImplicitVariableUpdateActivityInstanceId() { // given ProcessInstance instance = runtimeService.startProcessInstanceByKey("serviceTaskProcess", Variables.createVariables() .putValue("listVar", new ArrayList<String>()) .putValue("delegate", new UpdateValueDelegate())); HistoricActivityInstance historicServiceTask = historyService .createHistoricActivityInstanceQuery() .activityId("task") .singleResult(); List<String> list = (List<String>) runtimeService.getVariable(instance.getId(), "listVar"); assertNotNull(list); assertEquals(1, list.size()); assertEquals(UpdateValueDelegate.NEW_ELEMENT, list.get(0)); // when HistoricVariableInstance historicVariableInstance = historyService .createHistoricVariableInstanceQuery() .variableName("listVar").singleResult(); // then assertEquals(historicServiceTask.getId(), historicVariableInstance.getActivityInstanceId()); }
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 public void testSetVariableLocalOnServiceTaskInsideSubProcess() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("process"); HistoricVariableInstanceQuery query = historyService.createHistoricVariableInstanceQuery(); assertEquals(1, query.count()); String activityInstanceId = historyService.createHistoricActivityInstanceQuery() .activityId("SubProcess_1") .singleResult() .getId(); HistoricVariableInstance variable = query.singleResult(); // the variable is in the sub process scope assertEquals(activityInstanceId, variable.getActivityInstanceId()); assertProcessEnded(pi.getId()); }
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 public void testSetVariableLocalOnServiceTaskInsideParallelBranch() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("process"); HistoricActivityInstance serviceTask = historyService.createHistoricActivityInstanceQuery() .activityId("serviceTask1") .singleResult(); assertNotNull(serviceTask); HistoricVariableInstanceQuery query = historyService.createHistoricVariableInstanceQuery(); assertEquals(1, query.count()); HistoricVariableInstance variable = query.singleResult(); // the variable is in the service task scope assertEquals(serviceTask.getId(), variable.getActivityInstanceId()); assertProcessEnded(pi.getId()); }
@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()); }
@Deployment public void testMultiInstanceScopeActivity() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("process"); HistoricActivityInstanceQuery query = historyService.createHistoricActivityInstanceQuery(); HistoricActivityInstance miBodyInstance = query.activityId("userTask#multiInstanceBody").singleResult(); query.activityId("userTask"); assertEquals(5, query.count()); List<HistoricActivityInstance> result = query.list(); for (HistoricActivityInstance instance : result) { assertEquals(miBodyInstance.getId(), instance.getParentActivityInstanceId()); } List<Task> tasks = taskService.createTaskQuery().list(); for (Task task : tasks) { taskService.complete(task.getId()); } assertProcessEnded(pi.getId()); }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/event/compensate/CompensateEventHistoryTest.testBoundaryCompensationHandlerHistory.bpmn20.xml") public void testBoundaryCompensationHandlerHistoryActivityInstance() { // given a process instance ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("boundaryHandlerProcess"); // when throwing compensation Task beforeCompensationTask = taskService.createTaskQuery().singleResult(); taskService.complete(beforeCompensationTask.getId()); String compensationHandlerActivityInstanceId = runtimeService .getActivityInstance(processInstance.getId()) .getActivityInstances("compensationHandler")[0] .getId(); // .. and completing compensation Task compensationHandler = taskService.createTaskQuery().singleResult(); taskService.complete(compensationHandler.getId()); // then there is a historic activity instance for the compensation handler HistoricActivityInstance historicCompensationHandlerInstance = historyService .createHistoricActivityInstanceQuery() .activityId("compensationHandler") .singleResult(); assertNotNull(historicCompensationHandlerInstance); assertEquals(compensationHandlerActivityInstanceId, historicCompensationHandlerInstance.getId()); assertEquals(processInstance.getId(), historicCompensationHandlerInstance.getParentActivityInstanceId()); }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/event/compensate/CompensateEventHistoryTest.testDefaultCompensationHandlerHistory.bpmn20.xml") public void testDefaultCompensationHandlerHistoryActivityInstance() { // given a process instance ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("defaultHandlerProcess"); // when throwing compensation Task beforeCompensationTask = taskService.createTaskQuery().singleResult(); taskService.complete(beforeCompensationTask.getId()); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); String compensationHandlerActivityInstanceId = tree .getActivityInstances("compensationHandler")[0] .getId(); String subProcessActivityInstanceId = tree .getActivityInstances("subProcess")[0] .getId(); // .. and completing compensation Task compensationHandler = taskService.createTaskQuery().singleResult(); taskService.complete(compensationHandler.getId()); // then there is a historic activity instance for the compensation handler HistoricActivityInstance historicCompensationHandlerInstance = historyService .createHistoricActivityInstanceQuery() .activityId("compensationHandler") .singleResult(); assertNotNull(historicCompensationHandlerInstance); assertEquals(compensationHandlerActivityInstanceId, historicCompensationHandlerInstance.getId()); assertEquals(subProcessActivityInstanceId, historicCompensationHandlerInstance.getParentActivityInstanceId()); }