Ejemplo n.º 1
0
        public virtual void testProcessDefinitionStatisticsQueryForMultipleVersionsWithIncidentType()
        {
            org.camunda.bpm.engine.repository.Deployment deployment = repositoryService.createDeployment().addClasspathResource("org/camunda/bpm/engine/test/api/mgmt/StatisticsTest.testStatisticsQueryWithFailedJobs.bpmn20.xml").deploy();

            IList <ProcessDefinition> definitions = repositoryService.createProcessDefinitionQuery().processDefinitionKey("ExampleProcess").list();

            foreach (ProcessDefinition definition in definitions)
            {
                runtimeService.startProcessInstanceById(definition.Id);
            }

            executeAvailableJobs();

            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().includeFailedJobs().includeIncidentsForType("failedJob").list();

            Assert.assertEquals(2, statistics.Count);

            ProcessDefinitionStatistics definitionResult = statistics[0];

            Assert.assertEquals(1, definitionResult.Instances);
            Assert.assertEquals(0, definitionResult.FailedJobs);

            assertTrue(definitionResult.IncidentStatistics.Count == 0);

            definitionResult = statistics[1];
            Assert.assertEquals(1, definitionResult.Instances);
            Assert.assertEquals(0, definitionResult.FailedJobs);

            assertTrue(definitionResult.IncidentStatistics.Count == 0);

            repositoryService.deleteDeployment(deployment.Id, true);
        }
Ejemplo n.º 2
0
        // including incidents and failed jobs ///////////////////////////////////////////////////////////////

        public virtual void testQueryIncludingIncidentsAndFailedJobsWithoutProcessInstanceAuthorizations()
        {
            // given
            startProcessInstanceByKey(ONE_TASK_PROCESS_KEY);
            startProcessInstanceByKey(ONE_TASK_PROCESS_KEY);

            startProcessAndExecuteJob(ONE_INCIDENT_PROCESS_KEY);
            startProcessAndExecuteJob(ONE_INCIDENT_PROCESS_KEY);
            startProcessAndExecuteJob(ONE_INCIDENT_PROCESS_KEY);

            createGrantAuthorization(PROCESS_DEFINITION, ANY, userId, READ);

            // when
            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().includeIncidents().includeFailedJobs().list();

            // then
            assertEquals(2, statistics.Count);

            ProcessDefinitionStatistics oneTaskProcessStatistics = getStatisticsByKey(statistics, ONE_TASK_PROCESS_KEY);

            verifyStatisticsResult(oneTaskProcessStatistics, 2, 0, 0);

            ProcessDefinitionStatistics oneIncidentProcessStatistics = getStatisticsByKey(statistics, ONE_INCIDENT_PROCESS_KEY);

            verifyStatisticsResult(oneIncidentProcessStatistics, 3, 3, 3);
        }
Ejemplo n.º 3
0
        public virtual void testProcessDefinitionStatisticsQueryWithIncidentType()
        {
            runtimeService.startProcessInstanceByKey("ExampleProcess");

            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters["fail"] = true;
            runtimeService.startProcessInstanceByKey("ExampleProcess", parameters);

            executeAvailableJobs();

            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().includeIncidentsForType("failedJob").list();

            Assert.assertEquals(1, statistics.Count);

            ProcessDefinitionStatistics definitionResult = statistics[0];

            Assert.assertEquals(2, definitionResult.Instances);

            assertFalse(definitionResult.IncidentStatistics.Count == 0);
            assertEquals(1, definitionResult.IncidentStatistics.Count);

            IncidentStatistics incidentStatistics = definitionResult.IncidentStatistics[0];

            Assert.assertEquals(org.camunda.bpm.engine.runtime.Incident_Fields.FAILED_JOB_HANDLER_TYPE, incidentStatistics.IncidentType);
            Assert.assertEquals(1, incidentStatistics.IncidentCount);
        }
