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/05/02 01:53:58 UTC
svn commit: r1478236 - in /jena/Experimental/jena-jdbc:
jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/
jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/
jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/results/
jena-jdbc...
Author: rvesse
Date: Wed May 1 23:53:58 2013
New Revision: 1478236
URL: http://svn.apache.org/r1478236
Log:
Start expanding result set manipulation tests, fix a piece of incorrectly reported metadata
Modified:
jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/StreamedResults.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/results/AbstractMemResultSetTests.java
jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResults.java
jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResultsWithGraphUris.java
jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/AbstractTdbResultSetTests.java
Modified: jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/StreamedResults.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/StreamedResults.java?rev=1478236&r1=1478235&r2=1478236&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/StreamedResults.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/StreamedResults.java Wed May 1 23:53:58 2013
@@ -36,7 +36,6 @@ import com.hp.hpl.jena.query.QueryExecut
public abstract class StreamedResults<T> extends QueryExecutionResults {
private T currItem;
- private boolean started = false;
private boolean finished = false;
private int currRow = 0;
@@ -146,7 +145,7 @@ public abstract class StreamedResults<T>
if (this.isClosed())
throw new SQLException("Result Set is closed");
// If we've started throw an error as we can't move backwards
- if (started)
+ if (this.currRow > 0)
throw new SQLException(
"Jena JDBC result sets are forward only, can't move to before the start of the result set after navigation through the result set has begun");
// Otherwise OK
@@ -166,7 +165,7 @@ public abstract class StreamedResults<T>
public final boolean first() throws SQLException {
if (this.isClosed())
throw new SQLException("Result Set is closed");
- if (this.started && this.currRow == 1)
+ if (this.currRow == 1)
return true;
throw new SQLException(
"Jena JDBC result sets are forward only, can't move backwards to the first row after the first row has been passed");
@@ -205,7 +204,7 @@ public abstract class StreamedResults<T>
public final boolean isBeforeFirst() throws SQLException {
if (this.isClosed())
throw new SQLException("Result Set is closed");
- return !this.started;
+ return this.currRow == 0;
}
@Override
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=1478236&r1=1478235&r2=1478236&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 Wed May 1 23:53:58 2013
@@ -123,6 +123,8 @@ public abstract class AbstractResultSetT
protected abstract ResultSet createResults(Dataset ds, String query) throws SQLException;
+ protected abstract ResultSet createResults(Dataset ds, String query, int resultSetType) throws SQLException;
+
protected String getIntegerTypeUri() {
return XSD.xint.toString();
}
@@ -815,4 +817,88 @@ public abstract class AbstractResultSetT
rset.close();
Assert.assertTrue(rset.isClosed());
}
+
+ /**
+ * Tests movement through SELECT results
+ *
+ * @throws SQLException
+ */
+ @Test
+ public void test_results_select_movement_01() throws SQLException {
+ ResultSet rset = this.createResults(ds, "SELECT * { ?s ?p ?o . } LIMIT 1", ResultSet.TYPE_FORWARD_ONLY);
+ Assert.assertEquals(ResultSet.TYPE_FORWARD_ONLY, rset.getType());
+ Assert.assertNotNull(rset);
+ Assert.assertFalse(rset.isClosed());
+ Assert.assertTrue(rset.isBeforeFirst());
+ Assert.assertFalse(rset.isLast());
+
+ // Expect exactly one row we can move to
+ Assert.assertTrue(rset.next());
+ Assert.assertFalse(rset.isAfterLast());
+ Assert.assertTrue(rset.isLast());
+ Assert.assertFalse(rset.next());
+
+ Assert.assertTrue(rset.isAfterLast());
+ rset.close();
+ Assert.assertTrue(rset.isClosed());
+ }
+
+ /**
+ * Tests movement through SELECT results
+ *
+ * @throws SQLException
+ */
+ @Test
+ public void test_results_select_movement_02() throws SQLException {
+ ResultSet rset = this.createResults(ds, "SELECT * { ?s ?p ?o . } LIMIT 1", ResultSet.TYPE_FORWARD_ONLY);
+ Assert.assertEquals(ResultSet.TYPE_FORWARD_ONLY, rset.getType());
+ Assert.assertNotNull(rset);
+ Assert.assertFalse(rset.isClosed());
+ Assert.assertTrue(rset.isBeforeFirst());
+ Assert.assertFalse(rset.isLast());
+
+ // Expect exactly one row we can move to
+ Assert.assertTrue(rset.next());
+ Assert.assertFalse(rset.isAfterLast());
+ Assert.assertTrue(rset.isLast());
+ Assert.assertFalse(rset.next());
+
+ // Attempting to move backwards in a forwards only result set should result in an error
+ try {
+ rset.beforeFirst();
+ Assert.fail("Should not be permitted to move backwards in a FORWARD_ONLY result set");
+ } catch (SQLException e) {
+ // Expected
+ } finally {
+
+ Assert.assertTrue(rset.isAfterLast());
+ rset.close();
+ Assert.assertTrue(rset.isClosed());
+ }
+ }
+
+ /**
+ * Tests movement through SELECT results
+ *
+ * @throws SQLException
+ */
+ @Test
+ public void test_results_select_movement_04() throws SQLException {
+ ResultSet rset = this.createResults(ds, "SELECT * { ?s ?p ?o . } LIMIT 1", ResultSet.TYPE_FORWARD_ONLY);
+ Assert.assertEquals(ResultSet.TYPE_FORWARD_ONLY, rset.getType());
+ Assert.assertNotNull(rset);
+ Assert.assertFalse(rset.isClosed());
+ Assert.assertTrue(rset.isBeforeFirst());
+ Assert.assertFalse(rset.isLast());
+
+ // Can move forwards to last row
+ Assert.assertTrue(rset.last());
+ Assert.assertFalse(rset.isAfterLast());
+ Assert.assertTrue(rset.isLast());
+ Assert.assertFalse(rset.next());
+
+ Assert.assertTrue(rset.isAfterLast());
+ rset.close();
+ Assert.assertTrue(rset.isClosed());
+ }
}
Modified: jena/Experimental/jena-jdbc/jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/results/AbstractMemResultSetTests.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/results/AbstractMemResultSetTests.java?rev=1478236&r1=1478235&r2=1478236&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/results/AbstractMemResultSetTests.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-driver-mem/src/test/java/org/apache/jena/jdbc/mem/results/AbstractMemResultSetTests.java Wed May 1 23:53:58 2013
@@ -67,8 +67,13 @@ public abstract class AbstractMemResultS
@Override
protected final ResultSet createResults(Dataset ds, String query) throws SQLException {
+ return createResults(ds, query, ResultSet.TYPE_FORWARD_ONLY);
+ }
+
+ @Override
+ protected final ResultSet createResults(Dataset ds, String query, int resultSetType) throws SQLException {
connection.setJenaDataset(this.prepareDataset(ds));
- Statement stmt = connection.createStatement();
+ Statement stmt = connection.createStatement(resultSetType, ResultSet.CONCUR_READ_ONLY);
return stmt.executeQuery(query);
}
}
\ No newline at end of file
Modified: jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResults.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResults.java?rev=1478236&r1=1478235&r2=1478236&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResults.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResults.java Wed May 1 23:53:58 2013
@@ -75,8 +75,13 @@ public class TestRemoteEndpointResults e
@Override
protected ResultSet createResults(Dataset ds, String query) throws SQLException {
+ return createResults(ds, query, ResultSet.TYPE_FORWARD_ONLY);
+ }
+
+ @Override
+ protected ResultSet createResults(Dataset ds, String query, int resultSetType) throws SQLException {
TestUtils.copyToRemoteDataset(ds, BaseServerTest.serviceREST);
- Statement stmt = connection.createStatement();
+ Statement stmt = connection.createStatement(resultSetType, ResultSet.CONCUR_READ_ONLY);
return stmt.executeQuery(query);
}
}
Modified: jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResultsWithGraphUris.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResultsWithGraphUris.java?rev=1478236&r1=1478235&r2=1478236&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResultsWithGraphUris.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/test/java/org/apache/jena/jdbc/remote/results/TestRemoteEndpointResultsWithGraphUris.java Wed May 1 23:53:58 2013
@@ -85,9 +85,16 @@ public class TestRemoteEndpointResultsWi
@Override
protected ResultSet createResults(Dataset ds, String query) throws SQLException {
+ return createResults(ds, query, ResultSet.TYPE_FORWARD_ONLY);
+ }
+
+ @Override
+ protected ResultSet createResults(Dataset ds, String query, int resultSetType) throws SQLException {
ds = TestUtils.renameGraph(ds, null, DEFAULT_GRAPH_URI);
TestUtils.copyToRemoteDataset(ds, BaseServerTest.serviceREST);
- Statement stmt = connection.createStatement();
+ Statement stmt = connection.createStatement(resultSetType, ResultSet.CONCUR_READ_ONLY);
return stmt.executeQuery(query);
}
+
+
}
Modified: 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=1478236&r1=1478235&r2=1478236&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/AbstractTdbResultSetTests.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-driver-tdb/src/test/java/org/apache/jena/jdbc/tdb/results/AbstractTdbResultSetTests.java Wed May 1 23:53:58 2013
@@ -68,8 +68,13 @@ public abstract class AbstractTdbResultS
@Override
protected final ResultSet createResults(Dataset ds, String query) throws SQLException {
+ return createResults(ds, query, ResultSet.TYPE_FORWARD_ONLY);
+ }
+
+ @Override
+ protected final ResultSet createResults(Dataset ds, String query, int resultSetType) throws SQLException {
connection.setJenaDataset(this.prepareDataset(ds));
- Statement stmt = connection.createStatement();
+ Statement stmt = connection.createStatement(resultSetType, ResultSet.CONCUR_READ_ONLY);
return stmt.executeQuery(query);
}