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/31 01:16:45 UTC

svn commit: r1488047 - in /jena/Experimental/jena-jdbc/jena-jdbc-core/src: main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java

Author: rvesse
Date: Thu May 30 23:16:45 2013
New Revision: 1488047

URL: http://svn.apache.org/r1488047
Log:
Further expand tests for setObject()

Modified:
    jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java
    jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java

Modified: jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java?rev=1488047&r1=1488046&r2=1488047&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java Thu May 30 23:16:45 2013
@@ -50,6 +50,8 @@ import com.hp.hpl.jena.datatypes.xsd.XSD
 import com.hp.hpl.jena.graph.Node;
 import com.hp.hpl.jena.graph.NodeFactory;
 import com.hp.hpl.jena.query.ParameterizedSparqlString;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
 import com.hp.hpl.jena.sparql.util.NodeFactoryExtra;
 
 /**
@@ -310,6 +312,8 @@ public abstract class JenaPreparedStatem
     public void setObject(int parameterIndex, Object value) throws SQLException {
         if (value instanceof Node) {
             this.setParameter(parameterIndex, (Node) value);
+        } else if (value instanceof RDFNode) {
+            this.setParameter(parameterIndex, ((RDFNode)value).asNode());
         } else if (value instanceof String) {
             this.setParameter(parameterIndex, NodeFactory.createLiteral((String)value));
         } else if (value instanceof Boolean) {
@@ -324,10 +328,10 @@ public abstract class JenaPreparedStatem
             this.setParameter(parameterIndex, NodeFactory.createLiteral(Byte.toString((Byte)value), XSDDatatype.XSDbyte));
         } else if (value instanceof BigDecimal) {
             this.setParameter(parameterIndex, NodeFactory.createLiteral(((BigDecimal)value).toPlainString(), XSDDatatype.XSDdecimal));
-        } else if (value instanceof Double) {
-            this.setParameter(parameterIndex, NodeFactoryExtra.doubleToNode((Double)value));
         } else if (value instanceof Float) {
             this.setParameter(parameterIndex, NodeFactoryExtra.floatToNode((Float)value));
+        } else if (value instanceof Double) {
+            this.setParameter(parameterIndex, NodeFactoryExtra.doubleToNode((Double)value));
         } else if (value instanceof Date) {
             Calendar c = Calendar.getInstance();
             c.setTimeInMillis(((Date)value).getTime());

Modified: jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java?rev=1488047&r1=1488046&r2=1488047&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java Thu May 30 23:16:45 2013
@@ -20,16 +20,22 @@ package org.apache.jena.jdbc.connections
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.sql.Connection;
+import java.sql.Date;
 import java.sql.ParameterMetaData;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.sql.Statement;
+import java.sql.Time;
 import java.sql.Types;
 
+import org.apache.jena.iri.IRI;
+import org.apache.jena.iri.IRIFactory;
 import org.apache.jena.jdbc.JdbcCompatibility;
 import org.apache.jena.jdbc.connections.JenaConnection;
 import org.apache.jena.jdbc.results.metadata.AskResultsMetadata;
@@ -597,10 +603,113 @@ public abstract class AbstractJenaConnec
         JenaConnection conn = this.getConnection();
         JenaPreparedStatement stmt = (JenaPreparedStatement) conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
         
+        stmt.setObject(1, 12.3f);
+        ParameterizedSparqlString pss = stmt.getParameterizedString();
+        Assert.assertTrue(pss.toString().contains("12.3"));
+        Assert.assertTrue(pss.toString().contains(XSDDatatype.XSDfloat.getURI()));
+    }
+    
+    /**
+     * Tests that the various set methods of {@link JenaPreparedStatement} function correctly
+     * @throws SQLException
+     */
+    @Test
+    public void connection_prepared_statement_setters_08() throws SQLException {
+        JenaConnection conn = this.getConnection();
+        JenaPreparedStatement stmt = (JenaPreparedStatement) conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+        
+        stmt.setObject(1, 12.3d);
+        ParameterizedSparqlString pss = stmt.getParameterizedString();
+        Assert.assertTrue(pss.toString().contains("12.3"));
+    }
+    
+    /**
+     * Tests that the various set methods of {@link JenaPreparedStatement} function correctly
+     * @throws SQLException
+     */
+    @Test
+    public void connection_prepared_statement_setters_09() throws SQLException {
+        JenaConnection conn = this.getConnection();
+        JenaPreparedStatement stmt = (JenaPreparedStatement) conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+        
         stmt.setObject(1, true);
         ParameterizedSparqlString pss = stmt.getParameterizedString();
         Assert.assertTrue(pss.toString().contains("true"));
     }
