Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Routing / LinkBinding / LinkBindingTest.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Tests\drupalmoduleupgrader\Unit\Converter\Routing\LinkBinding\LinkBindingTest.
6  */
7
8 namespace Drupal\Tests\drupalmoduleupgrader\Unit\Routing\LinkBinding;
9
10 use Drupal\drupalmoduleupgrader\Routing\Drupal7\RouteWrapper as Drupal7Route;
11 use Drupal\drupalmoduleupgrader\Routing\Drupal8\RouteWrapper as Drupal8Route;
12 use Drupal\drupalmoduleupgrader\Routing\LinkBinding\LinkBinding;
13 use Drupal\drupalmoduleupgrader\Routing\LinkIndex;
14 use Drupal\Tests\UnitTestCase;
15 use Symfony\Component\Routing\Route;
16
17 /**
18  * @group DMU.Routing
19  */
20 class LinkBindingTest extends UnitTestCase {
21
22   private $source, $destination;
23
24   public function __construct() {
25     $item = array(
26       'title' => 'Diff',
27       'description' => 'Diff settings.',
28       'file' => 'diff.admin.inc',
29       'page callback' => 'drupal_get_form',
30       'page arguments' => array('diff_admin_settings'),
31       'access arguments' => array('administer site configuration'),
32     );
33     $this->source = new Drupal7Route('admin/config/content/diff', $item);
34     $this->destination = new Drupal8Route('diff.settings', new Route('/admin/config/content/diff'), $this->getMock('\Drupal\Core\Routing\RouteProviderInterface'));
35   }
36
37   private function getMockBinding() {
38     return new LinkBinding($this->source, $this->destination);
39   }
40
41   public function testGetSource() {
42     $this->assertSame($this->source, $this->getMockBinding()->getSource());
43   }
44
45   public function testGetDestination() {
46     $this->assertSame($this->destination, $this->getMockBinding()->getDestination());
47   }
48
49   public function testGetIdentifier() {
50     $this->assertSame('diff.settings', $this->getMockBinding()->getIdentifier());
51   }
52
53   public function testOnIndexed() {
54     $binding = $this->getMockBinding();
55     $index = new LinkIndex();
56     $index->addBinding($binding);
57     $this->assertSame('diff.settings', $binding->getIdentifier());
58
59     // If a binding is added with the same identifier (which could easily happen,
60     // depending on how the binding computes its identifier), _0, _1, etc. should
61     // be appended to it by the index.
62     $clone = clone $binding;
63     $index->addBinding($clone);
64     $this->assertSame('diff.settings_0', $clone->getIdentifier());
65   }
66
67   public function testBuild() {
68     $link = $this->getMockBinding()->build();
69     $this->assertEquals('diff.settings', $link['route_name']);
70     $this->assertEquals('Diff', $link['title']);
71     $this->assertArrayNotHasKey('weight', $link);
72   }
73
74 }