using StellaOps.Evidence.Models; using StellaOps.Replay.Engine; using StellaOps.Replay.Models; using StellaOps.Testing.Manifests.Models; using System.Collections.Immutable; using System.Threading; using System.Threading.Tasks; namespace StellaOps.Replay.Tests; internal sealed class FakeFeedLoader : IFeedLoader { public Task LoadByDigestAsync(string digest, CancellationToken ct = default) => Task.FromResult(new FeedSnapshot("nvd", "v1", digest, ReplayEngineTestFixtures.FixedFeedSnapshotAt)); } internal sealed class FakePolicyLoader : IPolicyLoader { public Task LoadByDigestAsync(string digest, CancellationToken ct = default) => Task.FromResult(new PolicySnapshot("1.0.0", digest, ImmutableArray.Empty)); } internal sealed class FakeScannerFactory : IScannerFactory { public IScanner Create(ScannerOptions options) => new FakeScanner(options); } internal sealed class FakeScanner : IScanner { private readonly ScannerOptions _options; public FakeScanner(ScannerOptions options) => _options = options; public Task ScanAsync(ImmutableArray artifacts, CancellationToken ct = default) { var verdict = new { feedVersion = _options.FeedSnapshot.Version, policyDigest = _options.PolicySnapshot.LatticeRulesDigest }; var evidence = new EvidenceIndex { IndexId = ReplayEngineTestFixtures.EvidenceIndexId, SchemaVersion = "1.0.0", Verdict = new VerdictReference("v1", new string('d', 64), VerdictOutcome.Pass, null), Sboms = ImmutableArray.Empty, Attestations = ImmutableArray.Empty, ToolChain = new ToolChainEvidence("1", "1", "1", "1", "1", ImmutableDictionary.Empty), RunManifestDigest = new string('e', 64), CreatedAt = ReplayEngineTestFixtures.FixedTimestamp }; return Task.FromResult(new ScanResult(verdict, evidence, 10)); } }