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;
}
}