* pass policy to Verify method Signed-off-by: Meredith Lancaster <malancas@github.com> * remove policy argument from SigstoreVerifier constructor Signed-off-by: Meredith Lancaster <malancas@github.com> * add SigstoreVerifier interface and introduce mock SigstoreVerifier struct for unit testing Signed-off-by: Meredith Lancaster <malancas@github.com> * gofmt Signed-off-by: Meredith Lancaster <malancas@github.com> * rename LiveSigstoreVerifier constructor Signed-off-by: Meredith Lancaster <malancas@github.com> * pr feedback, add todos for tests that need to be reimplemented Signed-off-by: Meredith Lancaster <malancas@github.com> * remove unused import Signed-off-by: Meredith Lancaster <malancas@github.com> * add more missing TODO statements Signed-off-by: Meredith Lancaster <malancas@github.com> * update skipped test Signed-off-by: Meredith Lancaster <malancas@github.com> --------- Signed-off-by: Meredith Lancaster <malancas@github.com>
58 lines
1.7 KiB
Go
58 lines
1.7 KiB
Go
package api
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/cli/cli/v2/pkg/cmd/attestation/test/data"
|
|
)
|
|
|
|
type MockClient struct {
|
|
OnGetByRepoAndDigest func(repo, digest string, limit int) ([]*Attestation, error)
|
|
OnGetByOwnerAndDigest func(owner, digest string, limit int) ([]*Attestation, error)
|
|
}
|
|
|
|
func (m MockClient) GetByRepoAndDigest(repo, digest string, limit int) ([]*Attestation, error) {
|
|
return m.OnGetByRepoAndDigest(repo, digest, limit)
|
|
}
|
|
|
|
func (m MockClient) GetByOwnerAndDigest(owner, digest string, limit int) ([]*Attestation, error) {
|
|
return m.OnGetByOwnerAndDigest(owner, digest, limit)
|
|
}
|
|
|
|
func makeTestAttestation() Attestation {
|
|
return Attestation{Bundle: data.SigstoreBundle(nil)}
|
|
}
|
|
|
|
func OnGetByRepoAndDigestSuccess(repo, digest string, limit int) ([]*Attestation, error) {
|
|
att1 := makeTestAttestation()
|
|
att2 := makeTestAttestation()
|
|
return []*Attestation{&att1, &att2}, nil
|
|
}
|
|
|
|
func OnGetByRepoAndDigestFailure(repo, digest string, limit int) ([]*Attestation, error) {
|
|
return nil, fmt.Errorf("failed to fetch by repo and digest")
|
|
}
|
|
|
|
func OnGetByOwnerAndDigestSuccess(owner, digest string, limit int) ([]*Attestation, error) {
|
|
att1 := makeTestAttestation()
|
|
att2 := makeTestAttestation()
|
|
return []*Attestation{&att1, &att2}, nil
|
|
}
|
|
|
|
func OnGetByOwnerAndDigestFailure(owner, digest string, limit int) ([]*Attestation, error) {
|
|
return nil, fmt.Errorf("failed to fetch by owner and digest")
|
|
}
|
|
|
|
func NewTestClient() *MockClient {
|
|
return &MockClient{
|
|
OnGetByRepoAndDigest: OnGetByRepoAndDigestSuccess,
|
|
OnGetByOwnerAndDigest: OnGetByOwnerAndDigestSuccess,
|
|
}
|
|
}
|
|
|
|
func NewFailTestClient() *MockClient {
|
|
return &MockClient{
|
|
OnGetByRepoAndDigest: OnGetByRepoAndDigestFailure,
|
|
OnGetByOwnerAndDigest: OnGetByOwnerAndDigestFailure,
|
|
}
|
|
}
|