// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later package parser2v3 import ( "testing" gordfParser "github.com/spdx/gordf/rdfloader/parser" ) func Test_rdfParser2_3_getExternalDocumentRefFromNode(t *testing.T) { var parser *rdfParser2_3 var node *gordfParser.Node var err error // TestCase 1: invalid checksum parser, _ = parserFromBodyContent(` DocumentRef-spdx-tool-1.2 d6a770ba38583ed4bb4525bd96e50461655d2759 `) node = parser.gordfParserObj.Triples[0].Subject _, err = parser.getExternalDocumentRefFromNode(node) if err == nil { t.Errorf("expected an error due to invalid checksum, found %v", err) } // TestCase 2: unknown predicate parser, _ = parserFromBodyContent(` `) node = parser.gordfParserObj.Triples[0].Subject _, err = parser.getExternalDocumentRefFromNode(node) if err == nil { t.Errorf("expected an error due to invalid predicate, found %v", err) } // TestCase 3: valid example parser, _ = parserFromBodyContent(` DocumentRef-spdx-tool-1.2 d6a770ba38583ed4bb4525bd96e50461655d2759 `) node = parser.gordfParserObj.Triples[0].Subject _, err = parser.getExternalDocumentRefFromNode(node) if err != nil { t.Errorf("unexpected error: %v", err) } } func Test_rdfParser2_3_parseSpdxDocumentNode(t *testing.T) { var parser *rdfParser2_3 var node *gordfParser.Node var err error // TestCase 1: invalid spdx id of the document parser, _ = parserFromBodyContent(` `) node = parser.gordfParserObj.Triples[0].Subject err = parser.parseSpdxDocumentNode(node) if err == nil { t.Errorf("expected an error due to invalid document id, got %v", err) } // TestCase 2: erroneous dataLicense parser, _ = parserFromBodyContent(` `) node = parser.gordfParserObj.Triples[0].Subject err = parser.parseSpdxDocumentNode(node) if err == nil { t.Errorf("expected an error due to invalid dataLicense, got %v", err) } // TestCase 3: invalid external document ref parser, _ = parserFromBodyContent(` DocumentRef-spdx-tool-1.2 d6a770ba38583ed4bb4525bd96e50461655d2759 `) node = parser.gordfParserObj.Triples[0].Subject err = parser.parseSpdxDocumentNode(node) if err == nil { t.Errorf("expected an error due to invalid externalDocumentRef, got %v", err) } // TestCase 4: invalid package parser, _ = parserFromBodyContent(` `) node = parser.gordfParserObj.Triples[0].Subject err = parser.parseSpdxDocumentNode(node) if err == nil { t.Errorf("expected an error due to invalid externalDocumentRef, got %v", err) } // TestCase 5: error in extractedLicensingInfo parser, _ = parserFromBodyContent(` LicenseRef-Freeware freeware `) node = parser.gordfParserObj.Triples[0].Subject err = parser.parseSpdxDocumentNode(node) if err == nil { t.Errorf("expected an error due to invalid extractedLicensingInfo, got %v", err) } // TestCase 6: error in annotation parser, _ = parserFromBodyContent(` `) node = parser.gordfParserObj.Triples[0].Subject err = parser.parseSpdxDocumentNode(node) if err == nil { t.Errorf("expected an error due to invalid extractedLicensingInfo, got %v", err) } // TestCase 7: invalid predicate parser, _ = parserFromBodyContent(` `) node = parser.gordfParserObj.Triples[0].Subject err = parser.parseSpdxDocumentNode(node) if err == nil { t.Errorf("expected an error due to unknown predicate, got %v", err) } // TestCase 7: everything valid parser, _ = parserFromBodyContent(` SPDX-2.1 /test/example DocumentRef-spdx-tool-1.2 d6a770ba38583ed4bb4525bd96e50461655d2759 2.6 Person: spdx (y) Organization: Tool: spdx2 2018-08-24T19:55:34Z test Another example reviewer. 2011-03-13T00:00:00Z Person: Suzanne Reviewer 2011-01-29T18:30:22Z test annotation Person: Rishabh Bhatnagar `) node = parser.gordfParserObj.Triples[0].Subject err = parser.parseSpdxDocumentNode(node) if err != nil { t.Errorf("unexpected error: %v", err) } }