Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Plugin / DMU / Fixer / HookToYAMLTest.php
1 <?php
2
3 namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Fixer;
4
5 use Drupal\Component\Serialization\Yaml as YAML;
6 use Drupal\drupalmoduleupgrader\Plugin\DMU\Fixer\HookToYAML;
7 use Drupal\Tests\drupalmoduleupgrader\Unit\TestBase;
8
9 /**
10  * @group DMU.Fixer
11  */
12 class HookToYAMLTest extends TestBase {
13
14   public function test() {
15     $permissions = [
16       'bazify' => [
17         'title' => 'Do snazzy bazzy things',
18       ],
19     ];
20
21     $indexer = $this->getMockBuilder('\Drupal\drupalmoduleupgrader\Plugin\DMU\Indexer\Functions')
22       ->disableOriginalConstructor()
23       ->getMock();
24     $indexer->method('has')->with('hook_permission')->willReturn(TRUE);
25     $indexer->method('hasExecutable')->with('hook_permission')->willReturn(TRUE);
26     $indexer->method('execute')->with('hook_permission')->willReturn($permissions);
27     $this
28       ->container
29       ->get('plugin.manager.drupalmoduleupgrader.indexer')
30       ->method('createInstance')
31       ->with('function')
32       ->willReturn($indexer);
33
34     $config = [
35       'hook' => 'permission',
36       'destination' => '~/foo.permissions.yml',
37     ];
38     $plugin = new HookToYAML($config, uniqID(), []);
39     $plugin->setTarget($this->target);
40     $plugin->execute();
41
42     $url = $this->dir->getChild('foo.permissions.yml')->url();
43     $this->assertFileExists($url);
44     $this->assertSame(YAML::encode($permissions), file_get_contents($url));
45   }
46
47 }