diff options
Diffstat (limited to 'rdfloader/parser2v2/parse_review_test.go')
-rw-r--r-- | rdfloader/parser2v2/parse_review_test.go | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/rdfloader/parser2v2/parse_review_test.go b/rdfloader/parser2v2/parse_review_test.go new file mode 100644 index 0000000..d62b7b4 --- /dev/null +++ b/rdfloader/parser2v2/parse_review_test.go @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later + +package parser2v2 + +import ( + "testing" +) + +func Test_rdfParser2_2_setReviewFromNode(t *testing.T) { + // TestCase 1: unknown predicate must raise an error + parser, _ := parserFromBodyContent(` + <spdx:Review> + <rdfs:comment>Another example reviewer.</rdfs:comment> + <spdx:reviewDate>2011-03-13T00:00:00Z</spdx:reviewDate> + <spdx:reviewer>Person: Suzanne Reviewer</spdx:reviewer> + <spdx:unknown /> + </spdx:Review> + `) + reviewNode := parser.gordfParserObj.Triples[0].Subject + err := parser.setReviewFromNode(reviewNode) + if err == nil { + t.Errorf("unknown predicate should've elicit an error") + } + + // TestCase 2: wrong reviewer format must raise an error + parser, _ = parserFromBodyContent(` + <spdx:Review> + <rdfs:comment>Another example reviewer.</rdfs:comment> + <spdx:reviewDate>2011-03-13T00:00:00Z</spdx:reviewDate> + <spdx:reviewer>Suzanne Reviewer</spdx:reviewer> + </spdx:Review> + `) + reviewNode = parser.gordfParserObj.Triples[0].Subject + err = parser.setReviewFromNode(reviewNode) + if err == nil { + t.Errorf("incorrect should've elicit an error") + } + + // TestCase 3: valid input + parser, _ = parserFromBodyContent(` + <spdx:Review> + <rdfs:comment>Another example reviewer.</rdfs:comment> + <spdx:reviewDate>2011-03-13T00:00:00Z</spdx:reviewDate> + <spdx:reviewer>Person: Suzanne</spdx:reviewer> + </spdx:Review> + `) + reviewNode = parser.gordfParserObj.Triples[0].Subject + err = parser.setReviewFromNode(reviewNode) + if err != nil { + t.Errorf("error parsing a valid node") + } + n := len(parser.doc.Reviews) + if n != 1 { + t.Errorf("expected doc to have 1 review, found %d", n) + } + review := parser.doc.Reviews[0] + expectedComment := "Another example reviewer." + if review.ReviewComment != expectedComment { + t.Errorf("expected: %v, found: %s", expectedComment, review.ReviewComment) + } + expectedDate := "2011-03-13T00:00:00Z" + if review.ReviewDate != expectedDate { + t.Errorf("expected %s, found %s", expectedDate, review.ReviewDate) + } + expectedReviewer := "Suzanne" + if review.Reviewer != expectedReviewer { + t.Errorf("expected %s, found %s", expectedReviewer, review.Reviewer) + } + expectedReviewerType := "Person" + if review.ReviewerType != expectedReviewerType { + t.Errorf("expected %s, found %s", expectedReviewerType, review.ReviewerType) + } +} |