@@ 17-72 (lines=56) @@ | ||
14 | * Class HasMatcherTraitTest |
|
15 | * @package Nip\Router\Tests\Legacy\Router\Traits |
|
16 | */ |
|
17 | class HasMatcherTraitTest extends AbstractTest |
|
18 | { |
|
19 | ||
20 | public function testNotFound() |
|
21 | { |
|
22 | $router = new Router(); |
|
23 | self::expectException(ResourceNotFoundException::class); |
|
24 | ||
25 | $request = Request::create('/404'); |
|
26 | $router->route($request); |
|
27 | } |
|
28 | ||
29 | public function testRouteLiteral() |
|
30 | { |
|
31 | $router = new Router(); |
|
32 | $collection = $router->getRoutes(); |
|
33 | ||
34 | RouteFactory::generateLiteralRoute($collection, "admin.index", Route::class, "/admin", "/index"); |
|
35 | RouteFactory::generateLiteralRoute($collection, "api.index", Route::class, "/api", "/index"); |
|
36 | ||
37 | $request = Request::create('/api/index'); |
|
38 | $params = $router->route($request); |
|
39 | self::assertEquals(['_route' => 'api.index'], $params); |
|
40 | ||
41 | $currentRoute = $router->getCurrent(); |
|
42 | self::assertInstanceOf(Route::class, $currentRoute); |
|
43 | self::assertEquals('api.index', $currentRoute->getName()); |
|
44 | ||
45 | $request = Request::create('/admin/index'); |
|
46 | $router->route($request); |
|
47 | self::assertEquals('admin.index', $router->getCurrent()->getName()); |
|
48 | } |
|
49 | ||
50 | public function testRouteDynamic() |
|
51 | { |
|
52 | $router = new Router(); |
|
53 | $collection = $router->getRoutes(); |
|
54 | ||
55 | RouteFactory::generateStandardRoute($collection, "admin.standard", StandardRoute::class, "/admin", |
|
56 | '/:controller/:action', ['module' => 'admin']); |
|
57 | RouteFactory::generateStandardRoute($collection, "api.standard", StandardRoute::class, "/api", |
|
58 | '/:controller/:action', ['module' => 'api']); |
|
59 | ||
60 | $request = Request::create('/api/pages/delete'); |
|
61 | self::assertEquals( |
|
62 | ['module' => 'api', 'controller' => 'pages', 'action' => 'delete','_route' => 'api.standard'], |
|
63 | $router->route($request) |
|
64 | ); |
|
65 | ||
66 | $request = Request::create('/admin/pages/delete'); |
|
67 | self::assertEquals( |
|
68 | ['module' => 'admin', 'controller' => 'pages', 'action' => 'delete', '_route' => 'admin.standard'], |
|
69 | $router->route($request) |
|
70 | ); |
|
71 | } |
|
72 | } |
|
73 |
@@ 17-72 (lines=56) @@ | ||
14 | * Class HasMatcherTraitTest |
|
15 | * @package Nip\Router\Tests\Router\Traits |
|
16 | */ |
|
17 | class HasMatcherTraitTest extends AbstractTest |
|
18 | { |
|
19 | ||
20 | public function testNotFound() |
|
21 | { |
|
22 | $router = new Router(); |
|
23 | self::expectException(ResourceNotFoundException::class); |
|
24 | ||
25 | $request = Request::create('/404'); |
|
26 | $router->matchRequest($request); |
|
27 | } |
|
28 | ||
29 | public function testRouteLiteral() |
|
30 | { |
|
31 | $router = new Router(); |
|
32 | $collection = $router->getRoutes(); |
|
33 | ||
34 | RouteFactory::generateLiteralRoute($collection, "admin.index", Route::class, "/admin", "/index"); |
|
35 | RouteFactory::generateLiteralRoute($collection, "api.index", Route::class, "/api", "/index"); |
|
36 | ||
37 | $request = Request::create('/api/index'); |
|
38 | $params = $router->matchRequest($request); |
|
39 | self::assertEquals(['_route' => 'api.index'], $params); |
|
40 | ||
41 | $currentRoute = $router->getCurrent(); |
|
42 | self::assertInstanceOf(Route::class, $currentRoute); |
|
43 | self::assertEquals('api.index', $currentRoute->getName()); |
|
44 | ||
45 | $request = Request::create('/admin/index'); |
|
46 | $router->matchRequest($request); |
|
47 | self::assertEquals('admin.index', $router->getCurrent()->getName()); |
|
48 | } |
|
49 | ||
50 | public function testRouteDynamic() |
|
51 | { |
|
52 | $router = new Router(); |
|
53 | $collection = $router->getRoutes(); |
|
54 | ||
55 | RouteFactory::generateStandardRoute($collection, "admin.standard", StandardRoute::class, "/admin", |
|
56 | '/:controller/:action', ['module' => 'admin']); |
|
57 | RouteFactory::generateStandardRoute($collection, "api.standard", StandardRoute::class, "/api", |
|
58 | '/:controller/:action', ['module' => 'api']); |
|
59 | ||
60 | $request = Request::create('/api/pages/delete'); |
|
61 | self::assertEquals( |
|
62 | ['module' => 'api', 'controller' => 'pages', 'action' => 'delete', '_route' => 'api.standard'], |
|
63 | $router->matchRequest($request) |
|
64 | ); |
|
65 | ||
66 | $request = Request::create('/admin/pages/delete'); |
|
67 | self::assertEquals( |
|
68 | ['module' => 'admin', 'controller' => 'pages', 'action' => 'delete', '_route' => 'admin.standard'], |
|
69 | $router->matchRequest($request) |
|
70 | ); |
|
71 | } |
|
72 | } |
|
73 |