diff options
author | Keith Zantow <kzantow@gmail.com> | 2022-10-07 15:36:32 -0400 |
---|---|---|
committer | Keith Zantow <kzantow@gmail.com> | 2022-10-07 15:36:32 -0400 |
commit | b57c493f0652477bf3764be7273eab6ff11d1eb1 (patch) | |
tree | 2ce0bc41c7f9b6c9a40715565c49c1cbf190716d /utils/verification_test.go | |
parent | be2eb824595afe28c87c9a33c2da565480d1eb54 (diff) | |
download | spdx-tools-b57c493f0652477bf3764be7273eab6ff11d1eb1.tar.gz |
chore: add builder and verification functions for 2.3
Signed-off-by: Keith Zantow <kzantow@gmail.com>
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") + } +} |