+    
+    /**
+     * Tests that the various set methods of {@link JenaPreparedStatement} function correctly
+     * @throws SQLException
+     */
+    @Test
+    public void connection_prepared_statement_setters_10() throws SQLException {
+        JenaConnection conn = this.getConnection();
+        JenaPreparedStatement stmt = (JenaPreparedStatement) conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+        
+        stmt.setObject(1, new Date(0));
+        ParameterizedSparqlString pss = stmt.getParameterizedString();
+        Assert.assertTrue(pss.toString().contains(XSDDatatype.XSDdate.getURI()));
+    }
+    
+    /**
+     * Tests that the various set methods of {@link JenaPreparedStatement} function correctly
+     * @throws SQLException
+     */
+    @Test
+    public void connection_prepared_statement_setters_11() throws SQLException {
+        JenaConnection conn = this.getConnection();
+        JenaPreparedStatement stmt = (JenaPreparedStatement) conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+        
+        stmt.setObject(1, new Time(0));
+        ParameterizedSparqlString pss = stmt.getParameterizedString();
+        Assert.assertTrue(pss.toString().contains(XSDDatatype.XSDtime.getURI()));
+    }
+    
+    /**
+     * Tests that the various set methods of {@link JenaPreparedStatement} function correctly
+     * @throws SQLException
+     * @throws MalformedURLException 
+     */
+    @Test
+    public void connection_prepared_statement_setters_12() throws SQLException, MalformedURLException {
+        JenaConnection conn = this.getConnection();
+        JenaPreparedStatement stmt = (JenaPreparedStatement) conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+        
+        stmt.setObject(1, new URL("http://example.org"));
+        ParameterizedSparqlString pss = stmt.getParameterizedString();
+        Assert.assertTrue(pss.toString().contains("<http://example.org>"));
+    }
+    
+    /**
+     * Tests that the various set methods of {@link JenaPreparedStatement} function correctly
+     * @throws SQLException
+     * @throws MalformedURLException 
+     * @throws URISyntaxException 
+     */
+    @Test
+    public void connection_prepared_statement_setters_13() throws SQLException, MalformedURLException, URISyntaxException {
+        JenaConnection conn = this.getConnection();
+        JenaPreparedStatement stmt = (JenaPreparedStatement) conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+        
+        stmt.setObject(1, new URI("http://example.org"));
+        ParameterizedSparqlString pss = stmt.getParameterizedString();
+        Assert.assertTrue(pss.toString().contains("<http://example.org>"));
+    }
+    
+    /**
+     * Tests that the various set methods of {@link JenaPreparedStatement} function correctly
+     * @throws SQLException
+     * @throws MalformedURLException 
+     */
+    @Test
+    public void connection_prepared_statement_setters_14() throws SQLException {
+        JenaConnection conn = this.getConnection();
+        JenaPreparedStatement stmt = (JenaPreparedStatement) conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+        
+        stmt.setObject(1, IRIFactory.iriImplementation().create("http://example.org"));
+        ParameterizedSparqlString pss = stmt.getParameterizedString();
+        Assert.assertTrue(pss.toString().contains("<http://example.org>"));
+    }
 
     /**
      * Runs a SELECT query on a non-empty database with max rows set and checks