public function ConnectionTest::testPDOStatementQueryDeprecation in Drupal 9
Tests the deprecation of passing a PDOStatement object to ::query.
@group legacy
File
- core/
tests/ Drupal/ KernelTests/ Core/ Database/ ConnectionTest.php, line 155
Class
- ConnectionTest
- Tests of the core database system.
Namespace
Drupal\KernelTests\Core\DatabaseCode
public function testPDOStatementQueryDeprecation() : void {
$db = Database::getConnection();
$stmt = $db
->prepareStatement('SELECT * FROM {test}', []);
if (!$stmt instanceof StatementWrapper) {
$this
->markTestSkipped("This test only runs for db drivers using StatementWrapper.");
}
if (!$stmt
->getClientStatement() instanceof \PDOStatement) {
$this
->markTestSkipped("This test only runs for PDO-based db drivers.");
}
$this
->expectDeprecation('Passing a \\PDOStatement object as a $query argument to Drupal\\Core\\Database\\Connection::query is deprecated in drupal:9.2.0 and is removed in drupal:10.0.0. Call the execute method from the StatementInterface object directly instead. See https://www.drupal.org/node/3154439');
$this
->assertNotNull($db
->query($stmt
->getClientStatement()));
}