Example #1
0
 function it_calls_responder_only_when_domain_is_not_callable(Container $container, Route $route, Request $request, Response $response, Responder $responder)
 {
     $route->getDomain()->willReturn('');
     $route->getResponder()->willReturn(Responder::class);
     $container->isCallable('')->willReturn(false);
     $container->get(Responder::class)->willReturn($responder);
     $responder->run($request, null)->willReturn($response);
     $this->next($request)->shouldBe($response);
 }
Example #2
0
 /**
  * @inheritDoc
  */
 public function next(ServerRequestInterface $request) : ResponseInterface
 {
     if (!$request instanceof RequestContract) {
         // Decorate PSR-7 ServerRequest.
         $request = new Request($request);
     }
     if ($this->container->isCallable($this->route->getDomain())) {
         if ($this->container->has($this->route->getInput())) {
             /** @var Input $input */
             $input = $this->container->get($this->route->getInput());
             $arguments = $input->process($request);
         }
         /** @var Payload $payload */
         $payload = $this->container->call($this->route->getDomain(), $arguments ?? []);
     }
     /** @var Responder $responder */
     $responder = $this->container->get($this->route->getResponder());
     return $responder->run($request, $payload ?? null);
 }