74 lines
1.7 KiB
PHP
74 lines
1.7 KiB
PHP
<?php
|
|
namespace Core;
|
|
|
|
class RouterTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* Data provider for matchingRouteSuccess
|
|
*
|
|
* @return array
|
|
*/
|
|
public function routeProvider()
|
|
{
|
|
return [
|
|
[
|
|
'',
|
|
['controller' => '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));
|
|
}
|
|
}
|