You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2013/04/02 21:57:07 UTC

svn commit: r1463722 - in /jena/Experimental/jena-jdbc: jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/ jena-jdbc-core/src/main/java/org/apache/jena/jdbc/utils/ jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/ jena-jdbc-driver-mem/...

Author: rvesse
Date: Tue Apr  2 19:57:06 2013
New Revision: 1463722

URL: http://svn.apache.org/r1463722
Log:
Fix up some tests to account for the fact that TDB normalizes integer numerics to xsd:integer internally

Added:
    jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/
    jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/AbstractTdbResultSetTests.java
    jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbDiskResultSets.java
    jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbMemResultSets.java
Removed:
    jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/TestTdbDiskResultSets.java
    jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/TestTdbMemResultSets.java
Modified:
    jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/JenaJdbcResultSet.java
    jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/utils/JenaJdbcNodeUtils.java
    jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java
    jena/Experimental/jena-jdbc/jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/TestResultSets.java

Modified: jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/JenaJdbcResultSet.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/JenaJdbcResultSet.java?rev=1463722&r1=1463721&r2=1463722&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/JenaJdbcResultSet.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/JenaJdbcResultSet.java Tue Apr  2 19:57:06 2013
@@ -304,13 +304,19 @@ public abstract class JenaJdbcResultSet 
     }
 
     public short getShort(int columnIndex) throws SQLException {
-        // TODO Auto-generated method stub
-        return 0;
+        return this.getShort(this.findColumnLabel(columnIndex));
     }
 
     public short getShort(String columnLabel) throws SQLException {
-        // TODO Auto-generated method stub
-        return 0;
+        Node n = this.getNode(columnLabel);
+        if (n == null) {
+            this.setNull(true);
+            return 0;
+        } else {
+            // Try to marshal into an integer
+            this.setNull(false);
+            return JenaJdbcNodeUtils.toShort(n);
+        }
     }
 
     public String getString(int columnIndex) throws SQLException {

Modified: jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/utils/JenaJdbcNodeUtils.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/utils/JenaJdbcNodeUtils.java?rev=1463722&r1=1463721&r2=1463722&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/utils/JenaJdbcNodeUtils.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/utils/JenaJdbcNodeUtils.java Tue Apr  2 19:57:06 2013
@@ -114,6 +114,29 @@ public class JenaJdbcNodeUtils {
     }
     
     /**
+     * Tries to convert a node to a short integer
+     * @param n Node
+     * @return Short Integer
+     * @throws SQLException Thrown if the node cannot be converted
+     */
+    public static short toShort(Node n) throws SQLException {
+        try {
+            if (n == null) return 0;
+            if (n.isLiteral()) {
+                return Short.parseShort(n.getLiteralLexicalForm());
+            } else {
+                throw new SQLException("Unable to marshal a non-literal to an integer");
+            }
+        } catch (SQLException e) {
+            // Throw as is
+            throw e;
+        } catch (Exception e) {
+            // Wrap other exceptions
+            throw new SQLException("Unable to marshal the value to an integer", e);
+        }
+    }
+    
+    /**
      * Tries to convert a node to an integer
      * @param n Node
      * @return Integer

Modified: jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java?rev=1463722&r1=1463721&r2=1463722&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java Tue Apr  2 19:57:06 2013
@@ -86,7 +86,7 @@ public abstract class AbstractResultSetT
             Literal objSimpleLiteral = m.createLiteral("simple");
             Literal objLangLiteral = m.createLiteral("simple", "en");
             Literal objBoolean = m.createTypedLiteral(true);
-            Literal objByte = m.createTypedLiteral((byte)123);
+            Literal objByte = m.createTypedLiteral(Byte.toString((byte)123), TypeMapper.getInstance().getSafeTypeByName(XSD.xbyte.toString()));
             Literal objDate = m.createTypedLiteral(Calendar.getInstance());
             Literal objChar = m.createTypedLiteral('a');
             Literal objDecimal = m.createTypedLiteral(new BigDecimal(123.4));
@@ -94,6 +94,7 @@ public abstract class AbstractResultSetT
             Literal objFloat = m.createTypedLiteral(123.4f);
             Literal objInteger = m.createTypedLiteral(1234);
             Literal objLong = m.createTypedLiteral(1234l);
+            Literal objShort = m.createTypedLiteral(Short.toString((short)123), TypeMapper.getInstance().getSafeTypeByName(XSD.xshort.toString()));
             Literal objString = m.createTypedLiteral("typed");
             Literal objCustom = m.createTypedLiteral("custom", TypeMapper.getInstance().getSafeTypeByName("http://example/customType"));
             
@@ -116,6 +117,7 @@ public abstract class AbstractResultSetT
                     m.createStatement(subjUri, predUri, objFloat),
                     m.createStatement(subjUri, predUri, objInteger),
                     m.createStatement(subjUri, predUri, objLong),
+                    m.createStatement(subjUri, predUri, objShort),
                     m.createStatement(subjUri, predUri, objString),
                     m.createStatement(subjUri, predUri, objCustom)
             });
@@ -149,6 +151,14 @@ public abstract class AbstractResultSetT
         return createDescribeResults(ds, query);
     }
     
+    protected String getIntegerTypeUri() { return XSD.xint.toString(); }
+    
+    protected String getByteTypeUri() { return XSD.xbyte.toString(); }
+    
+    protected String getShortTypeUri() { return XSD.xshort.toString(); }
+    
+    protected String getLongTypeUri() { return XSD.xlong.toString(); }
+    
     /**
      * Test ASK results with a true result
      * @throws SQLException
@@ -204,10 +214,11 @@ public abstract class AbstractResultSetT
      * @throws SQLException
      */
     @Test
-    public void test_results_select_strings() throws SQLException {
+    public void test_results_select_strings_01() throws SQLException {
         ResultSet rset = this.createSelectResults(ds, "SELECT (STR(?o) AS ?str) { ?s ?p ?o . FILTER(!ISBLANK(?o)) }");
         Assert.assertFalse(rset.isClosed());
         Assert.assertTrue(rset.isBeforeFirst());
+        Assert.assertFalse(rset.isLast());
         
         // Check all rows allow us to marshal strings OK
         while (rset.next()) {
@@ -221,6 +232,28 @@ public abstract class AbstractResultSetT
     }
     
     /**
+     * Tests that SELECT result values can be marshalled to strings OK
+     * @throws SQLException
+     */
+    @Test
+    public void test_results_select_strings_02() throws SQLException {
+        ResultSet rset = this.createSelectResults(ds, "SELECT (STR(?o) AS ?str) { ?s ?p ?o . FILTER(!ISBLANK(?o)) }");
+        Assert.assertFalse(rset.isClosed());
+        Assert.assertTrue(rset.isBeforeFirst());
+        Assert.assertFalse(rset.isLast());
+        
+        // Check all rows allow us to marshal strings OK
+        while (rset.next()) {
+            Assert.assertNotNull(rset.getNString("str"));
+            Assert.assertFalse(rset.wasNull());
+        }
+        
+        Assert.assertTrue(rset.isAfterLast());
+        rset.close();
+        Assert.assertTrue(rset.isClosed());
+    }
+    
+    /**
      * Tests that SELECT result values can be marshalled to numerics OK
      * @throws SQLException
      */
@@ -229,12 +262,14 @@ public abstract class AbstractResultSetT
         ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(ISNUMERIC(?o)) }");
         Assert.assertFalse(rset.isClosed());
         Assert.assertTrue(rset.isBeforeFirst());
+        Assert.assertFalse(rset.isLast());
         
-        // Check all rows allow us to marshal strings OK
+        // Check all rows allow us to marshal big decimal OK
+        BigDecimal zero = new BigDecimal(0);
         while (rset.next()) {
             Assert.assertNotNull(rset.getString("o"));
             // Use decimal since all numeric types should be promotable to decimal
-            Assert.assertNotEquals(0, rset.getBigDecimal("o"));
+            Assert.assertFalse(rset.getBigDecimal("o").equals(zero));
             Assert.assertFalse(rset.wasNull());
         }
         
@@ -249,14 +284,15 @@ public abstract class AbstractResultSetT
      */
     @Test
     public void test_results_select_integers() throws SQLException {
-        ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(DATATYPE(?o) = <" + XSD.integer.toString() + ">) }");
+        ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(DATATYPE(?o) = <" + this.getIntegerTypeUri() + ">) }");
         Assert.assertFalse(rset.isClosed());
         Assert.assertTrue(rset.isBeforeFirst());
+        Assert.assertFalse(rset.isLast());
         
-        // Check all rows allow us to marshal strings OK
+        // Check all rows allow us to marshal integers OK
         while (rset.next()) {
             Assert.assertNotNull(rset.getString("o"));
-            Assert.assertNotEquals(0, rset.getInt("o"));
+            Assert.assertFalse(0 == rset.getInt("o"));
             Assert.assertFalse(rset.wasNull());
         }
         
@@ -271,14 +307,15 @@ public abstract class AbstractResultSetT
      */
     @Test
     public void test_results_select_bytes() throws SQLException {
-        ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(DATATYPE(?o) = <" + XSD.xbyte.toString() + ">) }");
+        ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(DATATYPE(?o) = <" + this.getByteTypeUri() + "> && ?o <= 255) }");
         Assert.assertFalse(rset.isClosed());
         Assert.assertTrue(rset.isBeforeFirst());
