testResponseOk(); $this->testInvalidMiddleware(); $this->testThenArgument(); } public function testResponseOk() { /** * @var ContainerInterface $container * @var ServerRequestInterface $request */ $container = new ContainerMock(); $request = new ServerRequestMock(); $handler = new RequestHandler($container, [new ResponseMiddlewareTest()]); $this->assertEquals(200, $handler->handle($request)->getStatusCode()); } public function testInvalidMiddleware() { /** * @var ContainerInterface $container * @var ServerRequestInterface $request */ $container = new ContainerMock(); $request = new ServerRequestMock(); $handler = new RequestHandler($container, [new \stdClass()]); $this->expectException(\LogicException::class, function () use($handler, $request) { $handler->handle($request); }); } public function testThenArgument() { /** * @var ContainerInterface $container * @var ServerRequestInterface $request */ $container = new ContainerMock(); $request = new ServerRequestMock(); $handler = new RequestHandler($container, [], function (ServerRequestInterface $request) { return new ResponseMock(); }); $response = $handler->handle($request); $this->assertInstanceOf(ResponseInterface::class, $response); } }