// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later package parser2v3 import ( "testing" ) func Test_rdfParser2_3_setReviewFromNode(t *testing.T) { // TestCase 1: unknown predicate must raise an error parser, _ := parserFromBodyContent(` Another example reviewer. 2011-03-13T00:00:00Z Person: Suzanne Reviewer `) 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(` Another example reviewer. 2011-03-13T00:00:00Z Suzanne Reviewer `) 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(` Another example reviewer. 2011-03-13T00:00:00Z Person: Suzanne `) 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) } }