From 584ea42ee18766681d56b7985e515120be56d075 Mon Sep 17 00:00:00 2001 From: Junjie Gao Date: Wed, 10 Apr 2024 14:33:24 +0800 Subject: [PATCH] fix: improve test coverage Signed-off-by: Junjie Gao --- internal/envelope/envelope_test.go | 76 ++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/internal/envelope/envelope_test.go b/internal/envelope/envelope_test.go index 850dee624..b3575aab2 100644 --- a/internal/envelope/envelope_test.go +++ b/internal/envelope/envelope_test.go @@ -15,6 +15,8 @@ package envelope import ( "testing" + + "github.com/notaryproject/notation-core-go/signature" ) func TestGetEnvelopeMediaType(t *testing.T) { @@ -59,3 +61,77 @@ func TestGetEnvelopeMediaType(t *testing.T) { }) } } + +func TestValidatePayloadContentType(t *testing.T) { + tests := []struct { + name string + payload *signature.Payload + wantErr bool + }{ + { + name: "valid content type", + payload: &signature.Payload{ + ContentType: MediaTypePayloadV1, + }, + wantErr: false, + }, + { + name: "invalid content type", + payload: &signature.Payload{ + ContentType: "invalid", + }, + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := ValidatePayloadContentType(tt.payload) + if (err != nil) != tt.wantErr { + t.Errorf("ValidatePayloadContentType() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} + +func TestDescriptorFromSignaturePayload(t *testing.T) { + validPayload := &signature.Payload{ + ContentType: MediaTypePayloadV1, + Content: []byte(`{"targetArtifact": {"mediaType": "application/vnd.oci.image.manifest.v1+json", "size": 314159, "digest": "sha256:abcd1234", "urls": ["http://example.com"]}}`), + } + invalidPayload := &signature.Payload{ + ContentType: "invalid", + Content: []byte(`invalid`), + } + + tests := []struct { + name string + payload *signature.Payload + wantErr bool + }{ + { + name: "valid payload", + payload: validPayload, + wantErr: false, + }, + { + name: "invalid content type", + payload: invalidPayload, + wantErr: true, + }, + { + name: "nil payload", + payload: nil, + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + _, err := DescriptorFromSignaturePayload(tt.payload) + if (err != nil) != tt.wantErr { + t.Errorf("DescriptorFromSignaturePayload() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +}