public function testExceptionRollsback()
{
$pdo = $this->buildMySqlPdo();
$mutex = new TransactionalMutex($pdo);
$pdo->exec("\n CREATE TEMPORARY TABLE testExceptionRollsback(\n id int primary key\n ) engine=innodb\n ");
try {
$mutex->synchronized(function () use($pdo) {
$pdo->exec("INSERT INTO testExceptionRollsback VALUES(1)");
throw new \DomainException();
});
} catch (\DomainException $e) {
// expected
}
$count = $pdo->query("SELECT count(*) FROM testExceptionRollsback")->fetchColumn();
$this->assertEquals(0, $count);
}