Skip to content

Commit 7e7c54c

Browse files
committed
test: add more tests
1 parent 97f39ca commit 7e7c54c

File tree

1 file changed

+78
-11
lines changed

1 file changed

+78
-11
lines changed

src/test/java/com/google/cloud/spanner/jdbc/ExecuteMockServerTest.java

+78-11
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@
6767
*/
6868
@RunWith(Parameterized.class)
6969
public class ExecuteMockServerTest extends AbstractMockServerTest {
70+
private static final IllegalStateException REQUEST_NOT_FOUND =
71+
new IllegalStateException("request not found");
7072
private static Dialect currentDialect;
7173

7274
@Parameters(name = "dialect = {0}")
@@ -220,9 +222,27 @@ public void testStatementExecuteQuery() throws SQLException {
220222
try (ResultSet resultSet = statement.executeQuery(query)) {
221223
verifyResultSet(resultSet);
222224
}
225+
ExecuteSqlRequest request =
226+
mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream()
227+
.filter(r -> r.getSql().equals(query))
228+
.findAny()
229+
.orElseThrow(() -> REQUEST_NOT_FOUND);
230+
assertTrue(request.getTransaction().hasSingleUse());
231+
assertTrue(request.getTransaction().getSingleUse().hasReadOnly());
232+
assertFalse(request.getLastStatement());
233+
223234
try (ResultSet resultSet = statement.executeQuery(dmlReturning)) {
224235
verifyResultSet(resultSet);
225236
}
237+
request =
238+
mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream()
239+
.filter(r -> r.getSql().equals(dmlReturning))
240+
.findAny()
241+
.orElseThrow(() -> REQUEST_NOT_FOUND);
242+
assertTrue(request.getTransaction().hasBegin());
243+
assertTrue(request.getTransaction().getBegin().hasReadWrite());
244+
assertTrue(request.getLastStatement());
245+
226246
try (ResultSet resultSet = statement.executeQuery(clientSideQuery)) {
227247
verifyClientSideResultSet(resultSet);
228248
}
@@ -238,6 +258,15 @@ public void testStatementExecuteUpdate() throws SQLException {
238258
try (Connection connection = createJdbcConnection();
239259
Statement statement = connection.createStatement()) {
240260
assertEquals(1, statement.executeUpdate(dml));
261+
ExecuteSqlRequest request =
262+
mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream()
263+
.filter(r -> r.getSql().equals(dml))
264+
.findAny()
265+
.orElseThrow(() -> REQUEST_NOT_FOUND);
266+
assertTrue(request.getTransaction().hasBegin());
267+
assertTrue(request.getTransaction().getBegin().hasReadWrite());
268+
assertTrue(request.getLastStatement());
269+
241270
assertEquals(0, statement.executeUpdate(DDL));
242271

243272
connection.setAutoCommit(false);
@@ -257,6 +286,14 @@ public void testStatementExecuteUpdateReturnGeneratedKeys() throws SQLException
257286
Statement statement = connection.createStatement()) {
258287
// TODO: Add tests for RETURN_GENERATED_KEYS when that is supported.
259288
assertEquals(1, statement.executeUpdate(dml, Statement.NO_GENERATED_KEYS));
289+
ExecuteSqlRequest request =
290+
mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream()
291+
.findAny()
292+
.orElseThrow(() -> REQUEST_NOT_FOUND);
293+
assertTrue(request.getTransaction().hasBegin());
294+
assertTrue(request.getTransaction().getBegin().hasReadWrite());
295+
assertTrue(request.getLastStatement());
296+
260297
assertEquals(0, statement.executeUpdate(DDL, Statement.NO_GENERATED_KEYS));
261298
assertEquals(0, statement.executeUpdate(clientSideUpdate, Statement.NO_GENERATED_KEYS));
262299

@@ -272,6 +309,14 @@ public void testStatementExecuteUpdateReturnColumnNames() throws SQLException {
272309
try (Connection connection = createJdbcConnection();
273310
Statement statement = connection.createStatement()) {
274311
assertEquals(1, statement.executeUpdate(dml, new String[] {"id"}));
312+
ExecuteSqlRequest request =
313+
mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream()
314+
.findAny()
315+
.orElseThrow(() -> REQUEST_NOT_FOUND);
316+
assertTrue(request.getTransaction().hasBegin());
317+
assertTrue(request.getTransaction().getBegin().hasReadWrite());
318+
assertTrue(request.getLastStatement());
319+
275320
assertEquals(0, statement.executeUpdate(DDL, new String[] {"id"}));
276321
assertEquals(0, statement.executeUpdate(clientSideUpdate, new String[] {"id"}));
277322

@@ -290,6 +335,14 @@ public void testStatementExecuteUpdateReturnColumnIndexes() throws SQLException
290335
try (Connection connection = createJdbcConnection();
291336
Statement statement = connection.createStatement()) {
292337
assertEquals(1, statement.executeUpdate(dml, new int[] {1}));
338+
ExecuteSqlRequest request =
339+
mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream()
340+
.findAny()
341+
.orElseThrow(() -> REQUEST_NOT_FOUND);
342+
assertTrue(request.getTransaction().hasBegin());
343+
assertTrue(request.getTransaction().getBegin().hasReadWrite());
344+
assertTrue(request.getLastStatement());
345+
293346
assertEquals(0, statement.executeUpdate(DDL, new int[] {1}));
294347
assertEquals(0, statement.executeUpdate(clientSideUpdate, new int[] {1}));
295348
verifyOverflow(() -> statement.executeUpdate(largeDml, new int[] {1}));
@@ -304,6 +357,14 @@ public void testStatementLargeExecuteUpdate() throws SQLException {
304357
try (Connection connection = createJdbcConnection();
305358
Statement statement = connection.createStatement()) {
306359
assertEquals(1L, statement.executeLargeUpdate(dml));
360+
ExecuteSqlRequest request =
361+
mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream()
362+
.findAny()
363+
.orElseThrow(() -> REQUEST_NOT_FOUND);
364+
assertTrue(request.getTransaction().hasBegin());
365+
assertTrue(request.getTransaction().getBegin().hasReadWrite());
366+
assertTrue(request.getLastStatement());
367+
307368
assertEquals(0L, statement.executeLargeUpdate(DDL));
308369
assertEquals(0L, statement.executeLargeUpdate(clientSideUpdate));
309370
assertEquals(LARGE_UPDATE_COUNT, statement.executeLargeUpdate(largeDml));
@@ -319,6 +380,14 @@ public void testStatementExecuteLargeUpdateReturnGeneratedKeys() throws SQLExcep
319380
Statement statement = connection.createStatement()) {
320381
// TODO: Add tests for RETURN_GENERATED_KEYS when that is supported.
321382
assertEquals(1, statement.executeLargeUpdate(dml, Statement.NO_GENERATED_KEYS));
383+
ExecuteSqlRequest request =
384+
mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream()
385+
.findAny()
386+
.orElseThrow(() -> REQUEST_NOT_FOUND);
387+
assertTrue(request.getTransaction().hasBegin());
388+
assertTrue(request.getTransaction().getBegin().hasReadWrite());
389+
assertTrue(request.getLastStatement());
390+
322391
assertEquals(0, statement.executeLargeUpdate(DDL, Statement.NO_GENERATED_KEYS));
323392
assertEquals(0, statement.executeLargeUpdate(clientSideUpdate, Statement.NO_GENERATED_KEYS));
324393
assertEquals(
@@ -871,14 +940,13 @@ public void testExecuteAutoBatchDml() throws SQLException {
871940
assertEquals(3, request.getStatementsCount());
872941
assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class));
873942
}
874-
943+
875944
@Test
876945
public void testLastStatement_AutoCommit_Query() throws SQLException {
877946
try (Connection connection = createJdbcConnection();
878947
Statement statement = connection.createStatement()) {
879948
//noinspection EmptyTryBlock
880-
try (ResultSet ignore = statement.executeQuery(query)) {
881-
}
949+
try (ResultSet ignore = statement.executeQuery(query)) {}
882950
}
883951
assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class));
884952
assertFalse(mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).get(0).getLastStatement());
@@ -899,8 +967,7 @@ public void testLastStatement_AutoCommit_DmlReturning() throws SQLException {
899967
try (Connection connection = createJdbcConnection();
900968
Statement statement = connection.createStatement()) {
901969
//noinspection EmptyTryBlock
902-
try (ResultSet ignore = statement.executeQuery(dmlReturning)) {
903-
}
970+
try (ResultSet ignore = statement.executeQuery(dmlReturning)) {}
904971
}
905972
assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class));
906973
assertTrue(mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).get(0).getLastStatement());
@@ -915,7 +982,8 @@ public void testLastStatement_AutoCommit_BatchDml() throws SQLException {
915982
statement.executeBatch();
916983
}
917984
assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class));
918-
assertTrue(mockSpanner.getRequestsOfType(ExecuteBatchDmlRequest.class).get(0).getLastStatements());
985+
assertTrue(
986+
mockSpanner.getRequestsOfType(ExecuteBatchDmlRequest.class).get(0).getLastStatements());
919987
}
920988

921989
@Test
@@ -924,8 +992,7 @@ public void testLastStatement_Transaction_Query() throws SQLException {
924992
Statement statement = connection.createStatement()) {
925993
connection.setAutoCommit(false);
926994
//noinspection EmptyTryBlock
927-
try (ResultSet ignore = statement.executeQuery(query)) {
928-
}
995+
try (ResultSet ignore = statement.executeQuery(query)) {}
929996
connection.commit();
930997
}
931998
assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class));
@@ -950,8 +1017,7 @@ public void testLastStatement_Transaction_DmlReturning() throws SQLException {
9501017
Statement statement = connection.createStatement()) {
9511018
connection.setAutoCommit(false);
9521019
//noinspection EmptyTryBlock
953-
try (ResultSet ignore = statement.executeQuery(dmlReturning)) {
954-
}
1020+
try (ResultSet ignore = statement.executeQuery(dmlReturning)) {}
9551021
connection.commit();
9561022
}
9571023
assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class));
@@ -969,6 +1035,7 @@ public void testLastStatement_Transaction_BatchDml() throws SQLException {
9691035
connection.commit();
9701036
}
9711037
assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class));
972-
assertFalse(mockSpanner.getRequestsOfType(ExecuteBatchDmlRequest.class).get(0).getLastStatements());
1038+
assertFalse(
1039+
mockSpanner.getRequestsOfType(ExecuteBatchDmlRequest.class).get(0).getLastStatements());
9731040
}
9741041
}

0 commit comments

Comments
 (0)