Ejemplo n.º 1
0
 public function testFailingDbTransaction()
 {
     $statement = Mockery::mock('\\PDOStatement');
     $statement->shouldReceive('execute')->once()->andThrow(new \Exception('woopsies'));
     $pdo = Mockery::mock('\\PDO');
     $pdo->shouldReceive('beginTransaction')->once()->andReturnNull();
     $pdo->shouldReceive('prepare')->times(3)->andReturn($statement);
     $pdo->shouldReceive('execute')->times(3)->andReturn();
     $pdo->shouldReceive('commit')->once()->andReturn();
     $pdo->shouldReceive('rollBack')->once()->andReturn();
     $conn = Mockery::mock('\\Fyuze\\Database\\Drivers\\ConnectionInterface');
     $conn->shouldReceive('open')->once()->andReturn($pdo);
     $db = new Db($conn);
     $result = $db->transaction(function ($query) {
         $query->first('SELECT 1');
     });
     $this->assertFalse($result);
 }