public function ContainerAwareHttpKernelTest::testHandle

@dataProvider getProviderTypes

File

drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php, line 40

Class

ContainerAwareHttpKernelTest

Namespace

Symfony\Component\HttpKernel\Tests\DependencyInjection

Code

public function testHandle($type) {
  $request = new Request();
  $expected = new Response();
  $container = $this
    ->getMock('Symfony\\Component\\DependencyInjection\\ContainerInterface');
  $container
    ->expects($this
    ->once())
    ->method('enterScope')
    ->with($this
    ->equalTo('request'));
  $container
    ->expects($this
    ->once())
    ->method('leaveScope')
    ->with($this
    ->equalTo('request'));
  $container
    ->expects($this
    ->at(0))
    ->method('hasScope')
    ->with($this
    ->equalTo('request'))
    ->will($this
    ->returnValue(false));
  $container
    ->expects($this
    ->at(1))
    ->method('addScope')
    ->with($this
    ->isInstanceOf('Symfony\\Component\\DependencyInjection\\Scope'));

  // enterScope()
  $container
    ->expects($this
    ->at(3))
    ->method('set')
    ->with($this
    ->equalTo('request'), $this
    ->equalTo($request), $this
    ->equalTo('request'));
  $container
    ->expects($this
    ->at(4))
    ->method('set')
    ->with($this
    ->equalTo('request'), $this
    ->equalTo(null), $this
    ->equalTo('request'));
  $dispatcher = new EventDispatcher();
  $resolver = $this
    ->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
  $kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver);
  $controller = function () use ($expected) {
    return $expected;
  };
  $resolver
    ->expects($this
    ->once())
    ->method('getController')
    ->with($request)
    ->will($this
    ->returnValue($controller));
  $resolver
    ->expects($this
    ->once())
    ->method('getArguments')
    ->with($request, $controller)
    ->will($this
    ->returnValue(array()));
  $actual = $kernel
    ->handle($request, $type);
  $this
    ->assertSame($expected, $actual, '->handle() returns the response');
}