aboutsummaryrefslogtreecommitdiff
path: root/tvloader/parser2v2/parse_file_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tvloader/parser2v2/parse_file_test.go')
-rw-r--r--tvloader/parser2v2/parse_file_test.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/tvloader/parser2v2/parse_file_test.go b/tvloader/parser2v2/parse_file_test.go
index 411593f..689a2df 100644
--- a/tvloader/parser2v2/parse_file_test.go
+++ b/tvloader/parser2v2/parse_file_test.go
@@ -917,3 +917,48 @@ func TestParser2_2FailsIfArtifactURIBeforeArtifactName(t *testing.T) {
t.Errorf("expected non-nil error, got nil")
}
}
+
+func TestParser2_2FilesWithoutSpdxIdThrowError(t *testing.T) {
+ // case 1: The previous file (packaged or unpackaged) does not contain spdx ID
+ parser1 := tvParser2_2{
+ doc: &spdx.Document2_2{Packages: map[spdx.ElementID]*spdx.Package2_2{}},
+ st: psFile2_2,
+ file: &spdx.File2_2{FileName: "FileName"},
+ }
+
+ err := parser1.parsePair2_2("FileName", "f2")
+ if err == nil {
+ t.Errorf("file without SPDX Identifier getting accepted")
+ }
+
+ // case 2: Invalid file with snippet
+ // Last unpackaged file before the snippet start
+ fileName := "f2.txt"
+ sid1 := spdx.ElementID("s1")
+ parser2 := tvParser2_2{
+ doc: &spdx.Document2_2{},
+ st: psCreationInfo2_2,
+ file: &spdx.File2_2{FileName: fileName},
+ }
+ err = parser2.parsePair2_2("SnippetSPDXID", string(sid1))
+ if err == nil {
+ t.Errorf("file without SPDX Identifier getting accepted")
+ }
+
+ // case 3: Invalid File without snippets
+ // Last unpackaged file before the package starts
+ // Last file of a package and New package starts
+ parser3 := tvParser2_2{
+ doc: &spdx.Document2_2{},
+ st: psCreationInfo2_2,
+ }
+ fileName = "f3.txt"
+ err = parser3.parsePair2_2("FileName", fileName)
+ if err != nil {
+ t.Errorf("%s", err)
+ }
+ err = parser3.parsePair2_2("PackageName", "p2")
+ if err == nil {
+ t.Errorf("file without SPDX Identifier getting accepted")
+ }
+}