Ejemplo n.º 4
0
        public virtual void testQueryByFailedJobsAndIncidentsWithFailedTimerStartEvent()
        {
            executeAvailableJobs();

            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().includeFailedJobs().includeIncidents().list();

            assertEquals(1, statistics.Count);

            ProcessDefinitionStatistics result = statistics[0];

            // there is no running instance
            assertEquals(0, result.Instances);
            // but there is one failed timer job
            assertEquals(1, result.FailedJobs);

            IList <IncidentStatistics> incidentStatistics = result.IncidentStatistics;

            // and there is one incident for the failed timer job
            assertEquals(1, incidentStatistics.Count);

            IncidentStatistics incidentStatistic = incidentStatistics[0];

            assertEquals(1, incidentStatistic.IncidentCount);
            assertEquals(org.camunda.bpm.engine.runtime.Incident_Fields.FAILED_JOB_HANDLER_TYPE, incidentStatistic.IncidentType);
        }
Ejemplo n.º 5
0
        public virtual void testProcessDefinitionStatisticsQueryWithIncidentsWithoutFailedJobs()
        {
            runtimeService.startProcessInstanceByKey("callExampleSubProcess");

            executeAvailableJobs();

            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().includeIncidents().includeFailedJobs().list();

            Assert.assertEquals(2, statistics.Count);

            ProcessDefinitionStatistics callExampleSubProcessStaticstics = null;
            ProcessDefinitionStatistics exampleSubProcessStaticstics     = null;

            foreach (ProcessDefinitionStatistics current in statistics)
            {
                if (current.Key.Equals("callExampleSubProcess"))
                {
                    callExampleSubProcessStaticstics = current;
                }
                else if (current.Key.Equals("ExampleProcess"))
                {
                    exampleSubProcessStaticstics = current;
                }
                else
                {
                    fail(current.Key + " was not expected.");
                }
            }

            assertNotNull(callExampleSubProcessStaticstics);
            assertNotNull(exampleSubProcessStaticstics);

            // "super" process definition
            assertEquals(1, callExampleSubProcessStaticstics.Instances);
            assertEquals(0, callExampleSubProcessStaticstics.FailedJobs);

            assertFalse(callExampleSubProcessStaticstics.IncidentStatistics.Count == 0);
            assertEquals(1, callExampleSubProcessStaticstics.IncidentStatistics.Count);

            IncidentStatistics incidentStatistics = callExampleSubProcessStaticstics.IncidentStatistics[0];

            assertEquals(org.camunda.bpm.engine.runtime.Incident_Fields.FAILED_JOB_HANDLER_TYPE, incidentStatistics.IncidentType);
            assertEquals(1, incidentStatistics.IncidentCount);

            // "called" process definition
            assertEquals(1, exampleSubProcessStaticstics.Instances);
            assertEquals(1, exampleSubProcessStaticstics.FailedJobs);

            assertFalse(exampleSubProcessStaticstics.IncidentStatistics.Count == 0);
            assertEquals(1, exampleSubProcessStaticstics.IncidentStatistics.Count);

            incidentStatistics = exampleSubProcessStaticstics.IncidentStatistics[0];
            assertEquals(org.camunda.bpm.engine.runtime.Incident_Fields.FAILED_JOB_HANDLER_TYPE, incidentStatistics.IncidentType);
            assertEquals(1, incidentStatistics.IncidentCount);
        }
Ejemplo n.º 6
0
        public virtual void testSubprocessProcessDefinitionStatisticsQuery()
        {
            runtimeService.startProcessInstanceByKey("ExampleProcess");

            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().list();

            Assert.assertEquals(1, statistics.Count);

            ProcessDefinitionStatistics result = statistics[0];

            Assert.assertEquals(1, result.Instances);
        }
