Exemplo n.º 1
0
        private void assertThatActivitiesHaveAllImportantInformation(IList <HistoricActivityInstance> completedHistoricActivityInstances)
        {
            HistoricActivityInstance startEvent = null, endEvent = null;

            foreach (HistoricActivityInstance completedHistoricActivityInstance in completedHistoricActivityInstances)
            {
                if (completedHistoricActivityInstance.ActivityId.Equals("startEvent"))
                {
                    startEvent = completedHistoricActivityInstance;
                }
                else if (completedHistoricActivityInstance.ActivityId.Equals("endEvent"))
                {
                    endEvent = completedHistoricActivityInstance;
                }
            }
            assertThat(startEvent, notNullValue());
            assertThat(startEvent.ActivityName, @is("start"));
            assertThat(startEvent.ActivityType, @is("startEvent"));
            assertThat(startEvent.StartTime, notNullValue());
            assertThat(startEvent.EndTime, notNullValue());
            assertThat(startEvent.ProcessDefinitionKey, @is("process"));
            assertThat(startEvent.ProcessDefinitionId, notNullValue());

            assertThat(endEvent, notNullValue());
            assertThat(endEvent.ActivityName, @is("end"));
            assertThat(endEvent.ActivityType, @is("noneEndEvent"));
            assertThat(endEvent.StartTime, notNullValue());
            assertThat(endEvent.EndTime, notNullValue());
            assertThat(endEvent.ProcessDefinitionKey, @is("process"));
            assertThat(endEvent.ProcessDefinitionId, notNullValue());
        }
Exemplo n.º 2
0
        public void TestHistoricActivityInstance1()
        {
            HistoricActivityInstance data = new HistoricActivityInstance();

            data.Assignee = "Assigne";
            data.BpmId    = Guid.NewGuid().ToString();
            data.BpmName  = "BpmnName";
            data.BpmType  = "Type";
            data.CalledProcessInstanceId = Guid.NewGuid().ToString();
            data.DurationInMillis        = 0;
            data.EndTime             = new DateTime();
            data.ExecutionId         = Guid.NewGuid().ToString();
            data.Id                  = Guid.NewGuid().ToString();
            data.ProcessDefinitionId = Guid.NewGuid().ToString();
            data.ProcessInstanceId   = Guid.NewGuid().ToString();
            data.StartTime           = new DateTime();
            data.TaskId              = Guid.NewGuid().ToString();
            data.TenantId            = "tenant";
            Assert.IsNotNull(data.Assignee);
            Assert.IsNotNull(data.BpmId);
            Assert.IsNotNull(data.BpmName);
            Assert.IsNotNull(data.BpmType);
            Assert.IsNotNull(data.CalledProcessInstanceId);
            Assert.IsNotNull(data.DurationInMillis);
            Assert.IsNotNull(data.EndTime);
            Assert.IsNotNull(data.ExecutionId);
            Assert.IsNotNull(data.Id);
            Assert.IsNotNull(data.ProcessDefinitionId);
            Assert.IsNotNull(data.ProcessInstanceId);
            Assert.IsNotNull(data.StartTime);
            Assert.IsNotNull(data.TaskId);
            Assert.IsNotNull(data.TenantId);
        }
Exemplo n.º 3
0
        public virtual void testHistoricProcessInstanceForSingleActivityInstantiation()
        {
            // when
            ProcessInstance instance = runtimeService.createProcessInstanceByKey("exclusiveGateway").startBeforeActivity("task1").execute();

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

            assertNotNull(historicInstance);
            assertEquals(instance.Id, historicInstance.Id);
            assertNotNull(historicInstance.StartTime);
            assertNull(historicInstance.EndTime);

            // should be the first activity started
            assertEquals("task1", historicInstance.StartActivityId);

            HistoricActivityInstance historicActivityInstance = historyService.createHistoricActivityInstanceQuery().singleResult();

            assertNotNull(historicActivityInstance);
            assertEquals("task1", historicActivityInstance.ActivityId);
            assertNotNull(historicActivityInstance.Id);
            assertFalse(instance.Id.Equals(historicActivityInstance.Id));
            assertNotNull(historicActivityInstance.StartTime);
            assertNull(historicActivityInstance.EndTime);
        }
