xref: /aosp_15_r20/external/spdx-tools/builder/builder2v1/build_file_test.go (revision ba677afa8f67bb56cbc794f4d0e378e0da058e16)
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