ide_helper-8.x-2.x-dev/tests/src/Unit/Handlers/PhpStormMetaRendererTest.php

tests/src/Unit/Handlers/PhpStormMetaRendererTest.php
<?php

declare(strict_types = 1);

namespace Drupal\Tests\ide_helper\Unit\Handlers;

use Drupal\ide_helper\Handlers\PhpStormMetaRenderer;
use Drupal\Tests\ide_helper\Unit\IdeHelperTestBase;
use Symfony\Component\Finder\Finder;
use Symfony\Component\Yaml\Yaml;
use Webmozart\PathUtil\Path;

/**
 * @covers \Drupal\ide_helper\Handlers\PhpStormMetaRenderer
 *
 * @group ide_helper
 */
class PhpStormMetaRendererTest extends IdeHelperTestBase {

  protected string $ideHelperDir = '.';

  public function __construct($name = NULL, array $data = [], $dataName = '') {
    parent::__construct($name, $data, $dataName);

    $this->ideHelperDir = Path::join(__DIR__, '..', '..', '..', '..');
  }

  public function testIsEmpty(): void {
    $renderer = new PhpStormMetaRenderer();
    $this->assertTrue($renderer->isEmpty());
    $renderer->addOverride('\Foo\Bar', 'baz', ['ab' => '\AbInterface']);
    $this->assertFalse($renderer->isEmpty());
  }

  public function casesRender(): array {
    $dir = "{$this->ideHelperDir}/tests/expected/Unit/PhpStormMetaFileRenderer";
    $files = (new Finder())
      ->in($dir)
      ->name('*.yml');

    $cases = [];
    /** @var \Symfony\Component\Finder\SplFileInfo $ymlFile */
    foreach ($files as $ymlFile) {
      $phpFileName = preg_replace('/\.yml$/', '.php', $ymlFile->getPathname());
      $cases[$ymlFile->getBasename('.yml')] = [
        file_get_contents($phpFileName),
        Yaml::parse($ymlFile->getContents()),
      ];
    }

    return $cases;
  }

  /**
   * @dataProvider casesRender
   */
  public function testRender(string $expected, array $overrides): void {
    $renderer = new PhpStormMetaRenderer();
    foreach ($overrides as $override) {
      $renderer->addOverride(...$override);
    }

    $this->assertEquals($expected, $renderer->render());
  }

}

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

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