@@ -32,27 +32,29 @@ public class JDBCDriverTest {
3232 public boolean performTestForCharacterSet ;
3333 @ Parameter (3 )
3434 public boolean performTestForCustomIniFile ;
35+ @ Parameter (4 )
36+ public boolean performTestForJDBCParams ;
3537
3638 @ Parameterized .Parameters (name = "{index} - {0}" )
3739 public static Iterable <Object []> data () {
3840 return asList (
3941 new Object [][]{
40- {"jdbc:tc:mysql:5.5.43://hostname/databasename" , false , false , false },
41- {"jdbc:tc:mysql://hostname/databasename?user=someuser&password=somepwd&TC_INITSCRIPT=somepath/init_mysql.sql" , true , false , false },
42- {"jdbc:tc:mysql://hostname/databasename?user=someuser&password=somepwd&TC_INITFUNCTION=org.testcontainers.jdbc.JDBCDriverTest::sampleInitFunction" , true , false , false },
43- {"jdbc:tc:mysql://hostname/databasename?TC_INITSCRIPT=somepath/init_mysql.sql" , true , false , false },
44- {"jdbc:tc:mysql://hostname/databasename?TC_INITFUNCTION=org.testcontainers.jdbc.JDBCDriverTest::sampleInitFunction" , true , false , false },
45- {"jdbc:tc:mysql://hostname/databasename?useUnicode=yes&characterEncoding=utf8" , false , true , false },
46- {"jdbc:tc:mysql://hostname/databasename" , false , false , false },
47- {"jdbc:tc:mysql://hostname/databasename?useSSL=false" , false , false , false },
48- {"jdbc:tc:postgresql://hostname/databasename" , false , false , false },
49- {"jdbc:tc:mysql:5.6://hostname/databasename?TC_MY_CNF=somepath/mysql_conf_override" , false , false , true },
50- {"jdbc:tc:mariadb:10.1.16://hostname/databasename" , false , false , false },
51- {"jdbc:tc:mariadb://hostname/databasename" , false , false , false },
52- {"jdbc:tc:mariadb://hostname/databasename?useUnicode=yes&characterEncoding=utf8" , false , true , false },
53- {"jdbc:tc:mariadb://hostname/databasename?TC_INITSCRIPT=somepath/init_mariadb.sql" , true , false , false },
54- {"jdbc:tc:mariadb://hostname/databasename?TC_INITFUNCTION=org.testcontainers.jdbc.JDBCDriverTest::sampleInitFunction" , true , false , false },
55- {"jdbc:tc:mariadb:10.1.16://hostname/databasename?TC_MY_CNF=somepath/mariadb_conf_override" , false , false , true }
42+ {"jdbc:tc:mysql:5.5.43://hostname/databasename" , false , false , false , false },
43+ {"jdbc:tc:mysql://hostname/databasename?user=someuser&password=somepwd&TC_INITSCRIPT=somepath/init_mysql.sql" , true , false , false , true },
44+ {"jdbc:tc:mysql://hostname/databasename?user=someuser&password=somepwd&TC_INITFUNCTION=org.testcontainers.jdbc.JDBCDriverTest::sampleInitFunction" , true , false , false , true },
45+ {"jdbc:tc:mysql://hostname/databasename?user=someuser&password=somepwd& TC_INITSCRIPT=somepath/init_mysql.sql" , true , false , false , true },
46+ {"jdbc:tc:mysql://hostname/databasename?user=someuser&password=somepwd& TC_INITFUNCTION=org.testcontainers.jdbc.JDBCDriverTest::sampleInitFunction" , true , false , false , true },
47+ {"jdbc:tc:mysql://hostname/databasename?useUnicode=yes&characterEncoding=utf8" , false , true , false , false },
48+ {"jdbc:tc:mysql://hostname/databasename" , false , false , false , false },
49+ {"jdbc:tc:mysql://hostname/databasename?useSSL=false" , false , false , false , false },
50+ {"jdbc:tc:postgresql://hostname/databasename" , false , false , false , false },
51+ {"jdbc:tc:mysql:5.6://hostname/databasename?TC_MY_CNF=somepath/mysql_conf_override" , false , false , true , false },
52+ {"jdbc:tc:mariadb:10.1.16://hostname/databasename" , false , false , false , false },
53+ {"jdbc:tc:mariadb://hostname/databasename" , false , false , false , false },
54+ {"jdbc:tc:mariadb://hostname/databasename?useUnicode=yes&characterEncoding=utf8" , false , true , false , false },
55+ {"jdbc:tc:mariadb://hostname/databasename?TC_INITSCRIPT=somepath/init_mariadb.sql" , true , false , false , false },
56+ {"jdbc:tc:mariadb://hostname/databasename?TC_INITFUNCTION=org.testcontainers.jdbc.JDBCDriverTest::sampleInitFunction" , true , false , false , false },
57+ {"jdbc:tc:mariadb:10.1.16://hostname/databasename?TC_MY_CNF=somepath/mariadb_conf_override" , false , false , true , false }
5658 });
5759 }
5860
@@ -79,6 +81,10 @@ public void test() throws SQLException {
7981 performTestForScriptedSchema (jdbcUrl );
8082 }
8183
84+ if (performTestForJDBCParams ) {
85+ performTestForJDBCParamUsage (jdbcUrl );
86+ }
87+
8288 if (performTestForCharacterSet ) {
8389 //Called twice to ensure that the query string parameters are used when
8490 //connections are created from cached containers.
@@ -112,8 +118,12 @@ private void performTestForScriptedSchema(String jdbcUrl) throws SQLException {
112118 assertEquals ("A basic SELECT query succeeds where the schema has been applied from a script" , "hello world" , resultSetString );
113119 return true ;
114120 });
121+ }
122+ }
115123
116- result = new QueryRunner (dataSource ).query ("select CURRENT_USER()" , rs -> {
124+ private void performTestForJDBCParamUsage (String jdbcUrl ) throws SQLException {
125+ try (HikariDataSource dataSource = getDataSource (jdbcUrl , 1 )) {
126+ boolean result = new QueryRunner (dataSource ).query ("select CURRENT_USER()" , rs -> {
117127 rs .next ();
118128 String resultUser = rs .getString (1 );
119129 assertEquals ("User from query param is created." , "someuser@%" , resultUser );
0 commit comments