'home', 'action' => 'index'], '', ['controller' => 'home', 'action' => 'index'] ], [ '{controller}/{action}', [], 'posts/new', ['controller' => 'posts', 'action' => 'new'] ], [ '{controller}/{id:\d+}/{action}', [], 'posts/3/edit', ['controller' => 'posts', 'action' => 'edit', 'id' => '3'] ], [ '{action}', ['controller' => 'home'], 'login', ['controller' => 'home', 'action' => 'login'] ] ]; } /** * * @test * @dataProvider routeProvider */ public function matchingRouteSuccess($route, $params, $url, $expected_param) { $router = new Router(); $router->add($route, $params); $this->assertTrue($router->match($url)); // $this->assertEquals($expected_param, $router->getParams()); } /** * * @test * @dataProvider routeProvider */ public function dispatchingRouteSuccess($route, $params, $url) { // $url = 'login'; $router = new Router(); // $router->add('{action}', ['controller' => 'home']); $router->add($route, $params); $this->assertTrue($router->dispatch($url)); } }