예제 #1
0
        public virtual void testQueryByFinished()
        {
            string processDefinitionId = ProcessDefinitionId;

            startProcesses(5);

            HistoricActivityStatisticsQuery    query      = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeFinished().orderByActivityId().asc();
            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(2, query.count());
            assertEquals(2, statistics.Count);

            // start
            HistoricActivityStatistics start = statistics[0];

            assertEquals("start", start.Id);
            assertEquals(0, start.Instances);
            assertEquals(5, start.Finished);

            // task
            HistoricActivityStatistics task = statistics[1];

            assertEquals("task", task.Id);
            assertEquals(5, task.Instances);
            assertEquals(0, task.Finished);
        }
예제 #2
0
        public virtual void testDifferentProcessesWithSameActivityId()
        {
            string processDefinitionId        = ProcessDefinitionId;
            string anotherProcessDefinitionId = getProcessDefinitionIdByKey("anotherProcess");

            startProcesses(5);

            startProcessesByKey(10, "anotherProcess");

            // first processDefinition
            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processDefinitionId);

            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(1, query.count());
            assertEquals(1, statistics.Count);

            HistoricActivityStatistics task = statistics[0];

            assertEquals(5, task.Instances);

            // second processDefinition
            query = historyService.createHistoricActivityStatisticsQuery(anotherProcessDefinitionId);

            statistics = query.list();

            assertEquals(1, query.count());
            assertEquals(1, statistics.Count);

            task = statistics[0];
            assertEquals(10, task.Instances);
        }
예제 #3
0
 protected internal virtual void assertActivityStatistics(HistoricActivityStatistics activity, string activityName, long instances, long canceled, long finished)
 {
     assertEquals(activityName, activity.Id);
     assertEquals(instances, activity.Instances);
     assertEquals(canceled, activity.Canceled);
     assertEquals(finished, activity.Finished);
 }
예제 #4
0
        public virtual void testQueryByCanceledAfterCancelingSomeInstances()
        {
            string processDefinitionId = ProcessDefinitionId;

            startProcesses(3);

            // cancel running process instances
            IList <ProcessInstance> processInstances = runtimeService.createProcessInstanceQuery().list();

            foreach (ProcessInstance processInstance in processInstances)
            {
                runtimeService.deleteProcessInstance(processInstance.Id, "test");
            }

            startProcesses(2);

            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeCanceled();

            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(1, query.count());
            assertEquals(1, statistics.Count);

            // task
            HistoricActivityStatistics task = statistics[0];

            assertEquals("task", task.Id);
            assertEquals(2, task.Instances);
            assertEquals(3, task.Canceled);

            completeProcessInstances();
        }
예제 #5
0
 protected internal virtual void verifyStatisticsResult(HistoricActivityStatistics statistics, int instances, int finished, int canceled, int completeScope)
 {
     assertEquals("Instances", instances, statistics.Instances);
     assertEquals("Finished", finished, statistics.Finished);
     assertEquals("Canceled", canceled, statistics.Canceled);
     assertEquals("Complete Scope", completeScope, statistics.CompleteScope);
 }
예제 #6
0
        public virtual void testQueryIncludingCompleteScopeWithReadHistoryPermissionOnAnyProcessDefinition()
        {
            // given
            string processDefinitionId = selectProcessDefinitionByKey(PROCESS_KEY).Id;

            startProcessInstanceByKey(PROCESS_KEY);
            startProcessInstanceByKey(PROCESS_KEY);
            startProcessInstanceByKey(PROCESS_KEY);

            string taskId = selectAnyTask().Id;

            disableAuthorization();
            taskService.complete(taskId);
            enableAuthorization();

            createGrantAuthorization(PROCESS_DEFINITION, ANY, userId, READ_HISTORY);

            // when
            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeCompleteScope();

            // then
            verifyQueryResults(query, 2);
            IList <HistoricActivityStatistics> statistics = query.list();

            HistoricActivityStatistics task = getStatisticsByKey(statistics, "theTask");

            verifyStatisticsResult(task, 2, 0, 0, 0);

            HistoricActivityStatistics end = getStatisticsByKey(statistics, "theEnd");

            verifyStatisticsResult(end, 0, 0, 0, 1);
        }