Ejemplo n.º 7
0
        public virtual void testProcessDefinitionStatisticsQueryForMultipleVersionsWithFailedJobsAndIncidents()
        {
            org.camunda.bpm.engine.repository.Deployment deployment = repositoryService.createDeployment().addClasspathResource("org/camunda/bpm/engine/test/api/mgmt/StatisticsTest.testStatisticsQueryWithFailedJobs.bpmn20.xml").deploy();

            IList <ProcessDefinition> definitions = repositoryService.createProcessDefinitionQuery().processDefinitionKey("ExampleProcess").list();

            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters["fail"] = true;

            foreach (ProcessDefinition definition in definitions)
            {
                runtimeService.startProcessInstanceById(definition.Id, parameters);
            }

            executeAvailableJobs();

            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().includeFailedJobs().includeIncidents().list();

            Assert.assertEquals(2, statistics.Count);

            ProcessDefinitionStatistics definitionResult = statistics[0];

            Assert.assertEquals(1, definitionResult.Instances);
            Assert.assertEquals(1, definitionResult.FailedJobs);

            IList <IncidentStatistics> incidentStatistics = definitionResult.IncidentStatistics;

            assertFalse(incidentStatistics.Count == 0);
            assertEquals(1, incidentStatistics.Count);

            IncidentStatistics incident = incidentStatistics[0];

            assertEquals(org.camunda.bpm.engine.runtime.Incident_Fields.FAILED_JOB_HANDLER_TYPE, incident.IncidentType);
            assertEquals(1, incident.IncidentCount);

            definitionResult = statistics[1];
            Assert.assertEquals(1, definitionResult.Instances);
            Assert.assertEquals(1, definitionResult.FailedJobs);

            incidentStatistics = definitionResult.IncidentStatistics;
            assertFalse(incidentStatistics.Count == 0);
            assertEquals(1, incidentStatistics.Count);

            incident = incidentStatistics[0];

            assertEquals(org.camunda.bpm.engine.runtime.Incident_Fields.FAILED_JOB_HANDLER_TYPE, incident.IncidentType);
            assertEquals(1, incident.IncidentCount);

            repositoryService.deleteDeployment(deployment.Id, true);
        }
Ejemplo n.º 8
0
        public virtual void testQueryByFailedJobsWithFailedTimerStartEvent()
        {
            executeAvailableJobs();

            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().includeFailedJobs().list();

            assertEquals(1, statistics.Count);

            ProcessDefinitionStatistics result = statistics[0];

            // there is no running instance
            assertEquals(0, result.Instances);
            // but there is one failed timer job
            assertEquals(1, result.FailedJobs);
        }
Ejemplo n.º 9
0
        public virtual void testProcessDefinitionStatisticsQueryWithoutRunningInstances()
        {
            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().includeFailedJobs().includeIncidents().list();

            Assert.assertEquals(1, statistics.Count);

            ProcessDefinitionStatistics definitionResult = statistics[0];

            Assert.assertEquals(0, definitionResult.Instances);
            Assert.assertEquals(0, definitionResult.FailedJobs);

            statistics = managementService.createProcessDefinitionStatisticsQuery().includeIncidents().list();

            assertTrue(definitionResult.IncidentStatistics.Count == 0);
        }
Ejemplo n.º 10
0
        protected internal virtual void verifyStatisticsResult(ProcessDefinitionStatistics statistics, int instances, int failedJobs, int incidents)
        {
            assertEquals("Instances", instances, statistics.Instances);
            assertEquals("Failed Jobs", failedJobs, statistics.FailedJobs);

            IList <IncidentStatistics> incidentStatistics = statistics.IncidentStatistics;

            if (incidents == 0)
            {
                assertTrue("Incidents supposed to be empty", incidentStatistics.Count == 0);
            }
            else
            {
                // the test does have only one type of incidents
                assertEquals("Incidents", incidents, incidentStatistics[0].IncidentCount);
            }
        }
Ejemplo n.º 11
0
        public virtual void testQueryWithReadPermissionOnOneTaskProcess()
        {
            // given
            createGrantAuthorization(PROCESS_DEFINITION, ONE_TASK_PROCESS_KEY, userId, READ);

            // when
            ProcessDefinitionStatisticsQuery query = managementService.createProcessDefinitionStatisticsQuery();

            // then
            verifyQueryResults(query, 1);

            ProcessDefinitionStatistics statistics = query.singleResult();

            assertEquals(ONE_TASK_PROCESS_KEY, statistics.Key);
            assertEquals(0, statistics.Instances);
            assertEquals(0, statistics.FailedJobs);
            assertTrue(statistics.IncidentStatistics.Count == 0);
        }
