public function testTerminateDelegatesTerminationOnlyForTerminableInterface() { $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()); }
/** * */ protected function buildAndCacheResponse() { $controllerResolver = new ControllerResolver(array($this, 'buildResponse')); $kernel = new HttpKernel(new EventDispatcher(), $controllerResolver); if ($this->adapter->isCachingEnabled($this->request)) { $kernel = new HttpCache($kernel, $this->adapter->getStore($this->request), $this->adapter->getSurrogate($this->request), $this->adapter->getHttpCacheOptions($this->request)); } $response = $kernel->handle($this->request); $this->shutDownFunctionEnabled = false; $response->send(); $kernel->terminate($this->request, $response); }