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 testMiddlewareDoesNotRemoveLeadingSlashWithEmptyBasePath()
 {
     $server = ['REQUEST_URI' => '/news', 'SCRIPT_NAME' => '/index.php', 'PHP_SELF' => '/news', 'SCRIPT_FILENAME' => '/var/www/site/public/index.php'];
     $request = ServerRequestFactory::fromGlobals($server, [], [], [], []);
     $middleware = new BaseUrlMiddleware();
     $basePathHelper = $this->prophesize(BasePathHelper::class);
     $basePathHelper->setBasePath('/')->shouldBeCalled();
     $middleware->setBasePathHelper($basePathHelper->reveal());
     $middleware($request, new Response(), function (ServerRequestInterface $request) {
         $this->assertEquals('/', $request->getAttribute(BaseUrlMiddleware::BASE_PATH));
         $this->assertEquals('/', $request->getAttribute(BaseUrlMiddleware::BASE_URL));
         $this->assertEquals('/news', $request->getUri()->getPath());
     });
 }