Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Plugin / DMU / Fixer / CreateClassTest.php
1 <?php
2
3 namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Fixer;
4
5 use Drupal\drupalmoduleupgrader\Plugin\DMU\Fixer\CreateClass;
6 use Drupal\drupalmoduleupgrader\Plugin\DMU\Fixer\Delete;
7 use Drupal\drupalmoduleupgrader\Plugin\DMU\Indexer\Classes;
8 use Drupal\Tests\drupalmoduleupgrader\Unit\TestBase;
9
10 /**
11  * @group DMU.Fixer
12  */
13 class CreateClassTest extends TestBase {
14
15   public function test() {
16     $indexer = new Classes([], 'class', [], $this->db, $this->target);
17     $indexer->build();
18
19     $this
20       ->container
21       ->get('plugin.manager.drupalmoduleupgrader.indexer')
22       ->method('createInstance')
23       ->with('class')
24       ->willReturn($indexer);
25
26     $config = [
27       'class' => '\Drupal\foo\MyBaz',
28       'destination' => '~/src/MyBaz.php',
29       'parent' => '\Drupal\Core\Baz\BazBase',
30       'interfaces' => [
31         '\Drupal\Core\Baz\BazInterface',
32         '\Drupal\Core\Executable\ExecutableInterface',
33       ],
34       'doc' => 'This is my bazzifier. There are many like it, but this one is mine.',
35     ];
36     $plugin = new CreateClass($config, uniqID(), []);
37     $plugin->setTarget($this->target);
38     $plugin->execute();
39
40     $this->assertTrue($indexer->has('MyBaz'));
41     $classes = $indexer->get('MyBaz');
42     $this->assertCount(1, $classes);
43     /** @var \Pharborist\Objects\ClassNode $class */
44     $class = $classes->get(0);
45     $this->assertInstanceOf('\Pharborist\Objects\ClassNode', $class);
46     $this->assertEquals('\Drupal\foo\MyBaz', $class->getName()->getAbsolutePath());
47     $this->assertEquals('MyBaz', $class->getName()->getText());
48     $parent = $class->getExtends();
49     $this->assertInstanceOf('\Pharborist\Namespaces\NameNode', $parent);
50     $this->assertEquals('BazBase', $parent->getText());
51     return;
52     $interfaces = $class->getImplementList();
53     $this->assertCount(2, $interfaces->getItems());
54     $this->assertEquals('BazInterface', $interfaces->get(0)->getText());
55     $this->assertEquals('ExecutableInterface', $interfaces->get(1)->getText());
56   }
57
58 }