Beispiel #1
0
        public virtual void testHistory()
        {
            // given
            Task compensationHandler = rule.taskQuery().singleResult();

            // when
            rule.TaskService.complete(compensationHandler.Id);

            // then history is written for the remaining activity instances
            HistoricProcessInstance historicProcessInstance = rule.historicProcessInstance();

            Assert.assertNotNull(historicProcessInstance);
            Assert.assertNotNull(historicProcessInstance.EndTime);

            HistoricActivityInstance subProcessInstance = rule.HistoryService.createHistoricActivityInstanceQuery().processInstanceId(historicProcessInstance.Id).activityId("subProcess").singleResult();

            Assert.assertNotNull(subProcessInstance);
            Assert.assertNotNull(subProcessInstance.EndTime);
            Assert.assertEquals(historicProcessInstance.Id, subProcessInstance.ParentActivityInstanceId);

            HistoricActivityInstance compensationThrowInstance = rule.HistoryService.createHistoricActivityInstanceQuery().processInstanceId(historicProcessInstance.Id).activityId("throwCompensate").singleResult();

            Assert.assertNotNull(compensationThrowInstance);
            Assert.assertNotNull(compensationThrowInstance.EndTime);
            Assert.assertEquals(subProcessInstance.Id, compensationThrowInstance.ParentActivityInstanceId);

            HistoricActivityInstance compensationHandlerInstance = rule.HistoryService.createHistoricActivityInstanceQuery().processInstanceId(historicProcessInstance.Id).activityId("undoTask").singleResult();

            Assert.assertNotNull(compensationHandlerInstance);
            Assert.assertNotNull(compensationHandlerInstance.EndTime);
            Assert.assertEquals(subProcessInstance.Id, compensationHandlerInstance.ParentActivityInstanceId);
        }
Beispiel #2
0
 public virtual void checkDeleteHistoricProcessInstance(HistoricProcessInstance instance)
 {
     if (instance != null && !TenantManager.isAuthenticatedTenant(instance.TenantId))
     {
         throw LOG.exceptionCommandWithUnauthorizedTenant("delete the historic process instance '" + instance.Id + "'");
     }
 }
Beispiel #3
0
        public virtual void historicIncidentRemainsOpenAfterMigration()
        {
            // Given we create a new process instance
            ProcessDefinition process1        = engineRule.RepositoryService.createProcessDefinitionQuery().processDefinitionKey("calledProcess").singleResult();
            ProcessInstance   processInstance = engineRule.RuntimeService.startProcessInstanceById(process1.Id);

            LockedExternalTask task = engineRule.ExternalTaskService.fetchAndLock(1, "foo").topic("foo", 1000L).execute()[0];

            engineRule.ExternalTaskService.handleFailure(task.Id, "foo", "error", 0, 1000L);

            Incident incidentInProcess = engineRule.RuntimeService.createIncidentQuery().processDefinitionId(process1.Id).singleResult();

            // when
            ProcessDefinition process2 = engineRule.RepositoryService.createProcessDefinitionQuery().processDefinitionKey("calledProcessV2").singleResult();

            MigrationPlan migrationPlan = engineRule.RuntimeService.createMigrationPlan(process1.Id, process2.Id).mapEqualActivities().mapActivities("ServiceTask_1p58ywb", "ServiceTask_V2").build();

            engineRule.RuntimeService.newMigration(migrationPlan).processInstanceIds(processInstance.Id).execute();

            // then
            HistoricIncident historicIncidentAfterMigration = engineRule.HistoryService.createHistoricIncidentQuery().singleResult();

            assertNotNull(historicIncidentAfterMigration);
            assertNull(historicIncidentAfterMigration.EndTime);
            assertTrue(historicIncidentAfterMigration.Open);

            HistoricProcessInstance historicProcessInstanceAfterMigration = engineRule.HistoryService.createHistoricProcessInstanceQuery().withIncidents().incidentStatus("open").singleResult();

            assertNotNull(historicProcessInstanceAfterMigration);

            Incident incidentAfterMigration = engineRule.RuntimeService.createIncidentQuery().incidentId(incidentInProcess.Id).singleResult();

            assertEquals(process2.Id, incidentAfterMigration.ProcessDefinitionId);
            assertEquals("ServiceTask_V2", incidentAfterMigration.ActivityId);
        }
Beispiel #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testPAGroovyProcessEnginePlugin()
        public virtual void testPAGroovyProcessEnginePlugin()
        {
            ProcessEngine groovyEngine = processEngineService.getProcessEngine("groovy");

            Assert.assertNotNull(groovyEngine);

            ProcessInstance         pi  = groovyEngine.RuntimeService.startProcessInstanceByKey("groovy");
            HistoricProcessInstance hpi = groovyEngine.HistoryService.createHistoricProcessInstanceQuery().processDefinitionKey("groovy").finished().singleResult();

            assertEquals(pi.Id, hpi.Id);
        }
Beispiel #5
0
        protected internal virtual void checkBusinessKeyChanged(string newBusinessKeyValue)
        {
            ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processDefinitionKey(PROCESS_KEY).singleResult();

            assertNotNull(processInstance);
            assertEquals(newBusinessKeyValue, processInstance.BusinessKey);

            HistoricProcessInstance historicInstance = historyService.createHistoricProcessInstanceQuery().singleResult();

            assertNotNull(historicInstance);
            assertEquals(newBusinessKeyValue, historicInstance.BusinessKey);
        }
Beispiel #6
0
        public virtual void testMigrateHistoryProcessInstance()
        {
            //given
            HistoricProcessInstanceQuery sourceHistoryProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery().processDefinitionId(sourceProcessDefinition.Id);
            HistoricProcessInstanceQuery targetHistoryProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery().processDefinitionId(targetProcessDefinition.Id);


            //when
            assertEquals(1, sourceHistoryProcessInstanceQuery.count());
            assertEquals(0, targetHistoryProcessInstanceQuery.count());
            ProcessInstanceQuery sourceProcessInstanceQuery = runtimeService.createProcessInstanceQuery().processDefinitionId(sourceProcessDefinition.Id);

            runtimeService.newMigration(migrationPlan).processInstanceQuery(sourceProcessInstanceQuery).execute();

            //then
            assertEquals(0, sourceHistoryProcessInstanceQuery.count());
            assertEquals(1, targetHistoryProcessInstanceQuery.count());

            HistoricProcessInstance instance = targetHistoryProcessInstanceQuery.singleResult();

            assertEquals(instance.ProcessDefinitionKey, targetProcessDefinition.Key);
        }
Beispiel #7
0
        // delete permission /////////////////////////////////////////////////

        public virtual void checkDeleteHistoricProcessInstance(HistoricProcessInstance instance)
        {
            AuthorizationManager.checkAuthorization(DELETE_HISTORY, PROCESS_DEFINITION, instance.ProcessDefinitionKey);
        }