using MeetingAssistant.Workflow; namespace MeetingAssistant.Tests; internal sealed class TransformingAttendeeWorkflowEngine : IMeetingWorkflowEngine { private readonly string source; private readonly string replacement; public TransformingAttendeeWorkflowEngine(string source, string replacement) { this.source = source; this.replacement = replacement; } public List AttendeeRequests { get; } = []; public Task RunAsync( MeetingWorkflowEvent workflowEvent, MeetingAssistantOptions options, CancellationToken cancellationToken) { return Task.CompletedTask; } public Task TransformTranscriptLineAsync( MeetingWorkflowEvent workflowEvent, MeetingAssistantOptions options, CancellationToken cancellationToken) { return Task.FromResult(workflowEvent.TranscriptLineText ?? ""); } public Task TransformAttendeeAsync( MeetingWorkflowEvent workflowEvent, MeetingAssistantOptions options, CancellationToken cancellationToken) { AttendeeRequests.Add(workflowEvent.AttendeeName ?? ""); return Task.FromResult(string.Equals(workflowEvent.AttendeeName, source, StringComparison.OrdinalIgnoreCase) ? replacement : workflowEvent.AttendeeName ?? ""); } }