+        Assert.assertFalse(rset.isLast());
         
-        // Check all rows allow us to marshal strings OK
+        // Check all rows allow us to marshal bytes OK
         while (rset.next()) {
             Assert.assertNotNull(rset.getString("o"));
-            Assert.assertNotEquals(0, rset.getByte("o"));
+            Assert.assertFalse((byte)0 == rset.getByte("o"));
             Assert.assertFalse(rset.wasNull());
         }
         
@@ -288,7 +325,7 @@ public abstract class AbstractResultSetT
     }
     
     /**
-     * Tests that SELECT result values can be marshalled to bytes OK
+     * Tests that SELECT result values can be marshalled to floats OK
      * @throws SQLException
      */
     @Test
@@ -296,11 +333,12 @@ public abstract class AbstractResultSetT
         ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(DATATYPE(?o) = <" + XSD.xfloat.toString() + ">) }");
         Assert.assertFalse(rset.isClosed());
         Assert.assertTrue(rset.isBeforeFirst());
+        Assert.assertFalse(rset.isLast());
         
-        // Check all rows allow us to marshal strings OK
+        // Check all rows allow us to marshal floats OK
         while (rset.next()) {
             Assert.assertNotNull(rset.getString("o"));
-            Assert.assertNotEquals(0, rset.getFloat("o"));
+            Assert.assertFalse(0f == rset.getFloat("o"));
             Assert.assertFalse(rset.wasNull());
         }
         
