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); }
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); }