Exemplo n.º 4
0
        public static HistoricActivityInstanceDto fromHistoricActivityInstance(HistoricActivityInstance historicActivityInstance)
        {
            HistoricActivityInstanceDto dto = new HistoricActivityInstanceDto();

            dto.id = historicActivityInstance.Id;
            dto.parentActivityInstanceId = historicActivityInstance.ParentActivityInstanceId;
            dto.activityId           = historicActivityInstance.ActivityId;
            dto.activityName         = historicActivityInstance.ActivityName;
            dto.activityType         = historicActivityInstance.ActivityType;
            dto.processDefinitionKey = historicActivityInstance.ProcessDefinitionKey;
            dto.processDefinitionId  = historicActivityInstance.ProcessDefinitionId;
            dto.processInstanceId    = historicActivityInstance.ProcessInstanceId;
            dto.executionId          = historicActivityInstance.ExecutionId;
            dto.taskId = historicActivityInstance.TaskId;
            dto.calledProcessInstanceId = historicActivityInstance.CalledProcessInstanceId;
            dto.calledCaseInstanceId    = historicActivityInstance.CalledCaseInstanceId;
            dto.assignee              = historicActivityInstance.Assignee;
            dto.startTime             = historicActivityInstance.StartTime;
            dto.endTime               = historicActivityInstance.EndTime;
            dto.durationInMillis      = historicActivityInstance.DurationInMillis;
            dto.canceled              = historicActivityInstance.Canceled;
            dto.completeScope         = historicActivityInstance.CompleteScope;
            dto.tenantId              = historicActivityInstance.TenantId;
            dto.removalTime           = historicActivityInstance.RemovalTime;
            dto.rootProcessInstanceId = historicActivityInstance.RootProcessInstanceId;

            return(dto);
        }
Exemplo n.º 5
0
        public virtual void testMigrateHistoryActivityInstance()
        {
            //given
            ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS);
            ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(modify(ProcessModels.ONE_TASK_PROCESS).changeElementId("Process", "Process2").changeElementId("userTask", "userTask2").changeElementName("userTask", "new activity name"));

            MigrationPlan migrationPlan = runtimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("userTask", "userTask2").build();

            ProcessInstance processInstance = runtimeService.startProcessInstanceById(sourceProcessDefinition.Id);

            HistoricActivityInstanceQuery sourceHistoryActivityInstanceQuery = historyService.createHistoricActivityInstanceQuery().processDefinitionId(sourceProcessDefinition.Id);
            HistoricActivityInstanceQuery targetHistoryActivityInstanceQuery = historyService.createHistoricActivityInstanceQuery().processDefinitionId(targetProcessDefinition.Id);

            //when
            assertEquals(2, sourceHistoryActivityInstanceQuery.count());
            assertEquals(0, targetHistoryActivityInstanceQuery.count());
            ProcessInstanceQuery sourceProcessInstanceQuery = runtimeService.createProcessInstanceQuery().processDefinitionId(sourceProcessDefinition.Id);

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

            // then one instance of the start event still belongs to the source process
            // and one active user task instances is now migrated to the target process
            assertEquals(1, sourceHistoryActivityInstanceQuery.count());
            assertEquals(1, targetHistoryActivityInstanceQuery.count());

            HistoricActivityInstance instance = targetHistoryActivityInstanceQuery.singleResult();

            assertMigratedTo(instance, targetProcessDefinition, "userTask2");
            assertEquals("new activity name", instance.ActivityName);
            assertEquals(processInstance.Id, instance.ParentActivityInstanceId);
            assertEquals("userTask", instance.ActivityType);
        }
Exemplo n.º 6
0
 public ActivityPerfTestResult(HistoricActivityInstance historicActivity)
 {
     activityId         = historicActivity.ActivityId;
     activityInstanceId = historicActivity.Id;
     processInstanceId  = historicActivity.ProcessInstanceId;
     startTime          = historicActivity.StartTime;
     endTime            = historicActivity.EndTime;
     duration           = historicActivity.DurationInMillis;
 }
Exemplo n.º 7
0
 private void assertThatActivitiesHaveAllImportantInformation(HistoricActivityInstance activityInstance)
 {
     assertThat(activityInstance, notNullValue());
     assertThat(activityInstance.ActivityName, @is("task"));
     assertThat(activityInstance.ActivityType, @is("userTask"));
     assertThat(activityInstance.StartTime, notNullValue());
     assertThat(activityInstance.EndTime, nullValue());
     assertThat(activityInstance.ProcessDefinitionKey, @is("process"));
     assertThat(activityInstance.ProcessDefinitionId, notNullValue());
 }
Exemplo n.º 8
0
        private void createHistoricActivityInstanceMock()
        {
            IList <HistoricActivityInstance> activities   = new List <HistoricActivityInstance>();
            HistoricActivityInstance         mockInstance = MockProvider.createMockHistoricActivityInstance();

            activities.Add(mockInstance);

            HistoricActivityInstanceQuery mockHistoricActivityInstanceQuery = mock(typeof(HistoricActivityInstanceQuery));

            when(mockHistoricActivityInstanceQuery.list()).thenReturn(activities);
            when(mockHistoryService.createHistoricActivityInstanceQuery()).thenReturn(mockHistoricActivityInstanceQuery);
        }