예제 #7
0
        public virtual void testQueryIncludingCanceledWithReadHistoryPermissionOnProcessDefinition()
        {
            // given
            string processDefinitionId = selectProcessDefinitionByKey(PROCESS_KEY).Id;

            startProcessInstanceByKey(PROCESS_KEY);
            startProcessInstanceByKey(PROCESS_KEY);
            string processInstanceId = startProcessInstanceByKey(PROCESS_KEY).Id;

            disableAuthorization();
            runtimeService.deleteProcessInstance(processInstanceId, null);
            enableAuthorization();

            createGrantAuthorization(PROCESS_DEFINITION, PROCESS_KEY, userId, READ_HISTORY);

            // when
            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeCanceled();

            // then
            verifyQueryResults(query, 1);
            IList <HistoricActivityStatistics> statistics = query.list();

            HistoricActivityStatistics task = getStatisticsByKey(statistics, "theTask");

            verifyStatisticsResult(task, 2, 0, 1, 0);
        }
예제 #8
0
        public virtual void testQueryByFinishedAndCompleteScopeAndCanceled()
        {
            string processDefinitionId = ProcessDefinitionId;

            startProcesses(2);

            // cancel running process instances
            IList <ProcessInstance> processInstances = runtimeService.createProcessInstanceQuery().list();

            foreach (ProcessInstance processInstance in processInstances)
            {
                runtimeService.deleteProcessInstance(processInstance.Id, "test");
            }

            startProcesses(2);

            // complete running tasks
            IList <Task> tasks = taskService.createTaskQuery().list();

            foreach (Task task in tasks)
            {
                taskService.complete(task.Id);
            }

            startProcesses(2);

            HistoricActivityStatisticsQuery    query      = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeFinished().includeCompleteScope().includeCanceled().orderByActivityId().asc();
            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(3, query.count());
            assertEquals(3, statistics.Count);

            // end
            HistoricActivityStatistics end = statistics[0];

            assertEquals("end", end.Id);
            assertEquals(0, end.Instances);
            assertEquals(0, end.Canceled);
            assertEquals(2, end.Finished);
            assertEquals(2, end.CompleteScope);

            // start
            HistoricActivityStatistics start = statistics[1];

            assertEquals("start", start.Id);
            assertEquals(0, start.Instances);
            assertEquals(0, start.Canceled);
            assertEquals(6, start.Finished);
            assertEquals(0, start.CompleteScope);

            // task
            HistoricActivityStatistics task = statistics[2];

            assertEquals("task", task.Id);
            assertEquals(2, task.Instances);
            assertEquals(2, task.Canceled);
            assertEquals(4, task.Finished);
            assertEquals(0, task.CompleteScope);
        }
예제 #9
0
        public virtual void testQueryByCompleteScopeMultipleRunningTasks()
        {
            string processDefinitionId = ProcessDefinitionId;

            startProcesses(5);

            IList <Task> tasks = taskService.createTaskQuery().taskDefinitionKey("innerTask").list();

            foreach (Task task in tasks)
            {
                taskService.complete(task.Id);
            }

            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeCompleteScope().orderByActivityId().asc();

            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(4, query.count());
            assertEquals(4, statistics.Count);

            // end1
            HistoricActivityStatistics end1 = statistics[0];

            assertEquals("end1", end1.Id);
            assertEquals(0, end1.Instances);
            assertEquals(5, end1.CompleteScope);

            // innerEnd
            HistoricActivityStatistics innerEnd = statistics[1];

            assertEquals("innerEnd", innerEnd.Id);
            assertEquals(0, innerEnd.Instances);
            assertEquals(25, innerEnd.CompleteScope);

            // subprocess (completes the multi-instances body scope, see BPMN spec)
            HistoricActivityStatistics subprocess = statistics[2];

            assertEquals("subprocess", subprocess.Id);
            assertEquals(0, subprocess.Instances);
            assertEquals(25, subprocess.CompleteScope);

            // task
            HistoricActivityStatistics task = statistics[3];

            assertEquals("task", task.Id);
            assertEquals(5, task.Instances);
            assertEquals(0, task.CompleteScope);

            completeProcessInstances();
        }
