JENA-1454: Tests for bnode handling
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/1ea47368 Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/1ea47368 Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/1ea47368 Branch: refs/heads/master Commit: 1ea47368f593c17092645e120f6949f63c178e8c Parents: 716b86c Author: Andy Seaborne <[email protected]> Authored: Sat Dec 23 15:50:45 2017 +0000 Committer: Andy Seaborne <[email protected]> Committed: Sat Dec 23 15:50:45 2017 +0000 ---------------------------------------------------------------------- .../riot/resultset/ResultSetReaderRegistry.java | 3 +- .../jena/riot/resultset/rw/ResultsMgrX.java | 69 -------------------- .../jena/sparql/resultset/TestResultSet.java | 54 +++++++++++++-- 3 files changed, 52 insertions(+), 74 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/1ea47368/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetReaderRegistry.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetReaderRegistry.java b/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetReaderRegistry.java index 57f8c31..37068e4 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetReaderRegistry.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetReaderRegistry.java @@ -31,6 +31,7 @@ import org.apache.jena.query.ResultSet ; import org.apache.jena.riot.Lang ; import org.apache.jena.riot.RiotException ; import org.apache.jena.riot.resultset.rw.ResultSetReaderJSON; +import org.apache.jena.riot.resultset.rw.ResultSetReaderThrift; import org.apache.jena.riot.resultset.rw.ResultSetReaderXML; import org.apache.jena.riot.thrift.BinRDF ; import org.apache.jena.sparql.resultset.CSVInput ; @@ -70,9 +71,9 @@ public class ResultSetReaderRegistry { ResultSetReaderFactory factory = new ResultSetReaderFactoryStd() ; register(SPARQLResultSetXML, ResultSetReaderXML.factory) ; register(SPARQLResultSetJSON, ResultSetReaderJSON.factory) ; + register(SPARQLResultSetThrift, ResultSetReaderThrift.factory) ; register(SPARQLResultSetCSV, factory) ; register(SPARQLResultSetTSV, factory) ; - register(SPARQLResultSetThrift, factory) ; } private static class ResultSetReaderFactoryStd implements ResultSetReaderFactory { http://git-wip-us.apache.org/repos/asf/jena/blob/1ea47368/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsMgrX.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsMgrX.java b/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsMgrX.java deleted file mode 100644 index 80ee9b0..0000000 --- a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsMgrX.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jena.riot.resultset.rw; - -import java.io.OutputStream; - -import org.apache.jena.query.ResultSet; -import org.apache.jena.sparql.resultset.ResultSetException; -import org.apache.jena.sparql.resultset.SPARQLResult; - -public class ResultsMgrX { - // For org.apache.jena.riotResultSetMgr - public static ResultSet readResults(String url) { - ResultSet rs = read(url).getResultSet(); - if ( rs == null ) - throw new ResultSetException("Not a result set"); - return rs; - } - - public static boolean readBoolean(String url) { - Boolean b = read(url).getBooleanResult(); - if ( b == null ) - throw new ResultSetException("Not a boolean result"); - return b; - } - - private static SPARQLResult read(String url) { - return null; -// ResultsReader.create() -// //.forceLang(lang) -// //.context(context) -// .build() -// .read(url); - } - - public static void write(OutputStream output, ResultSet resultSet) { - ResultsWriter.create() - .build() - .write(output, resultSet); - } - - public static void write(OutputStream output, Boolean booleanResult) { - } - - public static void write(String filename, ResultSet resultSet) { - ResultsWriter.create() - .build() - .write(filename, resultSet); - } - - public static void write(String filename, Boolean booleanResult) { - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/1ea47368/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java b/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java index 3f8da9e..cca2235 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java @@ -29,11 +29,12 @@ import org.apache.jena.atlas.junit.BaseTest ; import org.apache.jena.atlas.lib.StrUtils ; import org.apache.jena.graph.Node ; import org.apache.jena.graph.NodeFactory ; -import org.apache.jena.query.ResultSet ; -import org.apache.jena.query.ResultSetFactory ; -import org.apache.jena.query.ResultSetFormatter ; -import org.apache.jena.query.ResultSetRewindable ; +import org.apache.jena.query.*; import org.apache.jena.rdf.model.Model ; +import org.apache.jena.riot.Lang; +import org.apache.jena.riot.resultset.ResultSetLang; +import org.apache.jena.riot.resultset.rw.ResultsReader; +import org.apache.jena.riot.resultset.rw.ResultsWriter; import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.engine.QueryIterator ; import org.apache.jena.sparql.engine.ResultSetStream ; @@ -44,6 +45,7 @@ import org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper ; import org.apache.jena.sparql.engine.iterator.QueryIterSingleton ; import org.apache.jena.sparql.sse.SSE ; import org.apache.jena.sparql.sse.builders.BuilderResultSet ; +import org.apache.jena.sparql.util.Context; import org.apache.jena.sparql.util.NodeFactoryExtra ; import org.apache.jena.sparql.util.ResultSetUtils ; import org.apache.jena.system.JenaSystem; @@ -514,6 +516,50 @@ public class TestResultSet extends BaseTest assertTrue(ResultSetCompare.equalsByValue(rs1, rs2)) ; } + // -- BNode preservation + + static Context cxt; + static{ + cxt = new Context(); + cxt.set(ARQ.inputGraphBNodeLabels, true); + cxt.set(ARQ.outputGraphBNodeLabels, true); + } + + @Test public void preserve_bnodes_1() { + preserve_bnodes(ResultSetLang.SPARQLResultSetJSON, cxt, true); + preserve_bnodes(ResultSetLang.SPARQLResultSetJSON, ARQ.getContext(), false); + } + + @Test public void preserve_bnodes_2() { + preserve_bnodes(ResultSetLang.SPARQLResultSetXML, cxt, true); + preserve_bnodes(ResultSetLang.SPARQLResultSetXML, ARQ.getContext(), false); + } + + @Test public void preserve_bnodes_3() { + preserve_bnodes(ResultSetLang.SPARQLResultSetThrift, cxt, true); + preserve_bnodes(ResultSetLang.SPARQLResultSetThrift, ARQ.getContext(), true); + } + + private static void preserve_bnodes(Lang sparqlresultlang, Context cxt, boolean same) { + + ResultSetRewindable rs1 = ResultSetFactory.makeRewindable(BuilderResultSet.build(SSE.parseItem(StrUtils.strjoinNL(rs1$)))) ; + ByteArrayOutputStream x = new ByteArrayOutputStream(); + + ResultsWriter.create().context(cxt).lang(sparqlresultlang).write(x, rs1); + ByteArrayInputStream y = new ByteArrayInputStream(x.toByteArray()); + + ResultSetRewindable rs2 = ResultSetFactory.copyResults( + ResultsReader.create().context(cxt).lang(sparqlresultlang).read(y) + ); + rs1.reset(); + rs2.reset(); + if ( same ) + assertTrue(ResultSetCompare.equalsExact(rs1, rs2)); + else + assertFalse(ResultSetCompare.equalsExact(rs1, rs2)); + } + + // -------- Support functions private ResultSet make(String var, Node val)
