/** * Makes the error listener. * * @return \Es\Error\ErrorListener The error listener */ public static function make() { $services = Provider::getServices(); $config = $services->get('Config'); $strategies = []; if (isset($config['error']['strategies'])) { $strategies = (array) $config['error']['strategies']; } $listener = new ErrorListener(); foreach ($strategies as $name) { $strategy = $services->get($name); $listener->attachErrorStrategy($strategy); } return $listener; }
public function testInvokeCallHtmlErrorStrategyToProcessProductionError() { SystemTestHelper::resetSystem(); $system = System::init([], false); $exception = new Exception(); $systemEvent = $system->getEvent(); $errorEvent = new ErrorEvent(ErrorEvent::FATAL_ERROR, $exception, $system); $server = new Server(); $strategy = $this->getMock(HtmlErrorStrategy::CLASS); $listener = new ErrorListener(); $listener->setDefaultErrorStrategy($strategy); $listener->setServer($server); $strategy->expects($this->once())->method('handleProductionError')->with($this->identicalTo($systemEvent), $this->identicalTo($exception)); $listener($errorEvent); }