- Patch #517502 by Crell: make transaction API follow its own documentation.

merge-requests/26/head
Dries Buytaert 2009-07-13 07:27:15 +00:00
parent 6dc5b5449d
commit 6682ab936c
2 changed files with 24 additions and 7 deletions

View File

@ -225,7 +225,7 @@ abstract class DatabaseConnection extends PDO {
*
* @var boolean
*/
protected $willRollBack;
protected $willRollback;
/**
* The name of the Select class for this connection.
@ -849,12 +849,12 @@ abstract class DatabaseConnection extends PDO {
*
* This method throws an exception if no transaction is active.
*/
public function rollBack() {
public function rollback() {
if ($this->transactionLayers == 0) {
throw new NoActiveTransactionException();
}
$this->willRollBack = TRUE;
$this->willRollback = TRUE;
}
/**
@ -867,12 +867,12 @@ abstract class DatabaseConnection extends PDO {
* @return
* TRUE if the transaction will roll back, FALSE otherwise.
*/
public function willRollBack() {
public function willRollback() {
if ($this->transactionLayers == 0) {
throw new NoActiveTransactionException();
}
return $this->willRollBack;
return $this->willRollback;
}
/**
@ -1448,6 +1448,23 @@ class DatabaseTransaction {
$this->connection->popTransaction();
}
/**
* Roll back the current transaction.
*
* This is just a wrapper method to rollback whatever transaction stack we
* are currently in, which is managed by the connection object itself.
*/
public function rollback() {
$this->connection->rollback();
}
/**
* Determine if this transaction will roll back.
*/
public function willRollback() {
return $this->connection->willRollback();
}
}
/**

View File

@ -2624,8 +2624,8 @@ class DatabaseTransactionTestCase extends DatabaseTestCase {
if ($rollback) {
// Roll back the transaction, if requested.
// This rollback should propagate to the the outer transaction, if present.
$connection->rollBack();
$this->assertTrue($connection->willRollBack(), t('Transaction is scheduled to roll back after calling rollBack().'));
$txn->rollback();
$this->assertTrue($txn->willRollback(), t('Transaction is scheduled to roll back after calling rollback().'));
}
}