Skip to content

Commit 3d87ec4

Browse files
committed
test: add test for auto_batch_dml
1 parent 57df3f3 commit 3d87ec4

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

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

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import com.google.protobuf.Value;
3737
import com.google.rpc.Code;
3838
import com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata;
39+
import com.google.spanner.v1.CommitRequest;
40+
import com.google.spanner.v1.ExecuteBatchDmlRequest;
3941
import com.google.spanner.v1.ResultSetMetadata;
4042
import com.google.spanner.v1.ResultSetStats;
4143
import com.google.spanner.v1.StructType;
@@ -844,4 +846,28 @@ public void testInvalidExecuteUpdate_shouldNotLeakSession() throws SQLException
844846
}
845847
}
846848
}
849+
850+
private String getExtension() {
851+
return dialect == Dialect.POSTGRESQL ? "spanner." : "";
852+
}
853+
854+
@Test
855+
public void testExecuteAutoBatchDml() throws SQLException {
856+
try (Connection connection = createJdbcConnection();
857+
Statement statement = connection.createStatement()) {
858+
connection.setAutoCommit(false);
859+
860+
assertFalse(statement.execute(String.format("set %sauto_batch_dml = true", getExtension())));
861+
for (int i = 0; i < 3; i++) {
862+
assertFalse(statement.execute(dml));
863+
assertEquals(1, statement.getUpdateCount());
864+
}
865+
connection.commit();
866+
}
867+
assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class));
868+
ExecuteBatchDmlRequest request =
869+
mockSpanner.getRequestsOfType(ExecuteBatchDmlRequest.class).get(0);
870+
assertEquals(3, request.getStatementsCount());
871+
assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class));
872+
}
847873
}

0 commit comments

Comments
 (0)