Skip to content

Commit 8183d08

Browse files
authored
chore(bigquery-jdbc): move all tests to junit5 (#13279)
1 parent 928140c commit 8183d08

10 files changed

Lines changed: 148 additions & 116 deletions

File tree

java-bigquery-jdbc/pom.xml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -323,11 +323,7 @@
323323
</dependency>
324324

325325
<!-- Test Dependencies -->
326-
<dependency>
327-
<groupId>junit</groupId>
328-
<artifactId>junit</artifactId>
329-
<scope>test</scope>
330-
</dependency>
326+
331327
<dependency>
332328
<groupId>com.google.truth</groupId>
333329
<artifactId>truth</artifactId>

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ public class BigQueryConnection extends BigQueryNoOpsConnection {
207207
String partnerToken;
208208
DatabaseMetaData databaseMetaData;
209209
Boolean reqGoogleDriveScope;
210+
private final Properties clientInfo = new Properties();
210211
private boolean isReadOnlyTokenUsed = false;
211212

212213
BigQueryConnection(String url) throws IOException {
@@ -762,27 +763,40 @@ public void abort(Executor executor) throws SQLException {
762763

763764
@Override
764765
public void setClientInfo(String name, String value) {
765-
// no-op
766+
if (value == null) {
767+
this.clientInfo.remove(name);
768+
} else {
769+
this.clientInfo.setProperty(name, value);
770+
}
766771
}
767772

768773
@Override
769774
public String getClientInfo(String name) {
770-
return null;
775+
return this.clientInfo.getProperty(name);
771776
}
772777

773778
@Override
774779
public String getCatalog() {
775780
return this.catalog;
776781
}
777782

783+
@Override
784+
public String nativeSQL(String sql) throws SQLException {
785+
checkClosed();
786+
return sql;
787+
}
788+
778789
@Override
779790
public Properties getClientInfo() {
780-
return null;
791+
return this.clientInfo;
781792
}
782793

783794
@Override
784795
public void setClientInfo(Properties properties) {
785-
// no-op
796+
this.clientInfo.clear();
797+
if (properties != null) {
798+
this.clientInfo.putAll(properties);
799+
}
786800
}
787801

788802
@Override

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPreparedStatement.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,13 @@ public void setTime(int parameterIndex, Time x) throws SQLException {
219219
@Override
220220
public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException {
221221
checkClosed();
222-
this.parameterHandler.setParameter(parameterIndex, x.toString(), String.class);
222+
if (x == null) {
223+
this.parameterHandler.setParameter(parameterIndex, null, String.class);
224+
return;
225+
}
226+
Timestamp copy = new Timestamp(x.getTime());
227+
copy.setNanos((x.getNanos() / 1000) * 1000);
228+
this.parameterHandler.setParameter(parameterIndex, copy.toString(), String.class);
223229
}
224230

225231
@Override

java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java

Lines changed: 52 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
import java.util.Properties;
5858
import java.util.Random;
5959
import java.util.function.BiFunction;
60-
import org.junit.Assert;
6160
import org.junit.jupiter.api.AfterAll;
6261
import org.junit.jupiter.api.Assertions;
6362
import org.junit.jupiter.api.BeforeAll;
@@ -121,29 +120,27 @@ public void testValidAllDataTypesSerializationFromSelectQueryArrowDataset() thro
121120
Connection connection = DriverManager.getConnection(connection_uri);
122121
Statement statement = connection.createStatement();
123122
ResultSet resultSet = statement.executeQuery(selectQuery);
124-
Assert.assertNotNull(resultSet);
123+
assertNotNull(resultSet);
125124

126125
ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
127126
resultSet.next();
128-
Assert.assertEquals(15, resultSetMetaData.getColumnCount());
129-
Assert.assertTrue(resultSet.getBoolean(1));
130-
Assert.assertEquals(33, resultSet.getInt(2));
131-
Assert.assertEquals(50.05f, resultSet.getFloat(3), 0.0);
132-
Assert.assertEquals(123.456, resultSet.getDouble(4), 0.0);
133-
Assert.assertEquals(123.456789, resultSet.getDouble(5), 0.0);
134-
Assert.assertEquals("testString", resultSet.getString(6));
135-
Assert.assertEquals("Test String", new String(resultSet.getBytes(7), StandardCharsets.UTF_8));
136-
Assert.assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356"), resultSet.getObject(10));
137-
Assert.assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356"), resultSet.getTimestamp(10));
138-
Assert.assertEquals(Date.valueOf("2019-1-12"), resultSet.getObject(11));
139-
Assert.assertEquals(Date.valueOf("2019-1-12"), resultSet.getDate(11));
140-
Assert.assertEquals(Time.valueOf("14:00:00"), resultSet.getObject(12));
141-
Assert.assertEquals(Time.valueOf("14:00:00"), resultSet.getTime(12));
142-
Assert.assertEquals(Timestamp.valueOf("2022-01-22 22:22:12.142265"), resultSet.getObject(13));
143-
Assert.assertEquals("POINT(1 2)", resultSet.getString(14));
144-
Assert.assertEquals(
145-
"{\"class\":{\"students\":[{\"name\":\"Jane\"}]}}", resultSet.getString(15));
146-
connection.close();
127+
assertEquals(15, resultSetMetaData.getColumnCount());
128+
assertTrue(resultSet.getBoolean(1));
129+
assertEquals(33, resultSet.getInt(2));
130+
assertEquals(50.05f, resultSet.getFloat(3), 0.0);
131+
assertEquals(123.456, resultSet.getDouble(4), 0.0);
132+
assertEquals(123.456789, resultSet.getDouble(5), 0.0);
133+
assertEquals("testString", resultSet.getString(6));
134+
assertEquals("Test String", new String(resultSet.getBytes(7), StandardCharsets.UTF_8));
135+
assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356"), resultSet.getObject(10));
136+
assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356"), resultSet.getTimestamp(10));
137+
assertEquals(Date.valueOf("2019-1-12"), resultSet.getObject(11));
138+
assertEquals(Date.valueOf("2019-1-12"), resultSet.getDate(11));
139+
assertEquals(Time.valueOf("14:00:00"), resultSet.getObject(12));
140+
assertEquals(Time.valueOf("14:00:00"), resultSet.getTime(12));
141+
assertEquals(Timestamp.valueOf("2022-01-22 22:22:12.142265"), resultSet.getObject(13));
142+
assertEquals("POINT(1 2)", resultSet.getString(14));
143+
assertEquals("{\"class\":{\"students\":[{\"name\":\"Jane\"}]}}", resultSet.getString(15));
147144
connection.close();
148145
}
149146

@@ -162,7 +159,7 @@ public void testFastQueryPathEmpty() throws SQLException {
162159
DriverManager.getConnection(String.format(connectionUrl, DEFAULT_CATALOG));
163160
Statement bigQueryStatement = connection.createStatement();
164161
ResultSet jsonResultSet = bigQueryStatement.executeQuery(query);
165-
Assert.assertEquals(0, resultSetRowCount(jsonResultSet));
162+
assertEquals(0, resultSetRowCount(jsonResultSet));
166163
connection.close();
167164
}
168165

@@ -214,10 +211,10 @@ public void testIterateOrderArrowMultiThread() throws SQLException {
214211
while (rs.next()) {
215212
double tripDis = rs.getDouble("trip_distance");
216213
++cnt;
217-
Assert.assertTrue(oldTriDis <= tripDis);
214+
assertTrue(oldTriDis <= tripDis);
218215
oldTriDis = tripDis;
219216
}
220-
Assert.assertEquals(expectedCnt, cnt); // all the records were retrieved
217+
assertEquals(expectedCnt, cnt); // all the records were retrieved
221218
connection.close();
222219
}
223220

@@ -235,7 +232,7 @@ public void testReadAPIPathLarge() throws SQLException {
235232
int expectedCnt = 5000;
236233
String longQuery = String.format(BASE_QUERY, expectedCnt);
237234
ResultSet arrowResultSet = statement.executeQuery(longQuery);
238-
Assert.assertEquals(expectedCnt, resultSetRowCount(arrowResultSet));
235+
assertEquals(expectedCnt, resultSetRowCount(arrowResultSet));
239236
arrowResultSet.close();
240237
connection.close();
241238
}
@@ -252,7 +249,7 @@ public void testReadAPIPathLargeWithThresholdParameters() throws SQLException {
252249
int expectedCnt = 1000;
253250
String longQuery = String.format(BASE_QUERY, expectedCnt);
254251
ResultSet arrowResultSet = statement.executeQuery(longQuery);
255-
Assert.assertEquals(expectedCnt, resultSetRowCount(arrowResultSet));
252+
assertEquals(expectedCnt, resultSetRowCount(arrowResultSet));
256253
arrowResultSet.close();
257254
connection.close();
258255
}
@@ -269,7 +266,7 @@ public void testReadAPIPathLargeWithThresholdNotMet() throws SQLException {
269266
int expectedCnt = 5000;
270267
String longQuery = String.format(BASE_QUERY, expectedCnt);
271268
ResultSet arrowResultSet = statement.executeQuery(longQuery);
272-
Assert.assertEquals(expectedCnt, resultSetRowCount(arrowResultSet));
269+
assertEquals(expectedCnt, resultSetRowCount(arrowResultSet));
273270
arrowResultSet.close();
274271
connection.close();
275272
}
@@ -285,12 +282,12 @@ public void testStatelessQueryPathSmall() throws SQLException {
285282

286283
String query = "SELECT DISTINCT word FROM `bigquery-public-data.samples.shakespeare` LIMIT 850";
287284
ResultSet jsonResultSet = statement.executeQuery(query);
288-
Assert.assertEquals(850, resultSetRowCount(jsonResultSet));
285+
assertEquals(850, resultSetRowCount(jsonResultSet));
289286

290287
String queryEmpty =
291288
"SELECT DISTINCT word FROM `bigquery-public-data.samples.shakespeare` LIMIT 0";
292289
ResultSet jsonResultSetEmpty = statement.executeQuery(queryEmpty);
293-
Assert.assertEquals(0, resultSetRowCount(jsonResultSetEmpty));
290+
assertEquals(0, resultSetRowCount(jsonResultSetEmpty));
294291
connectionUseStateless.close();
295292
}
296293

@@ -583,16 +580,16 @@ public void testRollbackOnConnectionClosed() throws SQLException {
583580
Statement statement = connection.createStatement();
584581

585582
boolean status = statement.execute(insertQuery);
586-
Assert.assertFalse(status);
583+
assertFalse(status);
587584
int rows = statement.executeUpdate(updateQuery);
588-
Assert.assertEquals(1, rows);
585+
assertEquals(1, rows);
589586
status = statement.execute(selectQuery);
590-
Assert.assertTrue(status);
587+
assertTrue(status);
591588
connection.close();
592589

593590
// Separate query to check if transaction rollback worked
594591
ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery);
595-
Assert.assertFalse(resultSet.next());
592+
assertFalse(resultSet.next());
596593

597594
bigQueryStatement.execute(
598595
String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE));
@@ -652,16 +649,16 @@ public void testMultiStatementTransactionRollbackByUser() throws SQLException {
652649
Statement statement = connection.createStatement();
653650

654651
boolean status = statement.execute(insertQuery);
655-
Assert.assertFalse(status);
652+
assertFalse(status);
656653
int rows = statement.executeUpdate(updateQuery);
657-
Assert.assertEquals(1, rows);
654+
assertEquals(1, rows);
658655
status = statement.execute(selectQuery);
659-
Assert.assertTrue(status);
656+
assertTrue(status);
660657
connection.rollback();
661658

662659
// Separate query to check if transaction rollback worked
663660
ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery);
664-
Assert.assertFalse(resultSet.next());
661+
assertFalse(resultSet.next());
665662

666663
bigQueryStatement.execute(
667664
String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE));
@@ -711,10 +708,10 @@ public void testSingleStatementTransaction() throws SQLException {
711708
while (hasMoreResult || statement.getUpdateCount() != -1) {
712709
if (statement.getUpdateCount() == -1) {
713710
ResultSet result = statement.getResultSet();
714-
Assert.assertTrue(result.next());
715-
Assert.assertEquals(-1, statement.getUpdateCount());
711+
assertTrue(result.next());
712+
assertEquals(-1, statement.getUpdateCount());
716713
} else {
717-
Assert.assertTrue(statement.getUpdateCount() > -1);
714+
assertTrue(statement.getUpdateCount() > -1);
718715
}
719716
hasMoreResult = statement.getMoreResults();
720717
resultsCount++;
@@ -725,9 +722,9 @@ public void testSingleStatementTransaction() throws SQLException {
725722
int rowCount = 0;
726723
while (resultSet.next()) {
727724
rowCount++;
728-
Assert.assertEquals(14, resultSet.getInt(3));
725+
assertEquals(14, resultSet.getInt(3));
729726
}
730-
Assert.assertEquals(2, rowCount);
727+
assertEquals(2, rowCount);
731728

732729
bigQueryStatement.execute(
733730
String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE));
@@ -801,15 +798,15 @@ public void testMultiStatementTransactionDoesNotCommitWithoutCommit() throws SQL
801798
Statement statement = connection.createStatement();
802799

803800
boolean status = statement.execute(insertQuery);
804-
Assert.assertFalse(status);
801+
assertFalse(status);
805802
int rows = statement.executeUpdate(updateQuery);
806-
Assert.assertEquals(1, rows);
803+
assertEquals(1, rows);
807804
status = statement.execute(selectQuery);
808-
Assert.assertTrue(status);
805+
assertTrue(status);
809806

810807
// Separate query to check nothing committed
811808
ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery);
812-
Assert.assertFalse(resultSet.next());
809+
assertFalse(resultSet.next());
813810

814811
bigQueryStatement.execute(
815812
String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE));
@@ -843,17 +840,17 @@ public void testValidMultiStatementTransactionCommits() throws SQLException {
843840
Statement statement = connection.createStatement();
844841

845842
boolean status = statement.execute(insertQuery);
846-
Assert.assertFalse(status);
843+
assertFalse(status);
847844
status = statement.execute(updateQuery);
848-
Assert.assertFalse(status);
845+
assertFalse(status);
849846
status = statement.execute(selectQuery);
850-
Assert.assertTrue(status);
847+
assertTrue(status);
851848
connection.commit();
852849

853850
// Separate query to check inserted and updated data committed
854851
ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery);
855-
Assert.assertTrue(resultSet.next());
856-
Assert.assertEquals(14, resultSet.getInt(3));
852+
assertTrue(resultSet.next());
853+
assertEquals(14, resultSet.getInt(3));
857854

858855
bigQueryStatement.execute(
859856
String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE));
@@ -898,7 +895,7 @@ public void testTransactionRollbackOnError() throws SQLException {
898895

899896
// do a check to see if no vals inserted
900897
ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery);
901-
Assert.assertFalse(resultSet.next());
898+
assertFalse(resultSet.next());
902899

903900
bigQueryStatement.execute(
904901
String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE));
@@ -1744,7 +1741,7 @@ public void testNonEnabledUseLegacySQLThrowsSyntaxError() throws SQLException {
17441741
Statement statement = connection.createStatement();
17451742

17461743
// act & assertion
1747-
Assert.assertThrows(SQLException.class, () -> statement.execute(selectLegacyQuery));
1744+
assertThrows(SQLException.class, () -> statement.execute(selectLegacyQuery));
17481745
connection.close();
17491746
}
17501747

@@ -1766,7 +1763,7 @@ public void testUseLegacySQLWithLargeResultsNotAllowedQueries() throws SQLExcept
17661763
ResultSet resultSet = statement.executeQuery(selectLegacyQuery);
17671764

17681765
// assertion
1769-
Assert.assertNotNull(resultSet);
1766+
assertNotNull(resultSet);
17701767
connection.close();
17711768
}
17721769

@@ -1854,7 +1851,7 @@ public void testUseLegacySQLWithLargeResultsAllowedWithNoDestinationTableDefault
18541851
ResultSet resultSet = statement.executeQuery(selectLegacyQuery);
18551852

18561853
// assertion
1857-
Assert.assertNotNull(resultSet);
1854+
assertNotNull(resultSet);
18581855
connection.close();
18591856
}
18601857

0 commit comments

Comments
 (0)