diff --git a/mysql-client-tests/java/MySQLConnectorTest.java b/mysql-client-tests/java/MySQLConnectorTest.java new file mode 100644 index 0000000000..e727b6c8cd --- /dev/null +++ b/mysql-client-tests/java/MySQLConnectorTest.java @@ -0,0 +1,74 @@ +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.ResultSet; + +public class MySQLConnectorTest { + public static void main(String[] args) { + Connection conn = null; + + String user = args[0]; + String port = args[1]; + String db = args[2]; + + try { + String url = "jdbc:mysql://127.0.0.1:" + port + "/" + db; + + String password = ""; + + conn = DriverManager.getConnection(url, user, password); + + Statement st = conn.createStatement(); + + String[] queries = { + "create table test (pk int, value int, primary key(pk))", + "describe test", + "select * from test", + "insert into test (pk, value) values (0,0)", + "select * from test" + }; + + // Only test the first row, column pair for now + String[] results = { + "0", + "pk", + null, + "1", + "0" + }; + + for (int i = 0; i < queries.length; i++) { + String query = queries[i]; + String expected = results[i]; + if ( st.execute(query) ) { + ResultSet rs = st.getResultSet(); + if (rs.next()) { + String result = rs.getString(1); + if ( !expected.equals(result) ) { + System.out.println("Query: \n" + query); + System.out.println("Expected:\n" + expected); + System.out.println("Result:\n" + result); + System.exit(1); + } + } + } else { + String result = Integer.toString(st.getUpdateCount()); + if ( !expected.equals(result) ) { + System.out.println("Query: \n" + query); + System.out.println("Expected:\n" + expected); + System.out.println("Rows Updated:\n" + result); + System.exit(1); + } + } + } + + System.exit(0); + + } catch (SQLException ex) { + System.out.println("An error occurred."); + ex.printStackTrace(); + System.exit(1); + } + } +} diff --git a/mysql-client-tests/mysql-client-tests.bats b/mysql-client-tests/mysql-client-tests.bats index d6188af43c..52b9fc7d47 100644 --- a/mysql-client-tests/mysql-client-tests.bats +++ b/mysql-client-tests/mysql-client-tests.bats @@ -32,3 +32,8 @@ teardown() { @test "python pymysql client" { python3 $BATS_TEST_DIRNAME/python/pymysql-test.py $USER $PORT $REPO_NAME } + +@test "mysql-connector-java client" { + javac $BATS_TEST_DIRNAME/java/MySQLConnectorTest.java + java -cp $BATS_TEST_DIRNAME/java:$BATS_TEST_DIRNAME/java/mysql-connector-java-8.0.21.jar MySQLConnectorTest $USER $PORT $REPO_NAME +}