/** * @covers ::getRouteForRequest * @covers ::getRoute */ public function testGettingRouteForRequest() { $router = $this->provideRouter(); $indexRoute = $router->addRoute('test.index', TestController::class, null, '/test/'); $listRoute = $router->addRoute('test.list', TestController::class, null, '/test/{page:int}/{limit:int}?'); $itemRoute = $router->addRoute('test.item', TestController::class, null, '/test/{id:int}/{slug}.html'); $itemAdminRoute = $router->addRoute('test.item_admin', TestController::class, null, '/test/admin/{id:int}/', array('get' => 'index', 'put' => false, 'post' => 'index', 'delete' => 'index')); $this->assertFalse($router->getRouteForRequest(Request::create('/lorem/ipsum/'))); $this->assertSame($itemRoute, $router->getRouteForRequest(Request::create('/test/123/lipsum.html'))); $this->assertSame($listRoute, $router->getRouteForRequest(Request::create('/test/2/'))); $this->assertSame($listRoute, $router->getRouteForRequest(Request::create('/test/2/50', 'POST'))); $this->assertSame($indexRoute, $router->getRouteForRequest(Request::create('/test/'))); $this->assertSame($itemAdminRoute, $router->getRouteForRequest(Request::create('/test/admin/12/'))); $this->assertFalse($router->getRouteForRequest(Request::create('/test/admin/12/', 'PUT'))); }
/** * @covers ::sendResponse */ public function testSendingResponse() { $willSendResponseCalled = false; $this->application->getContainer()->get('event_manager')->subscribe(WillSendResponse::getName(), function () use(&$willSendResponseCalled) { $willSendResponseCalled = true; }); $request = Request::create('/'); $response = new Response('This is some valid response.'); ob_start(); $this->application->sendResponse($response, $request); $content = ob_get_contents(); ob_end_clean(); $this->assertEquals('This is some valid response.', $content); $this->assertTrue($willSendResponseCalled); }
/** * @covers \Splot\Framework\Events\WillSendResponse::__construct * @covers \Splot\Framework\Events\WillSendResponse::getRequest * @covers \Splot\Framework\Events\WillSendResponse::getResponse */ public function testWillSendResponse() { $request = Request::create('/test/'); $response = new Response('some response'); $event = new Events\WillSendResponse($response, $request); $this->assertSame($request, $event->getRequest()); $this->assertSame($response, $event->getResponse()); }