diff options
author | Brandon Lum <lumjjb@gmail.com> | 2022-10-31 16:21:07 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-31 16:21:07 -0400 |
commit | e20ab888a04478990a42fc816a3bd188364fb9ce (patch) | |
tree | 3334341a7baf56335d158f35c11fc6d57e5c2e3e /utils/verification_test.go | |
parent | fb7fe8874d01f3c9e2d7f450cf1407e7513b02ee (diff) | |
parent | bc625283024d89fd4cea91df08bcd8c0c0a79405 (diff) | |
download | spdx-tools-e20ab888a04478990a42fc816a3bd188364fb9ce.tar.gz |
Merge pull request #164 from kzantow-anchore/feat/spdx-2.3-support
Add support for SPDX 2.3
Diffstat (limited to 'utils/verification_test.go')
-rw-r--r-- | utils/verification_test.go | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/utils/verification_test.go b/utils/verification_test.go index 3fa4ead..beee8b6 100644 --- a/utils/verification_test.go +++ b/utils/verification_test.go @@ -8,6 +8,7 @@ import ( "github.com/spdx/tools-golang/spdx/common" "github.com/spdx/tools-golang/spdx/v2_1" "github.com/spdx/tools-golang/spdx/v2_2" + "github.com/spdx/tools-golang/spdx/v2_3" ) // ===== 2.1 Verification code functionality tests ===== @@ -277,3 +278,167 @@ func TestPackage2_2GetVerificationCodeFailsIfNilFileInSlice(t *testing.T) { t.Fatalf("expected non-nil error, got nil") } } + +// ===== 2.3 Verification code functionality tests ===== + +func TestPackage2_3CanGetVerificationCode(t *testing.T) { + files := []*v2_3.File{ + { + FileName: "file2.txt", + FileSPDXIdentifier: "File0", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + { + FileName: "file1.txt", + FileSPDXIdentifier: "File1", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "3333333333bbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + { + FileName: "file3.txt", + FileSPDXIdentifier: "File2", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "8888888888bbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + { + FileName: "file5.txt", + FileSPDXIdentifier: "File3", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "2222222222bbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + { + FileName: "file4.txt", + FileSPDXIdentifier: "File4", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "bbbbbbbbbbccccccccccddddddddddaaaaaaaaaa", + }, + }, + }, + } + + wantCode := common.PackageVerificationCode{Value: "ac924b375119c81c1f08c3e2722044bfbbdcd3dc"} + + gotCode, err := GetVerificationCode2_3(files, "") + if err != nil { + t.Fatalf("expected nil error, got %v", err) + } + if wantCode.Value != gotCode.Value { + t.Errorf("expected %v, got %v", wantCode, gotCode) + } + +} + +func TestPackage2_3CanGetVerificationCodeIgnoringExcludesFile(t *testing.T) { + files := []*v2_3.File{ + { + FileName: "file1.txt", + FileSPDXIdentifier: "File0", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + { + FileName: "file2.txt", + FileSPDXIdentifier: "File1", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "3333333333bbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + { + FileName: "thisfile.spdx", + FileSPDXIdentifier: "File2", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "bbbbbbbbbbccccccccccddddddddddaaaaaaaaaa", + }, + }, + }, + { + FileName: "file3.txt", + FileSPDXIdentifier: "File3", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "8888888888bbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + { + FileName: "file4.txt", + FileSPDXIdentifier: "File4", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "2222222222bbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + } + + wantCode := common.PackageVerificationCode{Value: "17fab1bd18fe5c13b5d3983f1c17e5f88b8ff266"} + + gotCode, err := GetVerificationCode2_3(files, "thisfile.spdx") + if err != nil { + t.Fatalf("expected nil error, got %v", err) + } + if wantCode.Value != gotCode.Value { + t.Errorf("expected %v, got %v", wantCode, gotCode) + } +} + +func TestPackage2_3GetVerificationCodeFailsIfNilFileInSlice(t *testing.T) { + files := []*v2_3.File{ + { + FileName: "file2.txt", + FileSPDXIdentifier: "File0", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + nil, + { + FileName: "file3.txt", + FileSPDXIdentifier: "File2", + Checksums: []common.Checksum{ + { + Algorithm: common.SHA1, + Value: "8888888888bbbbbbbbbbccccccccccdddddddddd", + }, + }, + }, + } + + _, err := GetVerificationCode2_3(files, "") + if err == nil { + t.Fatalf("expected non-nil error, got nil") + } +} |