public function testControllerWithArguments()
 {
     $collection = new RouteCollection();
     $collection->add('detail', (new Route('/detail/{id}/{slug}'))->setRequirement('id', '\\d+')->setRequirement('slug', '[a-z\\-]+')->handleWith('app.controller.default:detail'));
     $request = Request::create('/detail/5/hello-world', Request::HTTP_METHOD_POST);
     $kernel = $this->buildKernel($request, $collection);
     $kernel->boot();
     $this->assertSame('POST: hello-world-5', $this->responseEvent->getResponse()->getContent());
 }
 public function testKernel()
 {
     $collection = new RouteCollection();
     $collection->add('home', RouteFactory::createHttpGet('/', function () {
         return new Response('Hello world');
     }));
     $kernel = $this->buildKernel(Request::create('/'), $collection);
     $kernel->boot();
     $this->assertEquals('Hello world', $this->responseEvent->getResponse()->getContent());
 }
 public function testLogoutOnLoginController()
 {
     $request = Request::create('/logout', Request::HTTP_METHOD_GET);
     $request->getCookieBag()->set('username', 'iqbal');
     $kernel = $this->buildKernel($this->getRouteCollection(), $request);
     $kernel->boot();
     $this->assertEquals('Logout', $this->responseEvent->getResponse()->getContent());
 }
 /**
  * Dispatch middlewares.
  *
  * @param Route          $route
  * @param RequestContext $context
  * @param Closure        $next
  * @param string|null    $action
  *
  * @return Response|null
  */
 protected function dispatchMiddlewares(Route $route, RequestContext $context, Closure $next, $action = null)
 {
     $request = $this->responseEvent->getRequest();
     $this->registerRouteMiddleware($route);
     return $this->middleware->invoke($request, $context, $next, $action);
 }