public async Task ShouldCompleteProcess()
        {
            // given
            var handledJobs = new List <IJob>();

            // when
            using (zeebeClient.NewWorker()
                   .JobType("oneTask")
                   .Handler(async(jobClient, job) =>
            {
                await jobClient.NewCompleteJobCommand(job).Send();
                handledJobs.Add(job);
            })
                   .MaxJobsActive(1)
                   .Name("csharpWorker")
                   .Timeout(TimeSpan.FromSeconds(10))
                   .PollInterval(TimeSpan.FromMilliseconds(100))
                   .PollingTimeout(TimeSpan.FromSeconds(30L))
                   .Open())
            {
                var processInstance = await zeebeClient.NewCreateProcessInstanceCommand()
                                      .ProcessDefinitionKey(processDefinitionKey)
                                      .WithResult()
                                      .Send();

                // then process was completed
                Assert.AreEqual(1, handledJobs.Count);

                Assert.AreEqual(processInstance.Version, 1);
                Assert.AreEqual(processDefinitionKey, processInstance.ProcessDefinitionKey);
                Assert.AreEqual("oneTaskProcess", processInstance.BpmnProcessId);
                Assert.Greater(processInstance.ProcessInstanceKey, 1);
            }
        }
        public async Task ShouldCreateProcessInstance()
        {
            // given
            var deployResponse = await zeebeClient.NewDeployCommand()
                                 .AddResourceFile(OneTaskProcessPath)
                                 .Send();

            var processDefinitionKey = deployResponse.Processes[0].ProcessDefinitionKey;

            // when
            var processInstance = await zeebeClient
                                  .NewCreateProcessInstanceCommand()
                                  .ProcessDefinitionKey(processDefinitionKey)
                                  .Variables(ProcessInstanceVariables)
                                  .Send();

            // then
            Assert.AreEqual(processInstance.Version, 1);
            Assert.AreEqual(processDefinitionKey, processInstance.ProcessDefinitionKey);
            Assert.AreEqual("oneTaskProcess", processInstance.BpmnProcessId);
            Assert.Greater(processInstance.ProcessInstanceKey, 1);
        }
Exemplo n.º 3
0
        public async Task ShouldHandleAllJobs()
        {
            // given
            var handledJobs = new List <IJob>();

            foreach (int i in Enumerable.Range(1, 3))
            {
                await zeebeClient.NewCreateProcessInstanceCommand()
                .ProcessDefinitionKey(processDefinitionKey)
                .Send();
            }

            // when
            using (var signal = new EventWaitHandle(false, EventResetMode.AutoReset))
            {
                using (zeebeClient.NewWorker()
                       .JobType("oneTask")
                       .Handler(async(jobClient, job) =>
                {
                    await jobClient.NewCompleteJobCommand(job).Send();
                    handledJobs.Add(job);
                    if (handledJobs.Count >= 3)
                    {
                        signal.Set();
                    }
                })
                       .MaxJobsActive(5)
                       .Name("csharpWorker")
                       .Timeout(TimeSpan.FromHours(10))
                       .PollInterval(TimeSpan.FromSeconds(5))
                       .Open())
                {
                    signal.WaitOne(TimeSpan.FromSeconds(5));
                }
            }

            Assert.AreEqual(3, handledJobs.Count);
        }