Skip to content

Commit

Permalink
Add test for PayloadProvider interface
Browse files Browse the repository at this point in the history
Signed-off-by: Cody Soyland <codysoyland@github.com>
  • Loading branch information
codysoyland committed May 10, 2024
1 parent 8490185 commit ed091e8
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions pkg/policy/attestation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package policy

import (
"bytes"
"context"
"crypto/x509"
"encoding/json"
Expand Down Expand Up @@ -166,6 +167,50 @@ func TestAttestationToPayloadJson(t *testing.T) {
}
}

type myPayloadProvider struct {
payload []byte
}

func (m *myPayloadProvider) Payload() ([]byte, error) {
return m.payload, nil
}

// assert that myPayloadProvider implements PayloadProvider
var _ PayloadProvider = &myPayloadProvider{}

// TestPayloadProvider tests that the PayloadProvider interface is working as expected.
func TestPayloadProvider(t *testing.T) {
// Control: oci.Signature
attestationBytes := readAttestationFromTestFile(t, "valid", "vuln")
ociSig, err := static.NewSignature(attestationBytes, "")
if err != nil {
t.Fatal("Failed to create static.NewSignature: ", err)
}
jsonBytes, gotPredicateType, err := AttestationToPayloadJSON(context.TODO(), "vuln", ociSig)
if err != nil {
t.Fatalf("Failed to convert : %s", err)
}
if len(jsonBytes) == 0 {
t.Fatalf("Failed to get jsonBytes")
}
if gotPredicateType != attestation.CosignVulnProvenanceV01 {
t.Fatalf("Did not get expected predicateType, want: %s got: %s", attestation.CosignVulnProvenanceV01, gotPredicateType)
}

// Test: myPayloadProvider
provider := &myPayloadProvider{payload: attestationBytes}
jsonBytes2, gotPredicateType2, err := AttestationToPayloadJSON(context.TODO(), "vuln", provider)
if err != nil {
t.Fatalf("Failed to convert : %s", err)
}
if !bytes.Equal(jsonBytes, jsonBytes2) {
t.Fatalf("Expected same jsonBytes, got different")
}
if gotPredicateType != gotPredicateType2 {
t.Fatalf("Expected same predicateType, got different")
}
}

func checkPredicateType(t *testing.T, want, got string) {
t.Helper()
if want != got {
Expand Down

0 comments on commit ed091e8

Please sign in to comment.