/** * @covers Pushy\Router\Router::__construct * @covers Pushy\Router\Router::getRouteByRequest */ public function testGetRouteByRequestNoMatchNotFoundRoute() { $notFoundRoute = $this->getMock('\\Pushy\\Router\\AccessPoint'); $notFoundRoute->expects($this->any())->method('doesRequestMatch')->will($this->returnValue(false)); $notFoundRoute->expects($this->any())->method('getCallback')->will($this->returnValue(function () { return '404'; })); $routeFactory = $this->getMock('\\Pushy\\Router\\RouteBuilder'); $routeFactory->expects($this->once())->method('build')->will($this->returnValue($notFoundRoute)); $router = new Router($routeFactory); $this->assertNull($router->get('404', '#doesnotmatch#', function () { return '404'; })); $request = $this->getMock('\\Pushy\\Network\\Http\\RequestData'); $request->expects($this->any())->method('getMethod')->will($this->returnValue('GET')); $route = $router->getRouteByRequest($request); $callback = $route->getCallback(); $this->assertInstanceOf('\\Pushy\\Router\\AccessPoint', $route); $this->assertSame('404', $callback()); }
/** * Prevent rendering of pages when on CLI */ if (php_sapi_name() === 'cli') { return; } /** * Setup the request object */ $request = new Request(new ImmutableArray($_GET), new ImmutableArray($_POST), new ImmutableArray($_SERVER), new ImmutableArray($_FILES)); /** * Setup the response object */ $response = new Response(); /** * Setup the router */ $routeFactory = new RouteFactory(); $router = new Router($routeFactory); $router->get('frontpage', '#^/?$#', function (RequestData $request) { $response->setBody('Pushy!'); }); /** * Run the app */ $frontcontroller = new FrontController($request, $response, $router); $frontcontroller->dispatch(); /** * Render the content */ echo $response->render();