Files
git.stella-ops.org/src/Graph/__Tests/StellaOps.Graph.Api.Tests/AuditLoggerTests.cs

35 lines
1.0 KiB
C#

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