/** * @covers \Core\Application\BaseApplication::run * @covers \Core\Application\BaseApplication::setRequest * @covers \Core\Request\Request::create * @covers \Core\Facade\Router::get */ public function testIfControllersCanReturnView() { MockPaths::createMockPaths(); $app = new Application(MockPaths::$basePath); Router::get('/user/{name}', '\\Core\\Tests\\Stubs\\Controllers\\StubController@testReturnView'); $app->setRequest(Request::create('http://example.com/user/sam')); $app->run(); $this->assertTrue(headers_sent()); $this->expectOutputString("Hello sam"); }
/** * @covers \Core\Request\Request::json * @covers \Core\Request\Request::isJson */ public function testJsonAndIsJsonMethod() { $request = Request::create('http://example.com/somePath', 'GET', [], ['CONTENT_TYPE' => 'application/json; charset=utf-8'], [], [], '{"data": "value"}'); $this->assertSame('value', $request->json('data')); $this->assertTrue($request->isJson()); }
/** * @covers \Core\Router\Router::any */ public function testAnyMethod() { // GET $router = $this->getRouter(); $router->any('/page/{id}', function ($payload) { return $payload['id']; }); $response = $router->handle(Request::create('http://example.com/page/somePage')); $this->assertSame('somePage', $response); // POST $router = $this->getRouter(); $router->any('/page/{id}', function ($payload) { return $payload['id']; }); $response = $router->handle(Request::create('http://example.com/page/somePage', 'POST')); $this->assertSame('somePage', $response); // PUT $router = $this->getRouter(); $router->any('/page/{id}', function ($payload) { return $payload['id']; }); $response = $router->handle(Request::create('http://example.com/page/somePage', 'PUT')); $this->assertSame('somePage', $response); // PATCH $router = $this->getRouter(); $router->any('/page/{id}', function ($payload) { return $payload['id']; }); $response = $router->handle(Request::create('http://example.com/page/somePage', 'PATCH')); $this->assertSame('somePage', $response); // DELETE $router = $this->getRouter(); $router->any('/page/{id}', function ($payload) { return $payload['id']; }); $response = $router->handle(Request::create('http://example.com/page/somePage', 'DELETE')); $this->assertSame('somePage', $response); // OPTIONS $router = $this->getRouter(); $router->any('/page/{id}', function ($payload) { return $payload['id']; }); $response = $router->handle(Request::create('http://example.com/page/somePage', 'OPTIONS')); $this->assertSame('somePage', $response); }