예제 #10
0
        public virtual void testQueryByFinishedAfterFinishingSomeInstances()
        {
            string processDefinitionId = ProcessDefinitionId;

            // start five instances
            startProcesses(5);

            // complete two task, so that two process instances are finished
            IList <Task> tasks = taskService.createTaskQuery().list();

            for (int i = 0; i < 2; i++)
            {
                taskService.complete(tasks[i].Id);
            }

            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeFinished().orderByActivityId().asc();

            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(3, query.count());
            assertEquals(3, statistics.Count);

            // end
            HistoricActivityStatistics end = statistics[0];

            assertEquals("end", end.Id);
            assertEquals(0, end.Instances);
            assertEquals(2, end.Finished);

            // start
            HistoricActivityStatistics start = statistics[1];

            assertEquals("start", start.Id);
            assertEquals(0, start.Instances);
            assertEquals(5, start.Finished);

            // task
            HistoricActivityStatistics task = statistics[2];

            assertEquals("task", task.Id);
            assertEquals(3, task.Instances);
            assertEquals(2, task.Finished);

            completeProcessInstances();
        }
예제 #11
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testSingleTask()
        public virtual void testSingleTask()
        {
            string processDefinitionId = ProcessDefinitionId;

            startProcesses(5);

            HistoricActivityStatisticsQuery    query      = historyService.createHistoricActivityStatisticsQuery(processDefinitionId);
            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(1, query.count());
            assertEquals(1, statistics.Count);

            HistoricActivityStatistics statistic = statistics[0];

            assertEquals("task", statistic.Id);
            assertEquals(5, statistic.Instances);

            completeProcessInstances();
        }
예제 #12
0
        public virtual void testMultipleProcessDefinitions()
        {
            string processId       = ProcessDefinitionId;
            string calledProcessId = getProcessDefinitionIdByKey("calledProcess");

            startProcesses(5);

            startProcessesByKey(10, "calledProcess");

            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processId).orderByActivityId().asc();

            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(1, query.count());
            assertEquals(1, statistics.Count);

            // callActivity
            HistoricActivityStatistics calledActivity = statistics[0];

            assertEquals("callActivity", calledActivity.Id);
            assertEquals(5, calledActivity.Instances);

            query = historyService.createHistoricActivityStatisticsQuery(calledProcessId).orderByActivityId().asc();

            statistics = query.list();

            assertEquals(2, query.count());
            assertEquals(2, statistics.Count);

            // task1
            HistoricActivityStatistics task1 = statistics[0];

            assertEquals("task1", task1.Id);
            assertEquals(15, task1.Instances);

            // task2
            HistoricActivityStatistics task2 = statistics[1];

            assertEquals("task2", task2.Id);
            assertEquals(15, task2.Instances);

            completeProcessInstances();
        }
예제 #13
0
        public virtual void testQueryByCompleteScope()
        {
            string processDefinitionId = ProcessDefinitionId;

            startProcesses(5);

            completeProcessInstances();

            HistoricActivityStatisticsQuery    query      = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeCompleteScope();
            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(1, query.count());
            assertEquals(1, statistics.Count);

            // end
            HistoricActivityStatistics end = statistics[0];

            assertEquals("end", end.Id);
            assertEquals(0, end.Instances);
            assertEquals(5, end.CompleteScope);
        }
