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