Exemplo n.º 9
0
 private long searchForActivityIndex(IList <HistoricActivityInstance> historicActivityInstances, string activityId)
 {
     for (int i = 0; i < historicActivityInstances.Count; i++)
     {
         HistoricActivityInstance historicActivityInstance = historicActivityInstances[i];
         if (historicActivityInstance.ActivityId.Equals(activityId))
         {
             return(i);
         }
     }
     return(-1);
 }
Exemplo n.º 10
0
        public virtual void testHistoricActivityInstancesForSubprocess()
        {
            // when
            ProcessInstance instance = runtimeService.createProcessInstanceByKey("subprocess").startBeforeActivity("innerTask").startBeforeActivity("theSubProcessStart").execute();

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

            assertNotNull(historicInstance);
            assertEquals(instance.Id, historicInstance.Id);
            assertNotNull(historicInstance.StartTime);
            assertNull(historicInstance.EndTime);

            // should be the first activity started
            assertEquals("innerTask", historicInstance.StartActivityId);

            // subprocess, subprocess start event, two innerTasks
            assertEquals(4, historyService.createHistoricActivityInstanceQuery().count());

            HistoricActivityInstance subProcessInstance = historyService.createHistoricActivityInstanceQuery().activityId("subProcess").singleResult();

            assertNotNull(subProcessInstance);
            assertEquals("subProcess", subProcessInstance.ActivityId);
            assertNotNull(subProcessInstance.Id);
            assertFalse(instance.Id.Equals(subProcessInstance.Id));
            assertNotNull(subProcessInstance.StartTime);
            assertNull(subProcessInstance.EndTime);

            HistoricActivityInstance startEventInstance = historyService.createHistoricActivityInstanceQuery().activityId("theSubProcessStart").singleResult();

            assertNotNull(startEventInstance);
            assertEquals("theSubProcessStart", startEventInstance.ActivityId);
            assertNotNull(startEventInstance.Id);
            assertFalse(instance.Id.Equals(startEventInstance.Id));
            assertNotNull(startEventInstance.StartTime);
            assertNotNull(startEventInstance.EndTime);

            IList <HistoricActivityInstance> innerTaskInstances = historyService.createHistoricActivityInstanceQuery().activityId("innerTask").list();

            assertEquals(2, innerTaskInstances.Count);

            foreach (HistoricActivityInstance innerTaskInstance in innerTaskInstances)
            {
                assertNotNull(innerTaskInstance);
                assertEquals("innerTask", innerTaskInstance.ActivityId);
                assertNotNull(innerTaskInstance.Id);
                assertFalse(instance.Id.Equals(innerTaskInstance.Id));
                assertNotNull(innerTaskInstance.StartTime);
                assertNull(innerTaskInstance.EndTime);
            }
        }
Exemplo n.º 11
0
        public virtual void testSkipCustomListenerEnsureHistoryWritten()
        {
            // when creating the task skipping custom listeners
            runtimeService.createProcessInstanceByKey("exclusiveGateway").startBeforeActivity("task2").execute(true, false);

            // then the task assignment history (which uses a task listener) is written
            Task task = taskService.createTaskQuery().taskDefinitionKey("task2").singleResult();

            HistoricActivityInstance instance = historyService.createHistoricActivityInstanceQuery().activityId("task2").singleResult();

            assertNotNull(instance);
            assertEquals(task.Id, instance.TaskId);
            assertEquals("kermit", instance.Assignee);
        }
Exemplo n.º 12
0
        protected internal virtual void verifyOrder(HistoricActivityInstanceQuery query, params string[] expectedOrder)
        {
            assertEquals(expectedOrder.Length, query.count());

            IList <HistoricActivityInstance> activityInstances = query.list();

            for (int i = 0; i < expectedOrder.Length; i++)
            {
                HistoricActivityInstance activityInstance = activityInstances[i];
                string currentActivityId  = activityInstance.ActivityId;
                string expectedActivityId = expectedOrder[i];
                assertEquals(expectedActivityId, currentActivityId);
            }
        }
Exemplo n.º 13
0
        protected internal virtual HistoricActivityInstance resolveStartActivityInstance(HistoricProcessInstance processInstance)
        {
            HistoryService historyService = Context.ProcessEngineConfiguration.HistoryService;

            string processInstanceId = processInstance.Id;
            string startActivityId   = processInstance.StartActivityId;

            ensureNotNull("startActivityId", startActivityId);

            IList <HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).activityId(startActivityId).orderPartiallyByOccurrence().asc().list();

            ensureNotEmpty("historicActivityInstances", historicActivityInstances);

            HistoricActivityInstance startActivityInstance = historicActivityInstances[0];

            return(startActivityInstance);
        }
