using System.Security.Cryptography; namespace Kbx.Tests.Scenarios; public sealed record KbxScenarioArtifact(string Type, string Path, string? Sha256 = null); public sealed record KbxScenarioEvidence( string ScenarioId, string RunId, DateTimeOffset StartedAt, DateTimeOffset? FinishedAt, string Result, IReadOnlyDictionary ContractVersions, IReadOnlyList CorrelationIds, IReadOnlyList Artifacts); public static class KbxScenarioHash { public static string Sha256File(string path) { using var stream = File.OpenRead(path); return Convert.ToHexString(SHA256.HashData(stream)).ToLowerInvariant(); } }