public async Task Test02(string signal) { var workflow = new ForkJoinWorkflow(Join.JoinMode.WaitAny); var workflowBlueprint = WorkflowBuilder.Build(workflow); var workflowResult = await WorkflowStarter.StartWorkflowAsync(workflowBlueprint); var workflowInstance = workflowResult.WorkflowInstance !; async Task <bool> GetActivityHasExecutedAsync(string name) { var activity = workflowBlueprint !.Activities.First(x => x.Name == name); var entry = await WorkflowExecutionLog.FindEntryAsync(new ActivityIdSpecification(activity.Id)); return(entry != null); } Task <bool> GetIsFinishedAsync() => GetActivityHasExecutedAsync("Finished"); Assert.Equal(WorkflowStatus.Suspended, workflowInstance.WorkflowStatus); Assert.False(await GetIsFinishedAsync()); // Trigger signal. workflowInstance = await TriggerSignalAsync(workflowBlueprint, workflowInstance, signal); Assert.Equal(WorkflowStatus.Finished, workflowInstance.WorkflowStatus); Assert.True(await GetIsFinishedAsync()); }
public async Task Test03() { var workflow = new ForkEagerJoinWorkflow(false); var workflowBlueprint = WorkflowBuilder.Build(workflow); var workflowResult = await WorkflowStarter.StartWorkflowAsync(workflowBlueprint); var workflowInstance = workflowResult.WorkflowInstance !; Assert.Equal(2, workflowInstance.BlockingActivities.Count); }
public async Task Test04() { var workflow = new ForkEagerJoinWorkflow(true); var workflowBlueprint = WorkflowBuilder.Build(workflow); var workflowResult = await WorkflowStarter.StartWorkflowAsync(workflowBlueprint); var workflowInstance = workflowResult.WorkflowInstance !; Assert.Single(workflowInstance.BlockingActivities); }