public void assertReportResults(List<DurationReportResult> actual) { assertEquals("Report size", periodToProcessInstancesMap.size(), actual.size()); for (DurationReportResult reportResult : actual) { assertEquals("Period unit", periodUnit, reportResult.getPeriodUnit()); int period = reportResult.getPeriod(); Set<String> processInstancesInPeriod = periodToProcessInstancesMap.get(period); assertNotNull("Unexpected report for period " + period, processInstancesInPeriod); List<HistoricProcessInstance> historicProcessInstances = historyService .createHistoricProcessInstanceQuery() .processInstanceIds(processInstancesInPeriod) .finished() .list(); long max = 0; long min = 0; long sum = 0; for (int i = 0; i < historicProcessInstances.size(); i++) { HistoricProcessInstance historicProcessInstance = historicProcessInstances.get(i); Long duration = historicProcessInstance.getDurationInMillis(); sum = sum + duration; max = i > 0 ? Math.max(max, duration) : duration; min = i > 0 ? Math.min(min, duration) : duration; } long avg = sum / historicProcessInstances.size(); assertEquals("maximum", max, reportResult.getMaximum()); assertEquals("minimum", min, reportResult.getMinimum()); assertEquals("average", avg, reportResult.getAverage(), 1); } }
@Test public void testProcessQueryFinishedAsPost() { Map<String, Boolean> body = new HashMap<String, Boolean>(); body.put("finished", true); given() .contentType(POST_JSON_CONTENT_TYPE) .body(body) .then() .expect() .statusCode(Status.OK.getStatusCode()) .when() .post(HISTORIC_PROCESS_INSTANCE_RESOURCE_URL); InOrder inOrder = inOrder(mockedQuery); inOrder.verify(mockedQuery).finished(); inOrder.verify(mockedQuery).list(); }
assertEquals(0, historyService.createHistoricProcessInstanceQuery().finished().count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstance.getId()).count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().processDefinitionId(processInstance.getProcessDefinitionId()).count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finished().count()); assertEquals(0, historyService.createHistoricProcessInstanceQuery().finishedBefore(hourAgo.getTime()).count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finishedBefore(hourFromNow.getTime()).count());
@Test public void testProcessQueryFinished() { given() .queryParam("finished", true) .then() .expect() .statusCode(Status.OK.getStatusCode()) .when() .get(HISTORIC_PROCESS_INSTANCE_RESOURCE_URL); InOrder inOrder = inOrder(mockedQuery); inOrder.verify(mockedQuery).finished(); inOrder.verify(mockedQuery).list(); }
@Test public void testPAGroovyProcessEnginePlugin() { ProcessEngine groovyEngine = processEngineService.getProcessEngine("groovy"); Assert.assertNotNull(groovyEngine); ProcessInstance pi = groovyEngine.getRuntimeService().startProcessInstanceByKey("groovy"); HistoricProcessInstance hpi = groovyEngine.getHistoryService() .createHistoricProcessInstanceQuery().processDefinitionKey("groovy").finished().singleResult(); assertEquals(pi.getId(), hpi.getId()); }
assertEquals(0, historyService.createHistoricProcessInstanceQuery().finished().count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstance.getId()).count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().processDefinitionId(processInstance.getProcessDefinitionId()).count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finished().count()); assertEquals(0, historyService.createHistoricProcessInstanceQuery().finishedBefore(hourAgo.getTime()).count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finishedBefore(hourFromNow.getTime()).count());
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testLongRunningHistoricDataCreatedForProcessExecution() { final long ONE_YEAR = 1000 * 60 * 60 * 24 * 365; Calendar cal = Calendar.getInstance(); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); Date now = cal.getTime(); ClockUtil.setCurrentTime(now); final ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess", "myBusinessKey"); assertEquals(1, historyService.createHistoricProcessInstanceQuery().unfinished().count()); assertEquals(0, historyService.createHistoricProcessInstanceQuery().finished().count()); HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult(); assertEquals(now, historicProcessInstance.getStartTime()); List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list(); assertEquals(1, tasks.size()); // in this test scenario we assume that one year after the process start, the // user completes the task (incredible speedy!) cal.add(Calendar.YEAR, 1); Date oneYearLater = cal.getTime(); ClockUtil.setCurrentTime(oneYearLater); taskService.complete(tasks.get(0).getId()); historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult(); assertEquals(now, historicProcessInstance.getStartTime()); assertEquals(oneYearLater, historicProcessInstance.getEndTime()); assertTrue(historicProcessInstance.getDurationInMillis() >= ONE_YEAR); assertTrue(((HistoricProcessInstanceEventEntity)historicProcessInstance).getDurationRaw() >= ONE_YEAR); assertEquals(0, historyService.createHistoricProcessInstanceQuery().unfinished().count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finished().count()); }
@Test public void testPAGroovyAsyncProcessEnginePlugin() { ProcessEngine groovyEngine = processEngineService.getProcessEngine("groovy"); Assert.assertNotNull(groovyEngine); ProcessInstance pi = groovyEngine.getRuntimeService().startProcessInstanceByKey("groovyAsync"); waitForJobExecutorToProcessAllJobs(); HistoricProcessInstance hpi = groovyEngine.getHistoryService() .createHistoricProcessInstanceQuery().processDefinitionKey("groovyAsync").finished().singleResult(); assertEquals(pi.getId(), hpi.getId()); }
assertEquals(0, historyService.createHistoricProcessInstanceQuery().finished().count()); HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult(); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finished().count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finished().count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().unfinished().count()); assertEquals(0, historyService.createHistoricProcessInstanceQuery().finished().unfinished().count());
HistoricProcessInstance hpi = historyService.createHistoricProcessInstanceQuery().superProcessInstanceId(processInstance.getId()).finished().singleResult(); assertEquals(businessKey, hpi.getBusinessKey()); assertEquals(2, historyService.createHistoricProcessInstanceQuery().processInstanceBusinessKey(businessKey).finished().list().size());
public void assertReportResults(List<DurationReportResult> actual) { assertEquals("Report size", periodToProcessInstancesMap.size(), actual.size()); for (DurationReportResult reportResult : actual) { assertEquals("Period unit", periodUnit, reportResult.getPeriodUnit()); int period = reportResult.getPeriod(); Set<String> processInstancesInPeriod = periodToProcessInstancesMap.get(period); assertNotNull("Unexpected report for period " + period, processInstancesInPeriod); List<HistoricProcessInstance> historicProcessInstances = historyService .createHistoricProcessInstanceQuery() .processInstanceIds(processInstancesInPeriod) .finished() .list(); long max = 0; long min = 0; long sum = 0; for (int i = 0; i < historicProcessInstances.size(); i++) { HistoricProcessInstance historicProcessInstance = historicProcessInstances.get(i); Long duration = historicProcessInstance.getDurationInMillis(); sum = sum + duration; max = i > 0 ? Math.max(max, duration) : duration; min = i > 0 ? Math.min(min, duration) : duration; } long avg = sum / historicProcessInstances.size(); assertEquals("maximum", max, reportResult.getMaximum()); assertEquals("minimum", min, reportResult.getMinimum()); assertEquals("average", avg, reportResult.getAverage(), 1); } }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testLongRunningHistoricDataCreatedForProcessExecution() { final long ONE_YEAR = 1000 * 60 * 60 * 24 * 365; Calendar cal = Calendar.getInstance(); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); Date now = cal.getTime(); ClockUtil.setCurrentTime(now); final ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess", "myBusinessKey"); assertEquals(1, historyService.createHistoricProcessInstanceQuery().unfinished().count()); assertEquals(0, historyService.createHistoricProcessInstanceQuery().finished().count()); HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult(); assertEquals(now, historicProcessInstance.getStartTime()); List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list(); assertEquals(1, tasks.size()); // in this test scenario we assume that one year after the process start, the // user completes the task (incredible speedy!) cal.add(Calendar.YEAR, 1); Date oneYearLater = cal.getTime(); ClockUtil.setCurrentTime(oneYearLater); taskService.complete(tasks.get(0).getId()); historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult(); assertEquals(now, historicProcessInstance.getStartTime()); assertEquals(oneYearLater, historicProcessInstance.getEndTime()); assertTrue(historicProcessInstance.getDurationInMillis() >= ONE_YEAR); assertTrue(((HistoricProcessInstanceEventEntity)historicProcessInstance).getDurationRaw() >= ONE_YEAR); assertEquals(0, historyService.createHistoricProcessInstanceQuery().unfinished().count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finished().count()); }
assertEquals(0, historyService.createHistoricProcessInstanceQuery().finished().count()); HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult(); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finished().count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().finished().count()); assertEquals(1, historyService.createHistoricProcessInstanceQuery().unfinished().count()); assertEquals(0, historyService.createHistoricProcessInstanceQuery().finished().unfinished().count());
HistoricProcessInstance hpi = historyService.createHistoricProcessInstanceQuery().superProcessInstanceId(processInstance.getId()).finished().singleResult(); assertEquals(businessKey, hpi.getBusinessKey()); assertEquals(2, historyService.createHistoricProcessInstanceQuery().processInstanceBusinessKey(businessKey).finished().list().size());