Changeset: d2a2ad52310e for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/d2a2ad52310e
Modified Files:
        src/test/java/JDBC_API_Tester.java
        src/test/java/org/monetdb/jdbc/ApiTests.java
Branch: default
Log Message:

Convert Test_Int128() -> ApiTests#testInt128()


diffs (158 lines):

diff --git a/src/test/java/JDBC_API_Tester.java 
b/src/test/java/JDBC_API_Tester.java
--- a/src/test/java/JDBC_API_Tester.java
+++ b/src/test/java/JDBC_API_Tester.java
@@ -1025,91 +1025,6 @@ public final class JDBC_API_Tester exten
        }
 
        @Test
-       public void Test_Int128() {
-               sb.setLength(0);        // clear the output log buffer
-
-               Statement stmt = null;
-               ResultSet rs = null;
-
-               // check first if datatype hugeint is supported on this server
-               boolean supportsHugeInt = false;
-               try {
-                       stmt = con.createStatement();
-                       // query sys.types to find out if sql datatype hugeint 
is supported
-                       rs = stmt.executeQuery("SELECT sqlname from sys.types 
where sqlname = 'hugeint';");
-                       if (rs != null) {
-                               if (rs.next()) {
-                                       if ("hugeint".equals(rs.getString(1)))
-                                               supportsHugeInt = true;
-                               }
-                               rs.close();
-                               rs = null;
-                       }
-               } catch (SQLException e) {
-                       sb.append("FAILED: 
").append(e.getMessage()).append("\n");
-               }
-
-               if (!supportsHugeInt) {
-                       closeStmtResSet(stmt, rs);
-                       compareExpectedOutput("Test_Int128", "");
-                       return; // skip the rest of the test
-               }
-
-               // test whether we can represent a full-size int128 as JDBC 
results
-               PreparedStatement insertStatement = null;
-               try {
-                       stmt.executeUpdate("CREATE TABLE HUGEINTT (I HUGEINT)");
-                       stmt.executeUpdate("CREATE TABLE HUGEDECT (I 
DECIMAL(38,19))");
-
-                       BigInteger bi = new 
BigInteger("123456789012345678909876543210987654321");
-                       BigDecimal bd = new 
BigDecimal("1234567890123456789.9876543210987654321");
-
-                       insertStatement = con.prepareStatement("INSERT INTO 
HUGEINTT VALUES (?)");
-                       insertStatement.setBigDecimal(1, new BigDecimal(bi));
-                       insertStatement.executeUpdate();
-                       insertStatement.close();
-
-                       stmt.executeUpdate("INSERT INTO HUGEDECT VALUES (" + bd 
+ ");");
-
-                       rs = stmt.executeQuery("SELECT I FROM HUGEINTT");
-                       rs.next();
-                       BigInteger biRes = rs.getBigDecimal(1).toBigInteger();
-                       rs.close();
-                       sb.append("Expecting " + bi + ", got " + 
biRes).append("\n");
-                       if (!bi.equals(biRes)) {
-                               sb.append("value of bi is NOT equal to 
biRes!\n");
-                       }
-
-                       rs = stmt.executeQuery("SELECT I FROM HUGEDECT");
-                       rs.next();
-                       BigDecimal bdRes = rs.getBigDecimal(1);
-                       rs.close();
-                       sb.append("Expecting " + bd + ", got " + 
bdRes).append("\n");
-                       if (!bd.equals(bdRes)) {
-                               sb.append("value of bd is NOT equal to 
bdRes!\n");
-                       }
-               } catch (SQLException e) {
-                       sb.append("FAILED: 
").append(e.getMessage()).append("\n");
-               }
-
-               // cleanup
-               try {
-                       stmt.executeUpdate("DROP TABLE IF EXISTS HUGEINTT");
-                       stmt.executeUpdate("DROP TABLE IF EXISTS HUGEDECT");
-                       sb.append("SUCCESS\n");
-               } catch (SQLException e) {
-                       sb.append("FAILED: 
").append(e.getMessage()).append("\n");
-               }
-               closeStmtResSet(insertStatement, null);
-               closeStmtResSet(stmt, rs);
-
-               compareExpectedOutput("Test_Int128",
-                       "Expecting 123456789012345678909876543210987654321, got 
123456789012345678909876543210987654321\n" +
-                       "Expecting 1234567890123456789.9876543210987654321, got 
1234567890123456789.9876543210987654321\n" +
-                       "SUCCESS\n");
-       }
-
-       @Test
        public void Test_Interval_Types() {
                sb.setLength(0);        // clear the output log buffer
 
diff --git a/src/test/java/org/monetdb/jdbc/ApiTests.java 
b/src/test/java/org/monetdb/jdbc/ApiTests.java
--- a/src/test/java/org/monetdb/jdbc/ApiTests.java
+++ b/src/test/java/org/monetdb/jdbc/ApiTests.java
@@ -8,11 +8,14 @@ import org.monetdb.testinfra.CloseOnFail
 import org.monetdb.testinfra.Config;
 import org.monetdb.testinfra.MonetVersionNumber;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.sql.*;
 import java.util.ArrayList;
 import java.util.HashMap;
 
 import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assumptions.assumeTrue;
 import static org.monetdb.testinfra.Assertions.assertSQLException;
 
 /**
@@ -450,4 +453,44 @@ public class ApiTests {
                        assertEquals(16384, rs.getFetchSize());
                }
        }
+
+       @Test
+       public void testInt128() throws SQLException {
+               // skip if server does not have huge
+               boolean serverHasHuge = 1 == queryInt("SELECT COUNT(*) FROM 
sys.types where sqlname = 'hugeint'");
+               assumeTrue(serverHasHuge);
+
+               stmt.executeUpdate("DROP TABLE IF EXISTS test_huge_int");
+               stmt.executeUpdate("CREATE TABLE test_huge_int (i HUGEINT)");
+               stmt.executeUpdate("DROP TABLE IF EXISTS test_huge_dec");
+               stmt.executeUpdate("CREATE TABLE test_huge_dec (d 
DECIMAL(38,19))");
+
+               BigInteger bi = new 
BigInteger("123456789012345678909876543210987654321");
+               BigDecimal bd = new 
BigDecimal("1234567890123456789.9876543210987654321");
+
+               // Insert huge int using prepared statement
+               String insertQuery = "INSERT INTO test_huge_int VALUES (?)";
+               try (PreparedStatement ps = conn.prepareStatement(insertQuery)) 
{
+                       ps.setBigDecimal(1, new BigDecimal(bi));
+                       ps.executeUpdate();
+               }
+
+               // insert huge decimal using string interpolation
+               stmt.executeUpdate("INSERT INTO test_huge_dec VALUES (" + bd + 
");");
+
+               // extract them
+               try (ResultSet rs = stmt.executeQuery("SELECT * FROM 
test_huge_int")) {
+                       rs.next();
+                       BigInteger i = rs.getBigDecimal(1).toBigInteger();
+                       assertEquals(bi, i);
+               }
+               try (ResultSet rs = stmt.executeQuery("SELECT * FROM 
test_huge_dec")) {
+                       rs.next();
+                       BigDecimal d = rs.getBigDecimal(1);
+                       assertEquals(bd, d);
+               }
+
+               stmt.executeUpdate("DROP TABLE test_huge_int");
+               stmt.executeUpdate("DROP TABLE test_huge_dec");
+       }
 }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to