public function testTerminateDelegatesTerminationOnlyForTerminableInterface() {
if (!class_exists('Symfony\\Component\\DependencyInjection\\Container')) {
$this
->markTestSkipped('The "DependencyInjection" component is not available');
}
$storeMock = $this
->getMockBuilder('Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface')
->disableOriginalConstructor()
->getMock();
// does not implement TerminableInterface
$kernelMock = $this
->getMockBuilder('Symfony\\Component\\HttpKernel\\HttpKernelInterface')
->disableOriginalConstructor()
->getMock();
$kernelMock
->expects($this
->never())
->method('terminate');
$kernel = new HttpCache($kernelMock, $storeMock);
$kernel
->terminate(Request::create('/'), new Response());
// implements TerminableInterface
$kernelMock = $this
->getMockBuilder('Symfony\\Component\\HttpKernel\\Kernel')
->disableOriginalConstructor()
->setMethods(array(
'terminate',
'registerBundles',
'registerContainerConfiguration',
))
->getMock();
$kernelMock
->expects($this
->once())
->method('terminate');
$kernel = new HttpCache($kernelMock, $storeMock);
$kernel
->terminate(Request::create('/'), new Response());
}