aboutsummaryrefslogtreecommitdiff
path: root/builder/builder2v2/build_file_test.go
blob: 869158371f72bdb0fd5929d05910cf65763b011d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later

package builder2v2

import (
	"testing"

	"github.com/spdx/tools-golang/spdx/common"
)

// ===== File section builder tests =====
func TestBuilder2_2CanBuildFileSection(t *testing.T) {
	filePath := "/file1.testdata.txt"
	prefix := "../../testdata/project1/"
	fileNumber := 17

	file1, err := BuildFileSection2_2(filePath, prefix, fileNumber)
	if err != nil {
		t.Fatalf("expected nil error, got %v", err)
	}

	if file1 == nil {
		t.Fatalf("expected non-nil file, got nil")
	}
	if file1.FileName != "/file1.testdata.txt" {
		t.Errorf("expected %v, got %v", "/file1.testdata.txt", file1.FileName)
	}
	if file1.FileSPDXIdentifier != common.ElementID("File17") {
		t.Errorf("expected %v, got %v", "File17", file1.FileSPDXIdentifier)
	}

	for _, checksum := range file1.Checksums {
		switch checksum.Algorithm {
		case common.SHA1:
			if checksum.Value != "024f870eb6323f532515f7a09d5646a97083b819" {
				t.Errorf("expected %v, got %v", "024f870eb6323f532515f7a09d5646a97083b819", checksum.Value)
			}
		case common.SHA256:
			if checksum.Value != "b14e44284ca477b4c0db34b15ca4c454b2947cce7883e22321cf2984050e15bf" {
				t.Errorf("expected %v, got %v", "b14e44284ca477b4c0db34b15ca4c454b2947cce7883e22321cf2984050e15bf", checksum.Value)
			}
		case common.MD5:
			if checksum.Value != "37c8208479dfe42d2bb29debd6e32d4a" {
				t.Errorf("expected %v, got %v", "37c8208479dfe42d2bb29debd6e32d4a", checksum.Value)
			}
		}
	}

	if file1.LicenseConcluded != "NOASSERTION" {
		t.Errorf("expected %v, got %v", "NOASSERTION", file1.LicenseConcluded)
	}
	if len(file1.LicenseInfoInFiles) != 1 {
		t.Errorf("expected %v, got %v", 1, len(file1.LicenseInfoInFiles))
	} else {
		if file1.LicenseInfoInFiles[0] != "NOASSERTION" {
			t.Errorf("expected %v, got %v", "NOASSERTION", file1.LicenseInfoInFiles[0])
		}
	}
	if file1.FileCopyrightText != "NOASSERTION" {
		t.Errorf("expected %v, got %v", "NOASSERTION", file1.FileCopyrightText)
	}

}

func TestBuilder2_2BuildFileSectionFailsForInvalidFilePath(t *testing.T) {
	filePath := "/file1.testdata.txt"
	prefix := "oops/wrong/path"
	fileNumber := 11

	_, err := BuildFileSection2_2(filePath, prefix, fileNumber)
	if err == nil {
		t.Fatalf("expected non-nil error, got nil")
	}
}