Ejemplo n.º 12
0
        public virtual void testProcessDefinitionStatisticsQueryWithFailedJobs()
        {
            runtimeService.startProcessInstanceByKey("ExampleProcess");

            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters["fail"] = true;
            runtimeService.startProcessInstanceByKey("ExampleProcess", parameters);

            executeAvailableJobs();

            IList <ProcessDefinitionStatistics> statistics = managementService.createProcessDefinitionStatisticsQuery().includeFailedJobs().list();

            Assert.assertEquals(1, statistics.Count);

            ProcessDefinitionStatistics definitionResult = statistics[0];

            Assert.assertEquals(2, definitionResult.Instances);
            Assert.assertEquals(1, definitionResult.FailedJobs);
        }
Ejemplo n.º 13
0
        public virtual void testProcessDefinitionStatisticsProperties()
        {
            string resourceName = "org/camunda/bpm/engine/test/api/mgmt/ProcessDefinitionStatisticsQueryTest.testProcessDefinitionStatisticsProperties.bpmn20.xml";
            string deploymentId = deploymentForTenant("tenant1", resourceName);

            ProcessDefinitionStatistics processDefinitionStatistics = managementService.createProcessDefinitionStatisticsQuery().singleResult();

            assertEquals("testProcess", processDefinitionStatistics.Key);
            assertEquals("process name", processDefinitionStatistics.Name);
            assertEquals("Examples", processDefinitionStatistics.Category);
            assertEquals(null, processDefinitionStatistics.Description);     // it is not parsed for the statistics query
            assertEquals("tenant1", processDefinitionStatistics.TenantId);
            assertEquals("v0.1.0", processDefinitionStatistics.VersionTag);
            assertEquals(deploymentId, processDefinitionStatistics.DeploymentId);
            assertEquals(resourceName, processDefinitionStatistics.ResourceName);
            assertEquals(null, processDefinitionStatistics.DiagramResourceName);
            assertEquals(1, processDefinitionStatistics.Version);
            assertEquals(0, processDefinitionStatistics.Instances);
            assertEquals(0, processDefinitionStatistics.FailedJobs);
            assertTrue(processDefinitionStatistics.IncidentStatistics.Count == 0);
        }
Ejemplo n.º 14
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void instancesFailedJobsAndIncidentsCountWithAuthenticatedTenant()
        public virtual void instancesFailedJobsAndIncidentsCountWithAuthenticatedTenant()
        {
            testRule.deploy(failingProcess);

            startProcessInstances(FAILED_JOBS_PROCESS_DEFINITION_KEY);

            testRule.executeAvailableJobs();

            identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE));

            IList <ProcessDefinitionStatistics> processDefinitionsStatistics = managementService.createProcessDefinitionStatisticsQuery().includeFailedJobs().includeIncidents().list();

            // then
            assertEquals(1, processDefinitionsStatistics.Count);
            ProcessDefinitionStatistics processDefinitionStatistics = processDefinitionsStatistics[0];

            assertEquals(2, processDefinitionStatistics.Instances);
            assertEquals(2, processDefinitionStatistics.FailedJobs);

            IList <IncidentStatistics> incidentStatistics = processDefinitionStatistics.IncidentStatistics;

            assertEquals(1, incidentStatistics.Count);
            assertEquals(2, incidentStatistics[0].IncidentCount);
        }
Ejemplo n.º 15
0
        public static ProcessDefinitionStatisticsResultDto fromProcessDefinitionStatistics(ProcessDefinitionStatistics statistics)
        {
            ProcessDefinitionStatisticsResultDto dto = new ProcessDefinitionStatisticsResultDto();

            dto.definition = ProcessDefinitionDto.fromProcessDefinition(statistics);
            dto.id         = statistics.Id;
            dto.instances  = statistics.Instances;
            dto.failedJobs = statistics.FailedJobs;

            dto.incidents = new List <IncidentStatisticsResultDto>();
            foreach (IncidentStatistics incident in statistics.IncidentStatistics)
            {
                IncidentStatisticsResultDto incidentDto = IncidentStatisticsResultDto.fromIncidentStatistics(incident);
                dto.incidents.Add(incidentDto);
            }

            return(dto);
        }