1// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2 3package builder2v2 4 5import ( 6 "testing" 7 8 "github.com/spdx/tools-golang/spdx/common" 9) 10 11// ===== File section builder tests ===== 12func TestBuilder2_2CanBuildFileSection(t *testing.T) { 13 filePath := "/file1.testdata.txt" 14 prefix := "../../testdata/project1/" 15 fileNumber := 17 16 17 file1, err := BuildFileSection2_2(filePath, prefix, fileNumber) 18 if err != nil { 19 t.Fatalf("expected nil error, got %v", err) 20 } 21 22 if file1 == nil { 23 t.Fatalf("expected non-nil file, got nil") 24 } 25 if file1.FileName != "/file1.testdata.txt" { 26 t.Errorf("expected %v, got %v", "/file1.testdata.txt", file1.FileName) 27 } 28 if file1.FileSPDXIdentifier != common.ElementID("File17") { 29 t.Errorf("expected %v, got %v", "File17", file1.FileSPDXIdentifier) 30 } 31 32 for _, checksum := range file1.Checksums { 33 switch checksum.Algorithm { 34 case common.SHA1: 35 if checksum.Value != "024f870eb6323f532515f7a09d5646a97083b819" { 36 t.Errorf("expected %v, got %v", "024f870eb6323f532515f7a09d5646a97083b819", checksum.Value) 37 } 38 case common.SHA256: 39 if checksum.Value != "b14e44284ca477b4c0db34b15ca4c454b2947cce7883e22321cf2984050e15bf" { 40 t.Errorf("expected %v, got %v", "b14e44284ca477b4c0db34b15ca4c454b2947cce7883e22321cf2984050e15bf", checksum.Value) 41 } 42 case common.MD5: 43 if checksum.Value != "37c8208479dfe42d2bb29debd6e32d4a" { 44 t.Errorf("expected %v, got %v", "37c8208479dfe42d2bb29debd6e32d4a", checksum.Value) 45 } 46 } 47 } 48 49 if file1.LicenseConcluded != "NOASSERTION" { 50 t.Errorf("expected %v, got %v", "NOASSERTION", file1.LicenseConcluded) 51 } 52 if len(file1.LicenseInfoInFiles) != 1 { 53 t.Errorf("expected %v, got %v", 1, len(file1.LicenseInfoInFiles)) 54 } else { 55 if file1.LicenseInfoInFiles[0] != "NOASSERTION" { 56 t.Errorf("expected %v, got %v", "NOASSERTION", file1.LicenseInfoInFiles[0]) 57 } 58 } 59 if file1.FileCopyrightText != "NOASSERTION" { 60 t.Errorf("expected %v, got %v", "NOASSERTION", file1.FileCopyrightText) 61 } 62 63} 64 65func TestBuilder2_2BuildFileSectionFailsForInvalidFilePath(t *testing.T) { 66 filePath := "/file1.testdata.txt" 67 prefix := "oops/wrong/path" 68 fileNumber := 11 69 70 _, err := BuildFileSection2_2(filePath, prefix, fileNumber) 71 if err == nil { 72 t.Fatalf("expected non-nil error, got nil") 73 } 74} 75