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