3 use PHPRouter\RouteCollection;
9 public function users_create() {}
10 public function indexAction() {}
11 public function user() {}
14 class RouterTest extends PHPUnit_Framework_TestCase
16 private function getRouter()
18 $collection = new RouteCollection();
19 $collection->attach(new Route('/users/', array(
20 '_controller' => 'someController::users_create',
23 $collection->attach(new Route('/user/:id', array(
24 '_controller' => 'someController::user',
27 $collection->attach(new Route('/', array(
28 '_controller' => 'someController::indexAction',
31 return new Router($collection);
34 public function matcherProvider1()
36 $router = $this->getRouter();
38 array($router, '', true),
39 array($router, '/', true),
40 array($router, '/aaa', false),
41 array($router, '/users', true),
42 array($router, '/user/1', true),
43 array($router, '/user/%E3%81%82', true),
47 public function matcherProvider2()
49 $router = $this->getRouter();
50 $router->setBasePath('/api');
52 array($router, '', false),
53 array($router, '/', false),
54 array($router, '/aaa', false),
55 array($router, '/users', false),
56 array($router, '/user/1', false),
57 array($router, '/user/%E3%81%82', false),
59 array($router, '/api', true),
60 array($router, '/api/aaa', false),
61 array($router, '/api/users', true),
62 array($router, '/api/user/1', true),
63 array($router, '/api/user/%E3%81%82', true),
67 public function matcherProvider()
69 return array_merge($this->matcherProvider1(), $this->matcherProvider2());
73 * @dataProvider matcherProvider
75 public function testMatch($router, $path, $expected)
77 $this->assertEquals($expected, !!$router->match($path));