ead1d4e6e6eca8b231f938b35fe6b7d03eecdb85
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Routing / RouterBaseTest.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Tests\drupalmoduleupgrader\Unit\Converter\Routing\RouterBaseTest.
6  */
7
8 namespace Drupal\Tests\drupalmoduleupgrader\Unit\Routing;
9
10 use Drupal\drupalmoduleupgrader\Routing\Drupal8\RouteWrapper;
11 use Drupal\drupalmoduleupgrader\Routing\RouterBase;
12 use Drupal\Tests\UnitTestCase;
13 use Symfony\Component\Routing\Route;
14 use Symfony\Component\Routing\RouteCollection;
15
16 /**
17  * @group DMU.Routing
18  */
19 class RouterBaseTest extends UnitTestCase {
20
21   private $userEdit, $userView, $userRoot, $routeProvider;
22
23   public function __construct() {
24     $this->userEdit = new Route('/user/{user}/edit');
25     $this->userView = new Route('/user/{user}');
26     $this->userRoot = new Route('/user');
27
28     $route_collection = new RouteCollection();
29     $route_collection->add('user', $this->userRoot);
30
31     $this->routeProvider = $this->getMock('\Drupal\Core\Routing\RouteProviderInterface');
32     $this->routeProvider
33       ->expects($this->any())
34       ->method('getRoutesByPattern')
35       ->with('/user')
36       ->will($this->returnValue($route_collection));
37   }
38
39   public function testAddRoute() {
40     $router = new RouterBase();
41     $this->assertCount(0, $router);
42
43     $route = new RouteWrapper('user.edit', $this->userEdit, $this->routeProvider);
44     $router->addRoute($route);
45     $this->assertCount(1, $router);
46   }
47
48   /**
49    * @depends testAddRoute
50    */
51   public function testFinalize() {
52     $router = new RouterBase();
53
54     $user_edit = new RouteWrapper('user.edit', $this->userEdit, $this->routeProvider);
55     $router->addRoute($user_edit);
56
57     $user_view = new RouteWrapper('user.view', $this->userView, $this->routeProvider);
58     $router->addRoute($user_view);
59
60     $router->finalize();
61
62     $this->assertTrue($user_edit->hasParent());
63     $this->assertSame($user_view, $user_edit->getParent());
64     $this->assertTrue($user_view->hasParent());
65     $this->assertEquals('/user', $user_view->getParent()->getPath());
66   }
67
68 }