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.
This commit is contained in:
parent
3208be7b89
commit
32bd3ddfea
|
|
@ -37,7 +37,7 @@
|
|||
<NoWarn>$(NoWarn);IL2026;IL2046;IL2057;IL2067;IL2070;IL2072;IL2075;IL2087;IL2091</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ElsaStudioVersion>3.3.0-preview.470</ElsaStudioVersion>
|
||||
<ElsaStudioVersion>3.3.0-preview.584</ElsaStudioVersion>
|
||||
<SystemTextJsonVersion>8.0.5</SystemTextJsonVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -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<ISignalManager>();
|
||||
var testEventManager = context.GetRequiredService<SignalManager>();
|
||||
var eventName = EventName.Get(context);
|
||||
testEventManager.Trigger(eventName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class BulkDispatchWorkflowsTests : AppComponentTest
|
|||
_signalManager = Scope.ServiceProvider.GetRequiredService<SignalManager>();
|
||||
_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<WorkflowInstanceSavedEventArgs>(GreetEmployeesWorkflowCompletedSignal);
|
||||
|
||||
|
||||
Assert.Equal(WorkflowStatus.Finished, parentWorkflowInstanceArgs.WorkflowInstance.Status);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Individual items are sent as input to child workflows.
|
||||
/// </summary>
|
||||
[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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using Elsa.Workflows.Activities;
|
||||
using Elsa.Workflows.Contracts;
|
||||
|
||||
namespace Elsa.Workflows.ComponentTests.Scenarios.BulkDispatchWorkflows.Workflows;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue