aboutsummaryrefslogtreecommitdiff
path: root/tvloader/parser2v2/parse_package_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tvloader/parser2v2/parse_package_test.go')
-rw-r--r--tvloader/parser2v2/parse_package_test.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/tvloader/parser2v2/parse_package_test.go b/tvloader/parser2v2/parse_package_test.go
index 33b4784..1983baf 100644
--- a/tvloader/parser2v2/parse_package_test.go
+++ b/tvloader/parser2v2/parse_package_test.go
@@ -5,6 +5,7 @@ import (
"testing"
"github.com/spdx/tools-golang/spdx"
+ "github.com/spdx/tools-golang/tvloader/reader"
)
// ===== Parser package section state change tests =====
@@ -1102,3 +1103,42 @@ func TestFailsPackageExternalRefWithInvalidFormat(t *testing.T) {
t.Errorf("expected non-nil error, got nil")
}
}
+
+func TestParser2_2PackageWithoutSpdxIdentifierThrowsError(t *testing.T) {
+ // More than one package , the previous package doesn't contain the SPDXID
+ pkgOldName := "p1"
+ parser := tvParser2_2{
+ doc: &spdx.Document2_2{Packages: map[spdx.ElementID]*spdx.Package2_2{}},
+ st: psPackage2_2,
+ pkg: &spdx.Package2_2{PackageName: pkgOldName},
+ }
+ pkgOld := parser.pkg
+ parser.doc.Packages["p1"] = pkgOld
+ // the Document's Packages should have this one only
+ if parser.doc.Packages["p1"] != pkgOld {
+ t.Errorf("expected package %v, got %v", pkgOld, parser.doc.Packages["p1"])
+ }
+ if len(parser.doc.Packages) != 1 {
+ t.Errorf("expected 1 package, got %d", len(parser.doc.Packages))
+ }
+
+ // Case 2: Checks the Last package
+ pkgName := "p2"
+ err := parser.parsePair2_2("PackageName", pkgName)
+ if err == nil {
+ t.Errorf("Packages withoutSpdx Identifiers getting accepted")
+ }
+ 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: "PackageName", Value: "p1"}
+ tvPairs = append(tvPairs, tvPair4)
+ _, err = ParseTagValues(tvPairs)
+ if err == nil {
+ t.Errorf("Packages withoutSpdx Identifiers getting accepted")
+ }
+}