* Add unit tests for `FlowFork` activity and enhance test utilities - Introduce `FlowForkTests` to validate activity behavior with various branch configurations. - Extend `ActivityExecutionContextExtensions` with methods to retrieve and check outcomes. - Modify `ActivityTestFixture` to ensure activities transition to `Running` status before execution. * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
32 lines
1.4 KiB
C#
32 lines
1.4 KiB
C#
using Elsa.Workflows;
|
|
|
|
namespace Elsa.Testing.Shared;
|
|
|
|
/// <summary>
|
|
/// Provides extension methods for <see cref="ActivityExecutionContext"/> to enhance its functionality.
|
|
/// </summary>
|
|
public static class ActivityExecutionContextExtensions
|
|
{
|
|
/// <summary>
|
|
/// Determines whether the specified activity is scheduled in the workflow execution context.
|
|
/// </summary>
|
|
/// <param name="activityExecutionContext">The activity execution context instance used for checking the scheduled activity.</param>
|
|
/// <param name="activity">The activity to check for scheduling.</param>
|
|
/// <returns>True if the specified activity is scheduled; otherwise, false.</returns>
|
|
public static bool HasScheduledActivity(this ActivityExecutionContext activityExecutionContext, IActivity activity)
|
|
{
|
|
return activityExecutionContext.WorkflowExecutionContext.Scheduler.Find(x => x.Activity == activity) != null;
|
|
}
|
|
|
|
public static IEnumerable<string> GetOutcomes(this ActivityExecutionContext activityExecutionContext)
|
|
{
|
|
if (activityExecutionContext.JournalData.TryGetValue("Outcomes", out var outcomesObj) && outcomesObj is string[] outcomes)
|
|
return outcomes;
|
|
return [];
|
|
}
|
|
|
|
public static bool HasOutcome(this ActivityExecutionContext activityExecutionContext, string outcome)
|
|
{
|
|
return activityExecutionContext.GetOutcomes().Contains(outcome);
|
|
}
|
|
} |