function DriverSpecificTransactionTestBase::testConnectionDeprecations
Tests deprecation of Connection methods.
@group legacy
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Database/ DriverSpecificTransactionTestBase.php, line 886
Class
- DriverSpecificTransactionTestBase
- Tests the transaction abstraction system.
Namespace
Drupal\KernelTests\Core\DatabaseCode
public function testConnectionDeprecations() : void {
$this->cleanUp();
$transaction = $this->connection
->startTransaction();
$this->expectDeprecation('Drupal\\Core\\Database\\Connection::transactionDepth() is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. Do not access the transaction stack depth, it is an implementation detail. See https://www.drupal.org/node/3381002');
$this->assertSame(1, $this->connection
->transactionDepth());
$this->insertRow('row');
$this->expectDeprecation('Drupal\\Core\\Database\\Connection::rollBack() is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. Do not rollback the connection, roll back the Transaction objects instead. See https://www.drupal.org/node/3381002');
$this->connection
->rollback();
$transaction = NULL;
$this->assertRowAbsent('row');
$this->cleanUp();
$transaction = $this->connection
->startTransaction();
$this->expectDeprecation('Drupal\\Core\\Database\\Connection::addRootTransactionEndCallback() is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. Use TransactionManagerInterface::addPostTransactionCallback() instead. See https://www.drupal.org/node/3381002');
$this->connection
->addRootTransactionEndCallback([
$this,
'rootTransactionCallback',
]);
$this->insertRow('row');
$this->expectDeprecation('Drupal\\Core\\Database\\Connection::commit() is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. Do not commit the connection, void the Transaction objects instead. See https://www.drupal.org/node/3381002');
try {
$this->connection
->commit();
} catch (TransactionExplicitCommitNotAllowedException $e) {
// Do nothing.
}
$transaction = NULL;
$this->assertRowPresent('row');
$this->cleanUp();
$this->expectDeprecation('Drupal\\Core\\Database\\Connection::pushTransaction() is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. Use TransactionManagerInterface methods instead. See https://www.drupal.org/node/3381002');
$this->connection
->pushTransaction('foo');
$this->expectDeprecation('Drupal\\Core\\Database\\Connection::popTransaction() is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. Use TransactionManagerInterface methods instead. See https://www.drupal.org/node/3381002');
$this->expectDeprecation('Drupal\\Core\\Database\\Connection::popCommittableTransactions() is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. Use TransactionManagerInterface methods instead. See https://www.drupal.org/node/3381002');
$this->expectDeprecation('Drupal\\Core\\Database\\Connection::doCommit() is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. Use TransactionManagerInterface methods instead. See https://www.drupal.org/node/3381002');
$this->connection
->popTransaction('foo');
// Ensure there are no outstanding transactions left. This is necessary for
// the test to pass when xdebug.mode has the 'develop' option enabled.
$this->connection
->commitAll();
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.