using System.Collections.Concurrent; using ZB.MOM.WW.Audit; namespace ZB.MOM.WW.Secrets.Ui.Tests.Fakes; /// /// An test double that collects every written, /// so a test can assert on the audit trail (action, outcome, target, actor) and — critically — that /// no plaintext ever appears in any audit field. /// public sealed class CapturingAuditWriter : IAuditWriter { private readonly ConcurrentQueue _events = new(); /// The events captured so far, in write order. public IReadOnlyList Events => _events.ToArray(); /// public Task WriteAsync(AuditEvent evt, CancellationToken ct = default) { _events.Enqueue(evt); return Task.CompletedTask; } }