public function __invoke(ContainerInterface $services)
 {
     $middleware = new BaseUrlMiddleware();
     if ($services->has(UrlHelper::class)) {
         $middleware->setUrlHelper($services->get(UrlHelper::class));
     }
     if ($services->has(BasePathHelper::class)) {
         $middleware->setBasePathHelper($services->get(BasePathHelper::class));
     }
     return $middleware;
 }
 public function testMiddlewareInjectsUrlHelperWithBaseUrl()
 {
     $server = ['REQUEST_URI' => '/index.php/news/3?var1=val1&var2=val2', 'QUERY_URI' => 'var1=val1&var2=val2', 'SCRIPT_NAME' => '/index.php', 'PHP_SELF' => '/index.php/news/3', 'SCRIPT_FILENAME' => '/var/web/html/index.php'];
     $request = ServerRequestFactory::fromGlobals($server, [], [], [], []);
     $middleware = new BaseUrlMiddleware();
     $urlHelper = $this->prophesize(UrlHelper::class);
     $urlHelper->setBasePath('/index.php')->shouldBeCalled();
     $middleware->setUrlHelper($urlHelper->reveal());
     $middleware($request, new Response(), function (ServerRequestInterface $request) {
         $this->assertEquals('/', $request->getAttribute(BaseUrlMiddleware::BASE_PATH));
         $this->assertEquals('/index.php', $request->getAttribute(BaseUrlMiddleware::BASE_URL));
         $this->assertEquals('/news/3', $request->getUri()->getPath());
     });
 }