Exemplo n.º 14
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void getRunningHistoricActivityInstances()
        public virtual void getRunningHistoricActivityInstances()
        {
            // given
            BpmnModelInstance simpleDefinition = Bpmn.createExecutableProcess("process").startEvent("startEvent").name("start").userTask("userTask").name("task").endEvent("endEvent").name("end").done();

            testHelper.deploy(simpleDefinition);
            runtimeService.startProcessInstanceByKey("process");

            // when
            IList <HistoricActivityInstance> runningHistoricActivityInstances = optimizeService.getRunningHistoricActivityInstances(pastDate(), null, 10);

            // then
            assertThat(runningHistoricActivityInstances.Count, @is(1));
            HistoricActivityInstance activityInstance = runningHistoricActivityInstances[0];

            assertThatActivitiesHaveAllImportantInformation(activityInstance);
        }
Exemplo n.º 15
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testSetVariableLocalOnServiceTaskInsideParallelBranch()
        public virtual void testSetVariableLocalOnServiceTaskInsideParallelBranch()
        {
            ProcessInstance pi = runtimeService.startProcessInstanceByKey("process");

            HistoricActivityInstance serviceTask = historyService.createHistoricActivityInstanceQuery().activityId("serviceTask1").singleResult();

            assertNotNull(serviceTask);

            HistoricVariableInstanceQuery query = historyService.createHistoricVariableInstanceQuery();

            assertEquals(1, query.count());

            HistoricVariableInstance variable = query.singleResult();

            // the variable is in the service task scope
            assertEquals(serviceTask.Id, variable.ActivityInstanceId);

            assertProcessEnded(pi.Id);
        }
Exemplo n.º 16
0
        protected internal virtual VariableMap collectInitialVariables(CommandContext commandContext, HistoricProcessInstance processInstance)
        {
            HistoryService historyService = commandContext.ProcessEngineConfiguration.HistoryService;

            HistoricActivityInstance startActivityInstance = resolveStartActivityInstance(processInstance);

            HistoricDetailQueryImpl query = (HistoricDetailQueryImpl)historyService.createHistoricDetailQuery().variableUpdates().executionId(processInstance.Id).activityInstanceId(startActivityInstance.Id);

            IList <HistoricDetail> historicDetails = query.sequenceCounter(1).list();

            VariableMap variables = new VariableMapImpl();

            foreach (HistoricDetail detail in historicDetails)
            {
                HistoricVariableUpdate variableUpdate = (HistoricVariableUpdate)detail;
                variables.putValueTyped(variableUpdate.VariableName, variableUpdate.TypedValue);
            }

            return(variables);
        }
Exemplo n.º 17
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Ignore("CAM-9354") @Test public void shouldHaveEqualParentActivityInstanceId()
        public virtual void shouldHaveEqualParentActivityInstanceId()
        {
            // given
            testHelper.deploy(Bpmn.createExecutableProcess("process").startEvent().subProcess("subprocess").embeddedSubProcess().startEvent().scriptTask("scriptTaskInSubprocess").scriptFormat("groovy").scriptText("throw new org.camunda.bpm.engine.delegate.BpmnError(\"anErrorCode\");").userTask().endEvent().subProcessDone().endEvent().moveToActivity("subprocess").boundaryEvent("boundary").error("anErrorCode").userTask("userTaskAfterBoundaryEvent").endEvent().done());

            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("process");

            // when
            runtimeService.createModification(processInstance.ProcessDefinitionId).startAfterActivity("scriptTaskInSubprocess").processInstanceIds(processInstance.Id).execute();

            ActivityInstance activityInstance = runtimeService.getActivityInstance(processInstance.Id).getActivityInstances("subprocess")[0];

            HistoricActivityInstance historicActivityInstance = historyService.createHistoricActivityInstanceQuery().activityId("subprocess").unfinished().singleResult();

            // assume
            assertNotNull(activityInstance);
            assertNotNull(historicActivityInstance);

            // then
            assertEquals(historicActivityInstance.ParentActivityInstanceId, activityInstance.ParentActivityInstanceId);
        }
Exemplo n.º 18
0
 protected internal virtual void assertMigratedTo(HistoricActivityInstance activityInstance, ProcessDefinition processDefinition, string activityId)
 {
     Assert.assertEquals(processDefinition.Id, activityInstance.ProcessDefinitionId);
     Assert.assertEquals(processDefinition.Key, activityInstance.ProcessDefinitionKey);
     Assert.assertEquals(activityId, activityInstance.ActivityId);
 }