public function testCatchingErrors()
{
$connection = \Mockery::mock('\\Pheasant\\Database\\Mysqli\\Connection');
$filter = new FilterChain();
$exceptions = array();
$filter->onError(function ($e) use(&$exceptions) {
$exceptions[] = $e;
});
$connection->shouldReceive('execute')->andThrow(new \Exception('Eeeeek!'));
try {
$filter->execute('SELECT 1', function ($sql) use($connection) {
$connection->execute($sql);
});
$this->fail('Exception expected');
} catch (\Exception $e) {
$this->assertEquals($e->getMessage(), 'Eeeeek!');
}
$this->assertEquals(count($exceptions), 1);
$this->assertEquals($exceptions[0]->getMessage(), 'Eeeeek!');
}