Skip to content

Commit dd1485b

Browse files
committed
test: add more tests
1 parent 68cf4b7 commit dd1485b

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

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

Lines changed: 69 additions & 0 deletions
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(

0 commit comments

Comments
 (0)