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());
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc