stabilizaiton work - projects rework for maintenanceability and ui livening

This commit is contained in:
master
2026-02-03 23:40:04 +02:00
parent 074ce117ba
commit 557feefdc3
3305 changed files with 186813 additions and 107843 deletions

View File

@@ -0,0 +1,34 @@
using FluentAssertions;
namespace StellaOps.Audit.ReplayToken.Tests;
public sealed partial class ReplayTokenSecurityTests
{
[Fact]
public void TokenWithExpiration_CanonicalFormat_IncludesExpiryTimestamp()
{
var fixedTime = new DateTimeOffset(2025, 6, 15, 12, 0, 0, TimeSpan.Zero);
var expiresAt = fixedTime.AddHours(1);
var token = new ReplayToken("abc123", fixedTime, expiresAt, ReplayToken.DefaultAlgorithm, ReplayToken.VersionWithExpiration);
var canonical = token.Canonical;
canonical.Should().Contain(expiresAt.ToUnixTimeSeconds().ToString());
canonical.Split(':').Should().HaveCount(5, "v2.0 format should have 5 parts including expiry");
}
[Fact]
public void ParseToken_WithExpiration_RoundTrip_PreservesExpiration()
{
var fixedTime = new DateTimeOffset(2025, 6, 15, 12, 0, 0, TimeSpan.Zero);
var generator = CreateGenerator(fixedTime);
var request = CreateRequest();
var originalToken = generator.GenerateWithExpiration(request, TimeSpan.FromHours(2));
var parsed = ReplayToken.Parse(originalToken.Canonical);
parsed.Value.Should().Be(originalToken.Value);
parsed.Version.Should().Be(ReplayToken.VersionWithExpiration);
parsed.ExpiresAt.Should().Be(originalToken.ExpiresAt);
}
}