using Workflow.Application.Notifications; using Workflow.Domain.Entities; namespace BuildFlow.Workflow.Tests.Scheduler; internal sealed class NoopNotificationService : INotificationService { public int TimeoutCallCount { get; private set; } public List TimeoutTasks { get; } = []; public List AutoApprovedFlags { get; } = []; public Task NotifyTaskArrivedAsync(WorkflowTask task, CancellationToken ct = default) => Task.CompletedTask; public Task NotifyTaskApprovedAsync(WorkflowTask task, CancellationToken ct = default) => Task.CompletedTask; public Task NotifyTaskRejectedAsync(WorkflowTask task, CancellationToken ct = default) => Task.CompletedTask; public Task NotifyTaskUrgedAsync(WorkflowTask task, CancellationToken ct = default) => Task.CompletedTask; public Task NotifyTaskTimeoutAsync(WorkflowTask task, bool autoApproved, CancellationToken ct = default) { TimeoutCallCount++; TimeoutTasks.Add(task); AutoApprovedFlags.Add(autoApproved); return Task.CompletedTask; } } /// /// OverdueTaskProcessor 核心逻辑测试:逾期任务自动处理、Suspended 守卫、autoApproveOnTimeout 解析、 /// DueAt=null 跳过、空转。直接构造处理器实例,不依赖 HostedService/DI scope。 ///