diff options
Diffstat (limited to 'tvloader/parser2v1/parse_file_test.go')
-rw-r--r-- | tvloader/parser2v1/parse_file_test.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tvloader/parser2v1/parse_file_test.go b/tvloader/parser2v1/parse_file_test.go index 68efe2b..9f42b55 100644 --- a/tvloader/parser2v1/parse_file_test.go +++ b/tvloader/parser2v1/parse_file_test.go @@ -885,4 +885,47 @@ func TestParser2_1FailsIfArtifactURIBeforeArtifactName(t *testing.T) { } } +func TestParser2_1FilesWithoutSpdxIdThrowError(t *testing.T) { + // case 1: The previous file (packaged or unpackaged) does not contain spdxID + parser1 := tvParser2_1{ + doc: &spdx.Document2_1{Packages: map[spdx.ElementID]*spdx.Package2_1{}}, + st: psFile2_1, + file: &spdx.File2_1{FileName: "FileName"}, + } + + err := parser1.parsePair2_1("FileName", "f2") + if err == nil { + t.Errorf("file without SPDX Identifier getting accepted") + } + // case 2: Invalid file with snippet + // Last unpackaged file before a snippet starts + sid1 := spdx.ElementID("s1") + fileName := "f2.txt" + parser2 := tvParser2_1{ + doc: &spdx.Document2_1{}, + st: psCreationInfo2_1, + file: &spdx.File2_1{FileName: fileName}, + } + err = parser2.parsePair2_1("SnippetSPDXID", string(sid1)) + if err == nil { + t.Errorf("file without SPDX Identifier getting accepted") + } + + // case 3 : Invalid File without snippets + // Last unpackaged file before a package starts + // Last file of a package and New package starts + parser3 := tvParser2_1{ + doc: &spdx.Document2_1{}, + st: psCreationInfo2_1, + } + fileName = "f3.txt" + err = parser3.parsePair2_1("FileName", fileName) + if err != nil { + t.Errorf("%s", err) + } + err = parser3.parsePair2_1("PackageName", "p2") + if err == nil { + t.Errorf("files withoutSpdx Identifier getting accepted") + } +} |