@Before public void setUpRuntimeData() { historyServiceMock = mock(HistoryService.class); // runtime service when(processEngine.getHistoryService()).thenReturn(historyServiceMock); historicInstanceMock = MockProvider.createMockHistoricActivityInstance(); historicQueryMock = mock(HistoricActivityInstanceQuery.class); when(historyServiceMock.createHistoricActivityInstanceQuery()).thenReturn(historicQueryMock); when(historicQueryMock.activityInstanceId(anyString())).thenReturn(historicQueryMock); when(historicQueryMock.singleResult()).thenReturn(historicInstanceMock); }
public HistoricActivityInstanceDto getHistoricActivityInstance() { HistoryService historyService = engine.getHistoryService(); HistoricActivityInstance instance = historyService.createHistoricActivityInstanceQuery() .activityInstanceId(activityInstanceId).singleResult(); if (instance == null) { throw new InvalidRequestException(Status.NOT_FOUND, "Historic activity instance with id '" + activityInstanceId + "' does not exist"); } return HistoricActivityInstanceDto.fromHistoricActivityInstance(instance); }
public HistoricActivityInstanceDto getHistoricActivityInstance() { HistoryService historyService = engine.getHistoryService(); HistoricActivityInstance instance = historyService.createHistoricActivityInstanceQuery() .activityInstanceId(activityInstanceId).singleResult(); if (instance == null) { throw new InvalidRequestException(Status.NOT_FOUND, "Historic activity instance with id '" + activityInstanceId + "' does not exist"); } return HistoricActivityInstanceDto.fromHistoricActivityInstance(instance); }
@Deployment(resources = "org/camunda/bpm/engine/test/history/HistoricActivityInstanceTest.startEventTypesForEventSubprocess.bpmn20.xml") public void testErrorEventSubprocess() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("shouldThrowError", true); runtimeService.startProcessInstanceByKey("process", vars); HistoricActivityInstance historicActivity = historyService.createHistoricActivityInstanceQuery() .activityId("errorStartEvent").singleResult(); assertEquals("errorStartEvent", historicActivity.getActivityType()); }
@Test public void testGetNonExistingHistoricCaseInstance() { when(historicQueryMock.singleResult()).thenReturn(null); given() .pathParam("id", MockProvider.NON_EXISTING_ID) .then().expect() .statusCode(Status.NOT_FOUND.getStatusCode()) .contentType(ContentType.JSON) .body("type", equalTo(InvalidRequestException.class.getSimpleName())) .body("message", equalTo("Historic activity instance with id '" + MockProvider.NON_EXISTING_ID + "' does not exist")) .when() .get(HISTORIC_SINGLE_ACTIVITY_INSTANCE_URL); }
@Deployment(resources = "org/camunda/bpm/engine/test/history/HistoricActivityInstanceTest.startEventTypesForEventSubprocess.bpmn20.xml") public void testMessageEventSubprocess() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("shouldThrowError", false); runtimeService.startProcessInstanceByKey("process", vars); runtimeService.correlateMessage("newMessage"); HistoricActivityInstance historicActivity = historyService.createHistoricActivityInstanceQuery() .activityId("messageStartEvent").singleResult(); assertEquals("messageStartEvent", historicActivity.getActivityType()); }
@Deployment(resources = "org/camunda/bpm/engine/test/history/HistoricActivityInstanceTest.startEventTypesForEventSubprocess.bpmn20.xml") public void testSignalEventSubprocess() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("shouldThrowError", false); runtimeService.startProcessInstanceByKey("process", vars); runtimeService.signalEventReceived("newSignal"); HistoricActivityInstance historicActivity = historyService.createHistoricActivityInstanceQuery() .activityId("signalStartEvent").singleResult(); assertEquals("signalStartEvent", historicActivity.getActivityType()); }
@Deployment(resources = "org/camunda/bpm/engine/test/history/HistoricActivityInstanceTest.startEventTypesForEventSubprocess.bpmn20.xml") public void testTimerEventSubprocess() { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("shouldThrowError", false); runtimeService.startProcessInstanceByKey("process", vars); Job timerJob = managementService.createJobQuery().singleResult(); managementService.executeJob(timerJob.getId()); HistoricActivityInstance historicActivity = historyService.createHistoricActivityInstanceQuery() .activityId("timerStartEvent").singleResult(); assertEquals("startTimerEvent", historicActivity.getActivityType()); }
@Deployment(resources="org/camunda/bpm/engine/test/history/HistoricActivityInstanceTest.testEvents.bpmn") public void testIntermediateCatchEventTypes() { HistoricActivityInstanceQuery query = startEventTestProcess(""); query.activityId("intermediateSignalCatchEvent"); assertEquals(1, query.count()); assertEquals("intermediateSignalCatch", query.singleResult().getActivityType()); query.activityId("intermediateMessageCatchEvent"); assertEquals(1, query.count()); assertEquals("intermediateMessageCatch", query.singleResult().getActivityType()); query.activityId("intermediateTimerCatchEvent"); assertEquals(1, query.count()); assertEquals("intermediateTimer", query.singleResult().getActivityType()); }
@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 public void testHistoricTaskInstanceAssignmentListener() { Map<String, Object> variables = new HashMap<String, Object>(); variables.put("assignee", "jonny"); runtimeService.startProcessInstanceByKey("testProcess", variables); HistoricActivityInstance hai = historyService.createHistoricActivityInstanceQuery().activityId("task").singleResult(); assertEquals("jonny", hai.getAssignee()); HistoricTaskInstance hti = historyService.createHistoricTaskInstanceQuery().singleResult(); assertEquals("jonny", hti.getAssignee()); assertNull(hti.getOwner()); }
@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()); }
@Deployment public void testBoundaryErrorEvent() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("process"); HistoricActivityInstanceQuery query = historyService.createHistoricActivityInstanceQuery(); query.activityId("error"); assertEquals(1, query.count()); assertNotNull(query.singleResult().getEndTime()); assertEquals("boundaryError", query.singleResult().getActivityType()); Task task = taskService.createTaskQuery().singleResult(); taskService.complete(task.getId()); assertProcessEnded(pi.getId()); }
@Deployment public void testBoundaryCancelEvent() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("process"); HistoricActivityInstanceQuery query = historyService.createHistoricActivityInstanceQuery(); query.activityId("catchCancel"); assertEquals(1, query.count()); assertNotNull(query.singleResult().getEndTime()); assertEquals("cancelBoundaryCatch", query.singleResult().getActivityType()); Task task = taskService.createTaskQuery().singleResult(); taskService.complete(task.getId()); assertProcessEnded(pi.getId()); }
@Deployment(resources = { "org/camunda/bpm/engine/test/history/calledProcess.bpmn20.xml", "org/camunda/bpm/engine/test/history/HistoricActivityInstanceTest.testCallSimpleSubProcess.bpmn20.xml" }) public void testHistoricActivityInstanceCalledProcessId() { runtimeService.startProcessInstanceByKey("callSimpleSubProcess"); HistoricActivityInstance historicActivityInstance = historyService.createHistoricActivityInstanceQuery().activityId("callSubProcess").singleResult(); HistoricProcessInstance oldInstance = historyService.createHistoricProcessInstanceQuery().processDefinitionKey("calledProcess").singleResult(); assertEquals(oldInstance.getId(), historicActivityInstance.getCalledProcessInstanceId()); }
@Deployment(resources="org/camunda/bpm/engine/test/history/HistoricActivityInstanceTest.testBoundaryCompensateEvent.bpmn20.xml") public void testCompensationServiceTaskHasEndTime() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("process"); HistoricActivityInstanceQuery query = historyService.createHistoricActivityInstanceQuery(); query.activityId("compensationServiceTask"); assertEquals(1, query.count()); assertNotNull(query.singleResult().getEndTime()); assertProcessEnded(pi.getId()); }
@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()); } }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/async/AsyncStartEventTest.testAsyncStartEvent.bpmn20.xml") public void testAsyncStartEventHistory() { if(processEngineConfiguration.getHistoryLevel().getId() > ProcessEngineConfigurationImpl.HISTORYLEVEL_NONE) { runtimeService.startProcessInstanceByKey("asyncStartEvent"); HistoricProcessInstance historicInstance = historyService.createHistoricProcessInstanceQuery().singleResult(); Assert.assertNotNull(historicInstance); Assert.assertNotNull(historicInstance.getStartTime()); HistoricActivityInstance historicStartEvent = historyService.createHistoricActivityInstanceQuery().singleResult(); Assert.assertNull(historicStartEvent); } }
@Deployment(resources="org/camunda/bpm/engine/test/history/HistoricActivityInstanceTest.testBoundaryCancelEvent.bpmn20.xml") public void testTransaction() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("process"); HistoricActivityInstanceQuery query = historyService.createHistoricActivityInstanceQuery(); query.activityId("transaction"); assertEquals(1, query.count()); assertNotNull(query.singleResult().getEndTime()); Task task = taskService.createTaskQuery().singleResult(); taskService.complete(task.getId()); assertProcessEnded(pi.getId()); }
@Deployment public void testScopeActivity() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("process"); HistoricActivityInstanceQuery query = historyService.createHistoricActivityInstanceQuery(); query.activityId("userTask"); assertEquals(1, query.count()); HistoricActivityInstance historicActivityInstance = query.singleResult(); assertEquals(pi.getId(), historicActivityInstance.getParentActivityInstanceId()); Task task = taskService.createTaskQuery().singleResult(); taskService.complete(task.getId()); assertProcessEnded(pi.getId()); }