class ContainerAwareHttpKernelTest in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/symfony/http-kernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php \Symfony\Component\HttpKernel\Tests\DependencyInjection\ContainerAwareHttpKernelTest
@group legacy
Hierarchy
- class \Symfony\Component\HttpKernel\Tests\DependencyInjection\ContainerAwareHttpKernelTest extends \Symfony\Component\HttpKernel\Tests\DependencyInjection\PHPUnit_Framework_TestCase
Expanded class hierarchy of ContainerAwareHttpKernelTest
File
- vendor/
symfony/ http-kernel/ Tests/ DependencyInjection/ ContainerAwareHttpKernelTest.php, line 24
Namespace
Symfony\Component\HttpKernel\Tests\DependencyInjectionView source
class ContainerAwareHttpKernelTest extends \PHPUnit_Framework_TestCase {
/**
* @dataProvider getProviderTypes
*/
public function testHandle($type) {
$request = new Request();
$expected = new Response();
$controller = function () use ($expected) {
return $expected;
};
$container = $this
->getMock('Symfony\\Component\\DependencyInjection\\ContainerInterface');
$this
->expectsEnterScopeOnce($container)
->expectsLeaveScopeOnce($container)
->expectsSetRequestWithAt($container, $request, 3)
->expectsSetRequestWithAt($container, null, 4);
$dispatcher = new EventDispatcher();
$resolver = $this
->getResolverMockFor($controller, $request);
$stack = new RequestStack();
$kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver, $stack);
$actual = $kernel
->handle($request, $type);
$this
->assertSame($expected, $actual, '->handle() returns the response');
}
/**
* @dataProvider getProviderTypes
*/
public function testVerifyRequestStackPushPopDuringHandle($type) {
$request = new Request();
$expected = new Response();
$controller = function () use ($expected) {
return $expected;
};
$stack = $this
->getMock('Symfony\\Component\\HttpFoundation\\RequestStack', array(
'push',
'pop',
));
$stack
->expects($this
->at(0))
->method('push')
->with($this
->equalTo($request));
$stack
->expects($this
->at(1))
->method('pop');
$container = $this
->getMock('Symfony\\Component\\DependencyInjection\\ContainerInterface');
$dispatcher = new EventDispatcher();
$resolver = $this
->getResolverMockFor($controller, $request);
$kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver, $stack);
$kernel
->handle($request, $type);
}
/**
* @dataProvider getProviderTypes
*/
public function testHandleRestoresThePreviousRequestOnException($type) {
$request = new Request();
$expected = new \Exception();
$controller = function () use ($expected) {
throw $expected;
};
$container = $this
->getMock('Symfony\\Component\\DependencyInjection\\ContainerInterface');
$this
->expectsEnterScopeOnce($container)
->expectsLeaveScopeOnce($container)
->expectsSetRequestWithAt($container, $request, 3)
->expectsSetRequestWithAt($container, null, 4);
$dispatcher = new EventDispatcher();
$resolver = $this
->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
$resolver = $this
->getResolverMockFor($controller, $request);
$stack = new RequestStack();
$kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver, $stack);
try {
$kernel
->handle($request, $type);
$this
->fail('->handle() suppresses the controller exception');
} catch (\PHPUnit_Framework_Exception $e) {
throw $e;
} catch (\Exception $e) {
$this
->assertSame($expected, $e, '->handle() throws the controller exception');
}
}
public function getProviderTypes() {
return array(
array(
HttpKernelInterface::MASTER_REQUEST,
),
array(
HttpKernelInterface::SUB_REQUEST,
),
);
}
private function getResolverMockFor($controller, $request) {
$resolver = $this
->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
$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()));
return $resolver;
}
private function expectsSetRequestWithAt($container, $with, $at) {
$container
->expects($this
->at($at))
->method('set')
->with($this
->equalTo('request'), $this
->equalTo($with), $this
->equalTo('request'));
return $this;
}
private function expectsEnterScopeOnce($container) {
$container
->expects($this
->once())
->method('enterScope')
->with($this
->equalTo('request'));
return $this;
}
private function expectsLeaveScopeOnce($container) {
$container
->expects($this
->once())
->method('leaveScope')
->with($this
->equalTo('request'));
return $this;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ContainerAwareHttpKernelTest:: |
private | function | ||
ContainerAwareHttpKernelTest:: |
private | function | ||
ContainerAwareHttpKernelTest:: |
private | function | ||
ContainerAwareHttpKernelTest:: |
public | function | ||
ContainerAwareHttpKernelTest:: |
private | function | ||
ContainerAwareHttpKernelTest:: |
public | function | @dataProvider getProviderTypes | |
ContainerAwareHttpKernelTest:: |
public | function | @dataProvider getProviderTypes | |
ContainerAwareHttpKernelTest:: |
public | function | @dataProvider getProviderTypes |