drupalmoduleupgrader-8.x-1.5/tests/src/Unit/Plugin/DMU/Fixer/CreateClassTest.php
tests/src/Unit/Plugin/DMU/Fixer/CreateClassTest.php
<?php
namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Fixer;
use Drupal\drupalmoduleupgrader\Plugin\DMU\Fixer\CreateClass;
use Drupal\drupalmoduleupgrader\Plugin\DMU\Indexer\Classes;
use Drupal\Tests\drupalmoduleupgrader\Unit\TestBase;
/**
* @group DMU.Fixer
*/
class CreateClassTest extends TestBase {
public function test() {
$indexer = new Classes([], 'class', [], $this->db, $this->target);
$indexer->build();
$this
->container
->get('plugin.manager.drupalmoduleupgrader.indexer')
->method('createInstance')
->with('class')
->willReturn($indexer);
$config = [
'class' => '\Drupal\foo\MyBaz',
'destination' => '~/src/MyBaz.php',
'parent' => '\Drupal\Core\Baz\BazBase',
'interfaces' => [
'\Drupal\Core\Baz\BazInterface',
'\Drupal\Core\Executable\ExecutableInterface',
],
'doc' => 'This is my bazzifier. There are many like it, but this one is mine.',
];
$plugin = new CreateClass($config, uniqid(), []);
$plugin->setTarget($this->target);
$plugin->execute();
$this->assertTrue($indexer->has('MyBaz'));
$classes = $indexer->getMultiple(['MyBaz']);
$this->assertCount(1, $classes);
/** @var \Pharborist\Objects\ClassNode $class */
$class = $classes->get(0);
$this->assertInstanceOf('\Pharborist\Objects\ClassNode', $class);
$this->assertEquals('\Drupal\foo\MyBaz', $class->getName()->getAbsolutePath());
$this->assertEquals('MyBaz', $class->getName()->getText());
$parent = $class->getExtends();
$this->assertInstanceOf('\Pharborist\Namespaces\NameNode', $parent);
$this->assertEquals('BazBase', $parent->getText());
return;
$interfaces = $class->getImplementList();
$this->assertCount(2, $interfaces->getItems());
$this->assertEquals('BazInterface', $interfaces->get(0)->getText());
$this->assertEquals('ExecutableInterface', $interfaces->get(1)->getText());
}
}
