/**
* @test
*/
public function runInTransactionShouldInvokeRollbackOnFailure()
{
// given
Db::getInstance()->enableTransactions();
$dbHandle = Mock::mock();
$db = new Db(false);
$db->_dbHandle = $dbHandle;
//when
CatchException::when($db)->runInTransaction(array(new Sample(), 'exceptionMethod'));
//then
CatchException::assertThat()->isInstanceOf('InvalidArgumentException');
Mock::verify($dbHandle)->beginTransaction();
Mock::verify($dbHandle)->neverReceived()->commitTransaction();
Mock::verify($dbHandle)->rollBack();
}