Files
git.stella-ops.org/src/__Libraries/__Tests/StellaOps.Provenance.Tests/ProvenanceExtensionsTests.AttachDsseProvenanceOptional.cs

52 lines
1.5 KiB
C#

using StellaOps.Provenance;
using StellaOps.TestKit;
using Xunit;
namespace StellaOps.Provenance.Tests;
public sealed partial class ProvenanceExtensionsTests
{
[Trait("Category", TestCategories.Unit)]
[Fact]
public void AttachDsseProvenance_SkipsOptionalFields_WhenMissing()
{
var document = new DocumentObject
{
{ "kind", "SBOM" }
};
var dsse = new DsseProvenance
{
EnvelopeDigest = "sha256:optional",
PayloadType = "application/vnd.in-toto+json",
Key = new DsseKeyInfo
{
KeyId = "cosign:SHA256-PKIX:TEST"
},
Rekor = null,
Chain = null
};
var trust = new TrustInfo
{
Verified = false,
Verifier = null,
Witnesses = null,
PolicyScore = null
};
document.AttachDsseProvenance(dsse, trust);
var provenanceDoc = (DocumentObject)document["provenance"];
var dsseDoc = (DocumentObject)provenanceDoc["dsse"];
Assert.False(dsseDoc.ContainsKey("rekor"));
Assert.False(dsseDoc.ContainsKey("chain"));
var trustDoc = (DocumentObject)document["trust"];
Assert.False((bool)((DocumentBoolean)trustDoc["verified"]).Value!);
Assert.False(trustDoc.ContainsKey("witnesses"));
Assert.False(trustDoc.ContainsKey("policyScore"));
Assert.IsType<DocumentNull>(trustDoc["verifier"]);
}
}