xref: /aosp_15_r20/external/spdx-tools/rdfloader/parser2v3/parse_review_test.go (revision ba677afa8f67bb56cbc794f4d0e378e0da058e16)
1// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
2
3package parser2v3
4
5import (
6	"testing"
7)
8
9func Test_rdfParser2_3_setReviewFromNode(t *testing.T) {
10	// TestCase 1: unknown predicate must raise an error
11	parser, _ := parserFromBodyContent(`
12		<spdx:Review>
13			<rdfs:comment>Another example reviewer.</rdfs:comment>
14			<spdx:reviewDate>2011-03-13T00:00:00Z</spdx:reviewDate>
15			<spdx:reviewer>Person: Suzanne Reviewer</spdx:reviewer>
16			<spdx:unknown />
17		</spdx:Review>
18	`)
19	reviewNode := parser.gordfParserObj.Triples[0].Subject
20	err := parser.setReviewFromNode(reviewNode)
21	if err == nil {
22		t.Errorf("unknown predicate should've elicit an error")
23	}
24
25	// TestCase 2: wrong reviewer format must raise an error
26	parser, _ = parserFromBodyContent(`
27		<spdx:Review>
28			<rdfs:comment>Another example reviewer.</rdfs:comment>
29			<spdx:reviewDate>2011-03-13T00:00:00Z</spdx:reviewDate>
30			<spdx:reviewer>Suzanne Reviewer</spdx:reviewer>
31		</spdx:Review>
32	`)
33	reviewNode = parser.gordfParserObj.Triples[0].Subject
34	err = parser.setReviewFromNode(reviewNode)
35	if err == nil {
36		t.Errorf("incorrect should've elicit an error")
37	}
38
39	// TestCase 3: valid input
40	parser, _ = parserFromBodyContent(`
41		<spdx:Review>
42			<rdfs:comment>Another example reviewer.</rdfs:comment>
43			<spdx:reviewDate>2011-03-13T00:00:00Z</spdx:reviewDate>
44			<spdx:reviewer>Person: Suzanne</spdx:reviewer>
45		</spdx:Review>
46	`)
47	reviewNode = parser.gordfParserObj.Triples[0].Subject
48	err = parser.setReviewFromNode(reviewNode)
49	if err != nil {
50		t.Errorf("error parsing a valid node")
51	}
52	n := len(parser.doc.Reviews)
53	if n != 1 {
54		t.Errorf("expected doc to have 1 review, found %d", n)
55	}
56	review := parser.doc.Reviews[0]
57	expectedComment := "Another example reviewer."
58	if review.ReviewComment != expectedComment {
59		t.Errorf("expected: %v, found: %s", expectedComment, review.ReviewComment)
60	}
61	expectedDate := "2011-03-13T00:00:00Z"
62	if review.ReviewDate != expectedDate {
63		t.Errorf("expected %s, found %s", expectedDate, review.ReviewDate)
64	}
65	expectedReviewer := "Suzanne"
66	if review.Reviewer != expectedReviewer {
67		t.Errorf("expected %s, found %s", expectedReviewer, review.Reviewer)
68	}
69	expectedReviewerType := "Person"
70	if review.ReviewerType != expectedReviewerType {
71		t.Errorf("expected %s, found %s", expectedReviewerType, review.ReviewerType)
72	}
73}
74