Add unit test for extracting lists.
Signed-off-by:Jacek Grzebyta <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/any23/repo Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/a4f2cd47 Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/a4f2cd47 Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/a4f2cd47 Branch: refs/heads/master Commit: a4f2cd4739e9555eb1eff2ee97042b650a51bc3f Parents: a4208ea Author: Jacek Grzebyta <[email protected]> Authored: Sun Nov 19 00:11:56 2017 +0000 Committer: Jacek Grzebyta <[email protected]> Committed: Sun Nov 19 00:11:56 2017 +0000 ---------------------------------------------------------------------- .../any23/extractor/yaml/YAMLExtractorTest.java | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/any23/blob/a4f2cd47/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java b/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java index 82c2ddc..1c8df9e 100644 --- a/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java +++ b/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java @@ -16,6 +16,9 @@ */ package org.apache.any23.extractor.yaml; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; import org.apache.any23.extractor.ExtractorFactory; import org.apache.any23.extractor.html.AbstractExtractorTestCase; import org.apache.any23.rdf.RDFUtils; @@ -26,7 +29,11 @@ import org.eclipse.rdf4j.common.iteration.Iterations; import org.eclipse.rdf4j.model.Statement; import org.eclipse.rdf4j.model.vocabulary.RDF; import org.eclipse.rdf4j.model.vocabulary.RDFS; +import org.eclipse.rdf4j.query.BindingSet; +import org.eclipse.rdf4j.query.TupleQueryResult; +import org.eclipse.rdf4j.repository.RepositoryConnection; import org.eclipse.rdf4j.repository.RepositoryResult; +import org.junit.ComparisonFailure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -126,6 +133,29 @@ public class YAMLExtractorTest extends AbstractExtractorTestCase { assertContains(RDFUtils.triple(RDFUtils.bnode(), RDF.FIRST, RDFUtils.iri("urn:value1"))); } + @Test + public void treeTest2() throws Exception { + assertExtract("/org/apache/any23/extractor/yaml/tree.yml"); + String sparql ="select ?nodes where " + + "{ [] <http://bob.example.com/key3.1> [ rdf:rest*/rdf:first ?nodes ;]}"; + + RepositoryConnection connection = getConnection(); + TupleQueryResult res = connection.prepareTupleQuery(sparql).evaluate(); + List<BindingSet> resList = Iterations.asList(res); + try { + Assert.assertEquals("value3.1.1", resList.get(0).getValue("nodes").stringValue()); + } catch (ComparisonFailure e) { + if ("value3.1.1".equals(resList.get(0).getValue("nodes").stringValue())) { + throw new RuntimeException("there should be no error"); + } + } + List<String> resString = resList.stream().map((Function<? super BindingSet, String>) (b) -> { + return b.getValue("nodes").stringValue(); + }).collect(Collectors.toList()); + + log.debug("List output: {}", resString); + } + /** * This test covers a typical situation when a document is a map. *
