You are here

public function DebugHandlersListenerTest::testConsoleEvent in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php \Symfony\Component\HttpKernel\Tests\EventListener\DebugHandlersListenerTest::testConsoleEvent()

File

vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php, line 65

Class

DebugHandlersListenerTest
DebugHandlersListenerTest.

Namespace

Symfony\Component\HttpKernel\Tests\EventListener

Code

public function testConsoleEvent() {
  $dispatcher = new EventDispatcher();
  $listener = new DebugHandlersListener(null);
  $app = $this
    ->getMock('Symfony\\Component\\Console\\Application');
  $app
    ->expects($this
    ->once())
    ->method('getHelperSet')
    ->will($this
    ->returnValue(new HelperSet()));
  $command = new Command(__FUNCTION__);
  $command
    ->setApplication($app);
  $event = new ConsoleEvent($command, new ArgvInput(), new ConsoleOutput());
  $dispatcher
    ->addSubscriber($listener);
  $xListeners = array(
    KernelEvents::REQUEST => array(
      array(
        $listener,
        'configure',
      ),
    ),
    ConsoleEvents::COMMAND => array(
      array(
        $listener,
        'configure',
      ),
    ),
  );
  $this
    ->assertSame($xListeners, $dispatcher
    ->getListeners());
  $exception = null;
  $eHandler = new ErrorHandler();
  set_error_handler(array(
    $eHandler,
    'handleError',
  ));
  set_exception_handler(array(
    $eHandler,
    'handleException',
  ));
  try {
    $dispatcher
      ->dispatch(ConsoleEvents::COMMAND, $event);
  } catch (\Exception $exception) {
  }
  restore_exception_handler();
  restore_error_handler();
  if (null !== $exception) {
    throw $exception;
  }
  $xHandler = $eHandler
    ->setExceptionHandler('var_dump');
  $this
    ->assertInstanceOf('Closure', $xHandler);
  $app
    ->expects($this
    ->once())
    ->method('renderException');
  $xHandler(new \Exception());
}