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