using System.Linq; using StellaOps.Graph.Api.Services; using Xunit; namespace StellaOps.Graph.Api.Tests; public class AuditLoggerTests { [Trait("Category", TestCategories.Unit)] [Fact] public void LogsAndCapsSize() { var logger = new InMemoryAuditLogger(); for (var i = 0; i < 510; i++) { logger.Log(new AuditEvent( Timestamp: DateTimeOffset.UnixEpoch.AddMinutes(i), Tenant: "t", Route: "/r", Method: "POST", Actor: "auth", Scopes: new[] { "graph:query" }, StatusCode: 200, DurationMs: 5)); } var recent = logger.GetRecent(); Assert.True(recent.Count <= 100); // First entry is the most recent (minute 509). Verify using total minutes from epoch. var minutesFromEpoch = (int)(recent.First().Timestamp - DateTimeOffset.UnixEpoch).TotalMinutes; using StellaOps.TestKit; Assert.Equal(509, minutesFromEpoch); } }