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)

Reply via email to