aboutsummaryrefslogtreecommitdiff
path: root/tvloader/parser2v1/parse_file_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tvloader/parser2v1/parse_file_test.go')
-rw-r--r--tvloader/parser2v1/parse_file_test.go43
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")
+ }
+}