From 32bd3ddfea912f7ec2d388ea0c832522e4c10ec7 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 23 Oct 2024 19:12:10 +0200 Subject: [PATCH] Integrate improved workflow handling in bulk dispatch tests Updated workflow creation and dispatching methods to streamline bulk dispatch tests. Modified signal triggering in `TriggerSignal` activity and upgraded `ElsaStudioVersion` for compatibility improvements. Removed unused imports for cleaner code structure. --- Directory.Build.props | 2 +- .../Helpers/Activities/TriggerSignal.cs | 3 ++- .../BulkDispatchWorkflowsTests.cs | 20 ++++++++++++------- .../Workflows/FruitWorkflow.cs | 1 - .../Workflows/MixFruitsWorkflow.cs | 1 - 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 720db3ec5..1caa70b6d 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -37,7 +37,7 @@ $(NoWarn);IL2026;IL2046;IL2057;IL2067;IL2070;IL2072;IL2075;IL2087;IL2091 - 3.3.0-preview.470 + 3.3.0-preview.584 8.0.5 \ No newline at end of file diff --git a/test/component/Elsa.Workflows.ComponentTests/Helpers/Activities/TriggerSignal.cs b/test/component/Elsa.Workflows.ComponentTests/Helpers/Activities/TriggerSignal.cs index dc3f69cf4..d612cb98c 100644 --- a/test/component/Elsa.Workflows.ComponentTests/Helpers/Activities/TriggerSignal.cs +++ b/test/component/Elsa.Workflows.ComponentTests/Helpers/Activities/TriggerSignal.cs @@ -2,6 +2,7 @@ using System.Runtime.CompilerServices; using System.Text.Json.Serialization; using Elsa.Expressions.Models; using Elsa.Extensions; +using Elsa.Testing.Shared.Services; using Elsa.Workflows.Memory; using Elsa.Workflows.Models; @@ -48,7 +49,7 @@ public class TriggerSignal : CodeActivity protected override void Execute(ActivityExecutionContext context) { - var testEventManager = context.GetRequiredService(); + var testEventManager = context.GetRequiredService(); var eventName = EventName.Get(context); testEventManager.Trigger(eventName); } diff --git a/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/BulkDispatchWorkflowsTests.cs b/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/BulkDispatchWorkflowsTests.cs index 6d5a4b444..7e2b93493 100644 --- a/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/BulkDispatchWorkflowsTests.cs +++ b/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/BulkDispatchWorkflowsTests.cs @@ -24,7 +24,7 @@ public class BulkDispatchWorkflowsTests : AppComponentTest _signalManager = Scope.ServiceProvider.GetRequiredService(); _workflowEvents.WorkflowInstanceSaved += OnWorkflowInstanceSaved; } - + /// Dispatches and waits for child workflows to complete. [Fact] public async Task DispatchAndWaitWorkflow_ShouldWaitForChildWorkflowToComplete() @@ -36,17 +36,23 @@ public class BulkDispatchWorkflowsTests : AppComponentTest }); await workflowClient.RunInstanceAsync(RunWorkflowInstanceRequest.Empty); var parentWorkflowInstanceArgs = await _signalManager.WaitAsync(GreetEmployeesWorkflowCompletedSignal); - + Assert.Equal(WorkflowStatus.Finished, parentWorkflowInstanceArgs.WorkflowInstance.Status); } - + /// /// Individual items are sent as input to child workflows. /// [Fact] public async Task DispatchWorkflows_ChildWorkflowsShouldReceiveCurrentItem() { - await _workflowRuntime.StartWorkflowAsync(MixFruitsWorkflow.DefinitionId); + var workflowClient = await _workflowRuntime.CreateClientAsync(); + var request = new CreateAndRunWorkflowInstanceRequest + { + WorkflowDefinitionHandle = WorkflowDefinitionHandle.ByDefinitionId(MixFruitsWorkflow.DefinitionId, VersionOptions.Published) + }; + await workflowClient.CreateAndRunInstanceAsync(request); + await _signalManager.WaitAsync("Apple"); await _signalManager.WaitAsync("Banana"); await _signalManager.WaitAsync("Cherry"); @@ -54,10 +60,10 @@ public class BulkDispatchWorkflowsTests : AppComponentTest private void OnWorkflowInstanceSaved(object? sender, WorkflowInstanceSavedEventArgs e) { - if(e.WorkflowInstance.Status != WorkflowStatus.Finished) + if (e.WorkflowInstance.Status != WorkflowStatus.Finished) return; - - if(e.WorkflowInstance.DefinitionId == GreetEmployeesWorkflow.DefinitionId) + + if (e.WorkflowInstance.DefinitionId == GreetEmployeesWorkflow.DefinitionId) _signalManager.Trigger(GreetEmployeesWorkflowCompletedSignal, e); } diff --git a/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/Workflows/FruitWorkflow.cs b/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/Workflows/FruitWorkflow.cs index 58f644d81..50c1643f1 100644 --- a/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/Workflows/FruitWorkflow.cs +++ b/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/Workflows/FruitWorkflow.cs @@ -1,7 +1,6 @@ using Elsa.Extensions; using Elsa.Workflows.Activities; using Elsa.Workflows.ComponentTests.Activities; -using Elsa.Workflows.Contracts; using Hangfire.Annotations; namespace Elsa.Workflows.ComponentTests.Scenarios.BulkDispatchWorkflows.Workflows; diff --git a/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/Workflows/MixFruitsWorkflow.cs b/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/Workflows/MixFruitsWorkflow.cs index a6fcc8151..6b4ed9fc3 100644 --- a/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/Workflows/MixFruitsWorkflow.cs +++ b/test/component/Elsa.Workflows.ComponentTests/Scenarios/BulkDispatchWorkflows/Workflows/MixFruitsWorkflow.cs @@ -1,5 +1,4 @@ using Elsa.Workflows.Activities; -using Elsa.Workflows.Contracts; namespace Elsa.Workflows.ComponentTests.Scenarios.BulkDispatchWorkflows.Workflows;