예제 #14
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testMultipleRunningTasks()
        public virtual void testMultipleRunningTasks()
        {
            string processDefinitionId = ProcessDefinitionId;

            startProcesses(5);

            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).orderByActivityId().asc();

            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(4, query.count());
            assertEquals(4, statistics.Count);

            // innerTask
            HistoricActivityStatistics innerTask = statistics[0];

            assertEquals("innerTask", innerTask.Id);
            assertEquals(25, innerTask.Instances);

            // subprocess
            HistoricActivityStatistics subProcess = statistics[1];

            assertEquals("subprocess", subProcess.Id);
            assertEquals(25, subProcess.Instances);

            // subprocess multi instance body
            HistoricActivityStatistics subProcessMiBody = statistics[2];

            assertEquals("subprocess#multiInstanceBody", subProcessMiBody.Id);
            assertEquals(5, subProcessMiBody.Instances);

            // task
            HistoricActivityStatistics task = statistics[3];

            assertEquals("task", task.Id);
            assertEquals(5, task.Instances);

            completeProcessInstances();
        }
예제 #15
0
        public virtual void testQueryByCanceled()
        {
            string processDefinitionId = ProcessDefinitionId;

            startProcesses(5);

            cancelProcessInstances();

            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeCanceled();

            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(1, query.count());
            assertEquals(1, statistics.Count);

            // task
            HistoricActivityStatistics task = statistics[0];

            assertEquals("task", task.Id);
            assertEquals(0, task.Instances);
            assertEquals(5, task.Canceled);
        }
예제 #16
0
        public virtual void testQueryByFinishedMultipleRunningTasks()
        {
            string processDefinitionId = ProcessDefinitionId;

            startProcesses(5);

            IList <Task> tasks = taskService.createTaskQuery().taskDefinitionKey("innerTask").list();

            foreach (Task task in tasks)
            {
                taskService.complete(task.Id);
            }

            HistoricActivityStatisticsQuery query = historyService.createHistoricActivityStatisticsQuery(processDefinitionId).includeFinished().orderByActivityId().asc();

            IList <HistoricActivityStatistics> statistics = query.list();

            assertEquals(9, query.count());
            assertEquals(9, statistics.Count);

            // end1
            HistoricActivityStatistics end1 = statistics[0];

            assertEquals("end1", end1.Id);
            assertEquals(0, end1.Instances);
            assertEquals(5, end1.Finished);

            // gtw
            HistoricActivityStatistics gtw = statistics[1];

            assertEquals("gtw", gtw.Id);
            assertEquals(0, gtw.Instances);
            assertEquals(5, gtw.Finished);

            // innerEnd
            HistoricActivityStatistics innerEnd = statistics[2];

            assertEquals("innerEnd", innerEnd.Id);
            assertEquals(0, innerEnd.Instances);
            assertEquals(25, innerEnd.Finished);

            // innerStart
            HistoricActivityStatistics innerStart = statistics[3];

            assertEquals("innerStart", innerStart.Id);
            assertEquals(0, innerStart.Instances);
            assertEquals(25, innerStart.Finished);

            // innerTask
            HistoricActivityStatistics innerTask = statistics[4];

            assertEquals("innerTask", innerTask.Id);
            assertEquals(0, innerTask.Instances);
            assertEquals(25, innerTask.Finished);

            // innerStart
            HistoricActivityStatistics start = statistics[5];

            assertEquals("start", start.Id);
            assertEquals(0, start.Instances);
            assertEquals(5, start.Finished);

            // subprocess
            HistoricActivityStatistics subProcess = statistics[6];

            assertEquals("subprocess", subProcess.Id);
            assertEquals(0, subProcess.Instances);
            assertEquals(25, subProcess.Finished);

            // subprocess - multi-instance body
            HistoricActivityStatistics subProcessMiBody = statistics[7];

            assertEquals("subprocess#multiInstanceBody", subProcessMiBody.Id);
            assertEquals(0, subProcessMiBody.Instances);
            assertEquals(5, subProcessMiBody.Finished);

            // task
            HistoricActivityStatistics task = statistics[8];

            assertEquals("task", task.Id);
            assertEquals(5, task.Instances);
            assertEquals(0, task.Finished);

            completeProcessInstances();
        }