using System.Text.Json; using FluentAssertions; using StellaOps.Replay.Core; using Xunit; namespace StellaOps.Replay.Core.Tests; public sealed class ReplayManifestExtensionsTests { [Fact] public void AddsReachabilityEvidence() { var manifest = new ReplayManifest { Scan = new ReplayScanMetadata { Id = "scan-1" } }; manifest.AddReachabilityGraph(new ReplayReachabilityGraphReference { Kind = "static", Analyzer = "scanner/java", CasUri = "cas://replay/graph", Sha256 = "abc", Version = "1.0" }); manifest.AddReachabilityTrace(new ReplayReachabilityTraceReference { Source = "zastava", CasUri = "cas://replay/trace", Sha256 = "def" }); manifest.Reachability.Should().NotBeNull(); manifest.Reachability!.Graphs.Should().HaveCount(1); manifest.Reachability.RuntimeTraces.Should().HaveCount(1); var json = JsonSerializer.Serialize(manifest); json.Should().Contain("\"reachability\""); } }