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.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/tvloader/parser2v2/parse_file_test.go b/tvloader/parser2v2/parse_file_test.go
index 411593f..3af06a1 100644
--- a/tvloader/parser2v2/parse_file_test.go
+++ b/tvloader/parser2v2/parse_file_test.go
@@ -5,6 +5,7 @@ import (
"testing"
"github.com/spdx/tools-golang/spdx"
+ "github.com/spdx/tools-golang/tvloader/reader"
)
// ===== Parser file section state change tests =====
@@ -917,3 +918,61 @@ func TestParser2_2FailsIfArtifactURIBeforeArtifactName(t *testing.T) {
t.Errorf("expected non-nil error, got nil")
}
}
+
+func TestParser2_2FilesWithoutSpdxIdThrowError(t *testing.T) {
+ //case 1
+ // Last unpackaged file no packages in doc
+ // Last file of last package in the doc
+ var tvPairs []reader.TagValuePair
+ tvPair1 := reader.TagValuePair{Tag: "SPDXVersion", Value: "SPDX-2.2"}
+ tvPairs = append(tvPairs, tvPair1)
+ tvPair2 := reader.TagValuePair{Tag: "DataLicense", Value: "CC0-1.0"}
+ tvPairs = append(tvPairs, tvPair2)
+ tvPair3 := reader.TagValuePair{Tag: "SPDXID", Value: "SPDXRef-DOCUMENT"}
+ tvPairs = append(tvPairs, tvPair3)
+ tvPair4 := reader.TagValuePair{Tag: "FileName", Value: "f1"}
+ tvPairs = append(tvPairs, tvPair4)
+ _, err := ParseTagValues(tvPairs)
+ if err == nil {
+ t.Errorf("files withoutSpdx Identifiers getting accepted")
+ }
+
+ //case 2 : The previous file (packaged or unpackaged does not contain spdxID)
+ tvPair5 := reader.TagValuePair{Tag: "FileName", Value: "f2"}
+ tvPairs = append(tvPairs, tvPair5)
+ _, err = ParseTagValues(tvPairs)
+ if err == nil {
+ t.Errorf("%s", err)
+ }
+
+ //case 3 : Invalid file with snippet
+ //Last unpackaged file before the packges start
+ //Last file of a package and New package starts
+ sid1 := spdx.ElementID("s1")
+ parser := tvParser2_2{
+ doc: &spdx.Document2_2{},
+ st: psCreationInfo2_2,
+ }
+ fileName := "f2.txt"
+ err = parser.parsePair2_2("FileName", fileName)
+ err = parser.parsePair2_2("SnippetSPDXID", string(sid1))
+ err = parser.parsePair2_2("PackageName", "p2")
+ if err == nil {
+ t.Errorf("files withoutSpdx Identifiers getting accepted")
+ }
+
+ //case 4 : Invalid File without snippets
+ //Last unpackaged file before the packges start
+ //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)
+ err = parser3.parsePair2_2("PackageName", "p2")
+ if err == nil {
+ t.Errorf("files withoutSpdx Identifiers getting accepted")
+ }
+ err = parser3.parsePair2_2("PackageName", "p2")
+}