public virtual void shouldSetExternalTaskRetriesWithDifferentListAndQueryAsync()
        {
            // given
            IQueryable <ESS.FW.Bpm.Engine.Externaltask.IExternalTask> externalTaskQuery = externalTaskService.CreateExternalTaskQuery(c => c.ProcessInstanceId == processInstanceIds[0]);
            IList <ESS.FW.Bpm.Engine.Externaltask.IExternalTask>      externalTasks     = externalTaskService.CreateExternalTaskQuery(c => c.ProcessInstanceId == processInstanceIds[processInstanceIds.Count - 1])
                                                                                          .ToList();

            ; List <string> externalTaskIds = new List <string>();
            foreach (ESS.FW.Bpm.Engine.Externaltask.IExternalTask t in externalTasks)
            {
                externalTaskIds.Add(t.Id);
            }

            // when
            IBatch batch = externalTaskService.SetRetriesAsync(externalTaskIds, externalTaskQuery, 8);

            executeSeedAndBatchJobs(batch);

            // then
            ESS.FW.Bpm.Engine.Externaltask.IExternalTask task = externalTaskService.CreateExternalTaskQuery(c => c.ProcessInstanceId == processInstanceIds[0]).First();
            Assert.AreEqual(8, (int)task.Retries);
            IList <ESS.FW.Bpm.Engine.Externaltask.IExternalTask> tasks = externalTaskService.CreateExternalTaskQuery(c => c.ProcessInstanceId == processInstanceIds[processInstanceIds.Count - 1])
                                                                         .ToList();

            ; foreach (ESS.FW.Bpm.Engine.Externaltask.IExternalTask t in tasks)
            {
                Assert.AreEqual(8, (int)t.Retries);
            }
        }
示例#2
0
        [Test]   public virtual void testPropagateTenantIdToExternalTask()
        {
            DeploymentForTenant(TENANT_ID, ESS.FW.Bpm.Model.Bpmn.Bpmn.CreateExecutableProcess(PROCESS_DEFINITION_KEY).StartEvent().ServiceTask().CamundaType("external").CamundaTopic("test").EndEvent().Done());

            startProcessInstance(PROCESS_DEFINITION_KEY);

            ESS.FW.Bpm.Engine.Externaltask.IExternalTask externalTask = externalTaskService.CreateExternalTaskQuery().First();
            //Assert.That(externalTask, Is.Not.EqualTo(null));
            // inherit the tenant id from execution
            Assert.That(externalTask.TenantId, Is.EqualTo(TENANT_ID));

            //IList<ILockedExternalTask> externalTasks = externalTaskService.FetchAndLock(1, "test").Topic("test", 1000).Execute();
            //Assert.That(externalTasks.Count, Is.EqualTo(1));
            //Assert.That(externalTasks[0].TenantId, Is.EqualTo(TENANT_ID));
        }
        public virtual void testFilterByExternalTaskPriorityLowerAndHigher()
        {
            // given five jobs with priorities from 1 to 5
            IList <IProcessInstance> instances = new List <IProcessInstance>();

            for (int i = 0; i < 5; i++)
            {
                instances.Add(runtimeService.StartProcessInstanceByKey("twoExternalTaskWithPriorityProcess", ESS.FW.Bpm.Engine.Variable.Variables.CreateVariables().PutValue("priority", i)));
            }

            // when making a external task query and filtering by external task priority
            // then the correct external task is returned
            ESS.FW.Bpm.Engine.Externaltask.IExternalTask task = externalTaskService.CreateExternalTaskQuery(c => c.Priority >= 2L && c.Priority <= 2L).First();
            Assert.NotNull(task);
            Assert.AreEqual(2, task.Priority);
            Assert.AreEqual(instances[2].Id, task.ProcessInstanceId);
        }
        public virtual void testSetRetries()
        {
            // given
            IProcessInstance processInstance = engineRule.RuntimeService.StartProcessInstanceByKey("oneExternalTaskProcess");

            ESS.FW.Bpm.Engine.Externaltask.IExternalTask task = engineRule.ExternalTaskService.CreateExternalTaskQuery().First();

            // when
            authRule.Init(scenario).WithUser("userId").BindResource("ProcessInstanceId", processInstance.Id).BindResource("processDefinitionKey", "oneExternalTaskProcess").Start();

            engineRule.ExternalTaskService.SetRetries(task.Id, 5);

            // then
            if (authRule.AssertScenario(scenario))
            {
                task = engineRule.ExternalTaskService.CreateExternalTaskQuery().First();
                Assert.AreEqual(5, (int)task.Retries);
            }
        }
 protected internal virtual void completeExternalTaskWithFailure(IProcessInstance pi)
 {
     ESS.FW.Bpm.Engine.Externaltask.IExternalTask task = externalTaskService.CreateExternalTaskQuery(c => c.ProcessInstanceId == pi.Id).First();
     completeExternalTaskWithFailure(task.Id);
 }