function TransactionManagerTest::testStateAfterStartTransactionFailure

Checks TransactionManager after failing to start a transaction.

File

core/tests/Drupal/Tests/Core/Database/TransactionManagerTest.php, line 64

Class

TransactionManagerTest
Tests transactions.

Namespace

Drupal\Tests\Core\Database

Code

public function testStateAfterStartTransactionFailure() : void {
  try {
    $this->connection
      ->transactionManager()->success = FALSE;
    // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
    $tx = $this->connection
      ->startTransaction();
  } catch (TransactionException) {
    // Continue.
  }
  $this->assertSame(0, $this->connection
    ->transactionManager()
    ->stackDepth());
  $this->assertFalse($this->connection
    ->transactionManager()
    ->has('drupal_transaction'));
  $this->assertFalse($this->connection
    ->inTransaction());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.