<?php namespace Rinsvent\RequestBundle\Tests\Helper; // here you can define custom actions // all public methods declared in helper class will be available in $I use Rinsvent\RequestBundle\EventListener\RequestListener; use Rinsvent\RequestBundle\Tests\unit\Listener\fixtures\FillTest\Controller; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Controller\ArgumentResolver; use Symfony\Component\HttpKernel\Controller\ControllerResolver; use Symfony\Component\HttpKernel\EventListener\RouterListener; use Symfony\Component\HttpKernel\HttpKernel; use Symfony\Component\Routing\Matcher\UrlMatcher; use Symfony\Component\Routing\RequestContext; use Symfony\Component\Routing\Route; use Symfony\Component\Routing\RouteCollection; class Unit extends \Codeception\Module { public function send(Request $request): Response { $routes = new RouteCollection(); $controller = new Controller(); $routes->add('hello', new Route('/hello/{name}', [ '_controller' => [$controller, 'hello'] ] )); $matcher = new UrlMatcher($routes, new RequestContext()); $dispatcher = new EventDispatcher(); $dispatcher->addSubscriber(new RouterListener($matcher, new RequestStack())); $listener = new RequestListener(); $dispatcher->addListener('kernel.request', [$listener, 'onKernelRequest']); $controllerResolver = new ControllerResolver(); $argumentResolver = new ArgumentResolver(); $kernel = new HttpKernel($dispatcher, $controllerResolver, new RequestStack(), $argumentResolver); $response = $kernel->handle($request); $response->send(); return $response; } }