Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Routing / RouterBaseTest.php
diff --git a/web/modules/contrib/drupalmoduleupgrader/tests/src/Unit/Routing/RouterBaseTest.php b/web/modules/contrib/drupalmoduleupgrader/tests/src/Unit/Routing/RouterBaseTest.php
new file mode 100644 (file)
index 0000000..ead1d4e
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\drupalmoduleupgrader\Unit\Converter\Routing\RouterBaseTest.
+ */
+
+namespace Drupal\Tests\drupalmoduleupgrader\Unit\Routing;
+
+use Drupal\drupalmoduleupgrader\Routing\Drupal8\RouteWrapper;
+use Drupal\drupalmoduleupgrader\Routing\RouterBase;
+use Drupal\Tests\UnitTestCase;
+use Symfony\Component\Routing\Route;
+use Symfony\Component\Routing\RouteCollection;
+
+/**
+ * @group DMU.Routing
+ */
+class RouterBaseTest extends UnitTestCase {
+
+  private $userEdit, $userView, $userRoot, $routeProvider;
+
+  public function __construct() {
+    $this->userEdit = new Route('/user/{user}/edit');
+    $this->userView = new Route('/user/{user}');
+    $this->userRoot = new Route('/user');
+
+    $route_collection = new RouteCollection();
+    $route_collection->add('user', $this->userRoot);
+
+    $this->routeProvider = $this->getMock('\Drupal\Core\Routing\RouteProviderInterface');
+    $this->routeProvider
+      ->expects($this->any())
+      ->method('getRoutesByPattern')
+      ->with('/user')
+      ->will($this->returnValue($route_collection));
+  }
+
+  public function testAddRoute() {
+    $router = new RouterBase();
+    $this->assertCount(0, $router);
+
+    $route = new RouteWrapper('user.edit', $this->userEdit, $this->routeProvider);
+    $router->addRoute($route);
+    $this->assertCount(1, $router);
+  }
+
+  /**
+   * @depends testAddRoute
+   */
+  public function testFinalize() {
+    $router = new RouterBase();
+
+    $user_edit = new RouteWrapper('user.edit', $this->userEdit, $this->routeProvider);
+    $router->addRoute($user_edit);
+
+    $user_view = new RouteWrapper('user.view', $this->userView, $this->routeProvider);
+    $router->addRoute($user_view);
+
+    $router->finalize();
+
+    $this->assertTrue($user_edit->hasParent());
+    $this->assertSame($user_view, $user_edit->getParent());
+    $this->assertTrue($user_view->hasParent());
+    $this->assertEquals('/user', $user_view->getParent()->getPath());
+  }
+
+}