@@ -310,7 +348,7 @@ public abstract class AbstractResultSetT
     }
     
     /**
-     * Tests that SELECT result values can be marshalled to bytes OK
+     * Tests that SELECT result values can be marshalled to doubles OK
      * @throws SQLException
      */
     @Test
@@ -318,11 +356,12 @@ public abstract class AbstractResultSetT
         ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(DATATYPE(?o) = <" + XSD.xdouble.toString() + ">) }");
         Assert.assertFalse(rset.isClosed());
         Assert.assertTrue(rset.isBeforeFirst());
+        Assert.assertFalse(rset.isLast());
         
-        // Check all rows allow us to marshal strings OK
+        // Check all rows allow us to marshal doubles OK
         while (rset.next()) {
             Assert.assertNotNull(rset.getString("o"));
-            Assert.assertNotEquals(0, rset.getDouble("o"));
+            Assert.assertFalse(0d == rset.getDouble("o"));
             Assert.assertFalse(rset.wasNull());
         }
         
@@ -332,19 +371,43 @@ public abstract class AbstractResultSetT
     }
     
     /**
-     * Tests that SELECT result values can be marshalled to bytes OK
+     * Tests that SELECT result values can be marshalled to longs OK
      * @throws SQLException
      */
     @Test
     public void test_results_select_longs() throws SQLException {
-        ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(DATATYPE(?o) = <" + XSD.xbyte.toString() + ">) }");
+        ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(DATATYPE(?o) = <" + this.getLongTypeUri() + ">) }");
         Assert.assertFalse(rset.isClosed());
         Assert.assertTrue(rset.isBeforeFirst());
+        Assert.assertFalse(rset.isLast());
         
