MigrationPluginManagerTest.php

Same filename in this branch
  1. 10 core/modules/migrate/tests/src/Unit/MigrationPluginManagerTest.php
Same filename and directory in other branches
  1. 9 core/modules/migrate/tests/src/Unit/MigrationPluginManagerTest.php
  2. 9 core/modules/migrate/tests/src/Kernel/MigrationPluginManagerTest.php
  3. 8.9.x core/modules/migrate/tests/src/Unit/MigrationPluginManagerTest.php
  4. 11.x core/modules/migrate/tests/src/Unit/MigrationPluginManagerTest.php
  5. 11.x core/modules/migrate/tests/src/Kernel/MigrationPluginManagerTest.php

Namespace

Drupal\Tests\migrate\Kernel

File

core/modules/migrate/tests/src/Kernel/MigrationPluginManagerTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\migrate\Kernel;


/**
 * Tests the migration plugin manager.
 *
 * @group migrate
 *
 * @coversDefaultClass \Drupal\migrate\Plugin\MigrationPluginManager
 */
class MigrationPluginManagerTest extends MigrateTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'migrate',
    'migrate_tag_test',
  ];
  
  /**
   * The migration plugin manager.
   *
   * @var \Drupal\migrate\Plugin\MigrationPluginManager
   */
  protected $migrationPluginManager;
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    $this->migrationPluginManager = \Drupal::service('plugin.manager.migration');
  }
  
  /**
   * Tests Migration::createInstancesByTag().
   *
   * @covers ::createInstancesByTag
   *
   * @dataProvider providerCreateInstanceByTag
   */
  public function testCreateInstancesByTag($tags, $expected) : void {
    // The test module includes a migration that does not use the migration_tags
    // property. It is there to confirm that it is not included in the results.
    // We create it to ensure it is a valid migration.
    $migration = $this->migrationPluginManager
      ->createInstances([
      'tag_test_no_tag',
    ]);
    $this->assertArrayHasKey('tag_test_no_tag', $migration);
    $migrations = $this->migrationPluginManager
      ->createInstancesByTag($tags);
    $actual = array_keys($migrations);
    $this->assertSame($expected, $actual);
  }
  
  /**
   * Data provider for testCreateInstancesByTag.
   */
  public static function providerCreateInstanceByTag() {
    return [
      'get test' => [
        'test',
        [
          'tag_test_0',
          'tag_test_1',
        ],
      ],
      'get tag_test_1' => [
        'tag_test_1',
        [
          'tag_test_1',
        ],
      ],
      'get no tags' => [
        '',
        [],
      ],
    ];
  }

}

Classes

Title Deprecated Summary
MigrationPluginManagerTest Tests the migration plugin manager.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.