TestHttpKernel.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /*
  3. * This file is part of the symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Tests\Component\HttpKernel\Cache;
  11. use Symfony\Component\HttpKernel\BaseHttpKernel;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\EventDispatcher\EventDispatcher;
  15. use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
  16. class TestHttpKernel extends BaseHttpKernel implements ControllerResolverInterface
  17. {
  18. protected $body;
  19. protected $status;
  20. protected $headers;
  21. protected $called;
  22. protected $customizer;
  23. public function __construct($body, $status, $headers, \Closure $customizer = null)
  24. {
  25. $this->body = $body;
  26. $this->status = $status;
  27. $this->headers = $headers;
  28. $this->customizer = $customizer;
  29. $this->called = false;
  30. parent::__construct(new EventDispatcher(), $this);
  31. }
  32. public function getController(Request $request)
  33. {
  34. return array($this, 'callController');
  35. }
  36. public function getArguments(Request $request, $controller)
  37. {
  38. return array($request);
  39. }
  40. public function callController(Request $request)
  41. {
  42. $this->called = true;
  43. $response = new Response($this->body, $this->status, $this->headers);
  44. if (null !== $this->customizer) {
  45. call_user_func($this->customizer, $request, $response);
  46. }
  47. return $response;
  48. }
  49. public function hasBeenCalled()
  50. {
  51. return $this->called;
  52. }
  53. public function reset()
  54. {
  55. $this->called = false;
  56. }
  57. }