-        // Check all rows allow us to marshal strings OK
+        // Check all rows allow us to marshal longs OK
+        while (rset.next()) {
+            Assert.assertNotNull(rset.getString("o"));
+            Assert.assertFalse(0l == rset.getLong("o"));
+            Assert.assertFalse(rset.wasNull());
+        }
+        
+        Assert.assertTrue(rset.isAfterLast());
+        rset.close();
+        Assert.assertTrue(rset.isClosed());
+    }
+    
+    /**
+     * Tests that SELECT result values can be marshalled to shorts OK
+     * @throws SQLException
+     */
+    @Test
+    public void test_results_select_shorts() throws SQLException {
+        ResultSet rset = this.createSelectResults(ds, "SELECT ?o { ?s ?p ?o . FILTER(DATATYPE(?o) = <" + this.getShortTypeUri() + ">) }");
+        Assert.assertFalse(rset.isClosed());
+        Assert.assertTrue(rset.isBeforeFirst());
+        Assert.assertFalse(rset.isLast());
+        
+        // Check all rows allow us to marshal shorts OK
         while (rset.next()) {
             Assert.assertNotNull(rset.getString("o"));
-            Assert.assertNotEquals(0, rset.getLong("o"));
+            Assert.assertFalse((short)0 == rset.getShort("o"));
             Assert.assertFalse(rset.wasNull());
         }
         

Modified: jena/Experimental/jena-jdbc/jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/TestResultSets.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/TestResultSets.java?rev=1463722&r1=1463721&r2=1463722&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/TestResultSets.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/TestResultSets.java Tue Apr  2 19:57:06 2013
@@ -1,6 +1,20 @@
-/*
- * Copyright 2013 YarcData LLC All Rights Reserved.
- */ 
+/**
+ * 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.jdbc.mem;
 

Added: jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/AbstractTdbResultSetTests.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/AbstractTdbResultSetTests.java?rev=1463722&view=auto
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/AbstractTdbResultSetTests.java (added)
+++ jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/AbstractTdbResultSetTests.java Tue Apr  2 19:57:06 2013
@@ -0,0 +1,52 @@
+/**
+ * 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.jdbc.tdb.results;
+
+import org.apache.jena.jdbc.mem.AbstractDatasetResultSetTests;
+
+import com.hp.hpl.jena.vocabulary.XSD;
+
+/**
+ * Abstract base class for TDB result set tests
+ *
+ */
+public abstract class AbstractTdbResultSetTests extends AbstractDatasetResultSetTests {
+
+    @Override
+    protected String getIntegerTypeUri() {
+        return XSD.integer.toString();
+    }
+
+    @Override
+    protected String getByteTypeUri() {
+        return XSD.integer.toString();
+    }
+
+    @Override
+    protected String getShortTypeUri() {
+        return XSD.integer.toString();
+    }
+
+    @Override
+    protected String getLongTypeUri() {
+        return XSD.integer.toString();
+    }
+
+
+}

Added: jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbDiskResultSets.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbDiskResultSets.java?rev=1463722&view=auto
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbDiskResultSets.java (added)
+++ jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbDiskResultSets.java Tue Apr  2 19:57:06 2013
@@ -0,0 +1,49 @@
+/**
+ * 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.jdbc.tdb.results;
+
+import java.sql.SQLException;
+
+import org.apache.jena.jdbc.utils.TestUtils;
+import org.junit.Rule;
+import org.junit.rules.TemporaryFolder;
+
+import com.hp.hpl.jena.query.Dataset;
+import com.hp.hpl.jena.tdb.TDBFactory;
+
+/**
+ * Tests for result sets using a disk backed TDB dataset
+ *
+ */
+public class TestTdbDiskResultSets extends AbstractTdbResultSetTests {
+
+    /**
+     * Temporary directory rule used to guarantee a unique temporary folder for each test method
+     */
+    @Rule
+    public TemporaryFolder tempDir = new TemporaryFolder();
+
+    
+    @Override
+    protected Dataset prepareDataset(Dataset ds) throws SQLException {
+        Dataset tdb = TDBFactory.createDataset(tempDir.getRoot().getAbsolutePath());
+        TestUtils.copyDataset(ds, tdb, true);
+        return tdb;
+    }
+}

Added: jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbMemResultSets.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbMemResultSets.java?rev=1463722&view=auto
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbMemResultSets.java (added)
+++ jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/TestTdbMemResultSets.java Tue Apr  2 19:57:06 2013
@@ -0,0 +1,40 @@
+/**
+ * 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.jdbc.tdb.results;
+
+import java.sql.SQLException;
+
+import org.apache.jena.jdbc.utils.TestUtils;
+
+import com.hp.hpl.jena.query.Dataset;
+import com.hp.hpl.jena.tdb.TDBFactory;
+
+/**
+ * Tests for result sets using a in-memory TDB dataset
+ *
+ */
+public class TestTdbMemResultSets extends AbstractTdbResultSetTests {
+
+    @Override
+    protected Dataset prepareDataset(Dataset ds) throws SQLException {
+        Dataset tdb = TDBFactory.createDataset();
+        TestUtils.copyDataset(ds, tdb, true);
+        return tdb;
+    }
+}