Files
git.stella-ops.org/src/__Libraries/__Tests/StellaOps.Provenance.Tests/ProvenanceJsonParserTests.ParseValid.cs

40 lines
1.5 KiB
C#

using StellaOps.Provenance;
using StellaOps.TestKit;
using Xunit;
namespace StellaOps.Provenance.Tests;
public sealed partial class ProvenanceJsonParserTests
{
[Trait("Category", TestCategories.Unit)]
[Fact]
public void Parse_ReturnsDsseAndTrust()
{
var json = @"{
""dsse"": {
""envelopeDigest"": ""sha256:deadbeef"",
""payloadType"": ""application/vnd.in-toto+json"",
""key"": { ""keyId"": ""cosign:SHA256-PKIX:TEST"", ""issuer"": ""fulcio"", ""algo"": ""ECDSA"" },
""rekor"": { ""logIndex"": 12, ""uuid"": ""rekor-1"", ""integratedTime"": 1234, ""mirrorSeq"": 5 },
""chain"": [ { ""type"": ""build"", ""id"": ""att:build#1"", ""digest"": ""sha256:chain"" } ]
},
""trust"": { ""verified"": true, ""verifier"": ""Authority@stella"", ""witnesses"": 2, ""policyScore"": 0.75 }
}";
var result = ProvenanceJsonParser.Parse(json);
Assert.Equal("sha256:deadbeef", result.Dsse.EnvelopeDigest);
Assert.Equal("application/vnd.in-toto+json", result.Dsse.PayloadType);
Assert.Equal("cosign:SHA256-PKIX:TEST", result.Dsse.Key.KeyId);
Assert.Equal(12, result.Dsse.Rekor?.LogIndex);
Assert.Equal("rekor-1", result.Dsse.Rekor?.Uuid);
Assert.NotNull(result.Dsse.Chain);
var link = Assert.Single(result.Dsse.Chain);
Assert.Equal("build", link.Type);
Assert.True(result.Trust.Verified);
Assert.Equal("Authority@stella", result.Trust.Verifier);
Assert.Equal(2, result.Trust.Witnesses);
Assert.Equal(0.75, result.Trust.PolicyScore);
}
}