// Copyright (c) 2025-2026 GeWuYou // SPDX-License-Identifier: Apache-2.0 using System.Threading; namespace GFramework.Cqrs.Tests.Cqrs; /// /// 记录双行为 pipeline 的实际执行顺序。 /// internal static class DispatcherPipelineOrderState { private static readonly Lock SyncRoot = new(); private static readonly List _steps = []; /// /// 获取按执行顺序追加的步骤快照。 /// 共享状态通过 SyncRoot 串行化,避免并行行为测试互相污染步骤列表。 /// public static IReadOnlyList Steps { get { lock (SyncRoot) { return _steps.ToArray(); } } } /// /// 记录一个新的 pipeline 执行步骤。 /// /// 要追加的步骤名称。 public static void Record(string step) { lock (SyncRoot) { _steps.Add(step); } } /// /// 清空当前记录,供下一次断言使用。 /// public static void Reset() { lock (SyncRoot) { _steps.Clear(); } } }