aboutsummaryrefslogtreecommitdiff
path: root/rdfloader/parser2v2/parse_review_test.go
blob: d62b7b4e1120f6b43314a38a3da828b97ce5fe44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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)
	}
}