You are here

trait FieldDiscoveryTestTrait in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/migrate_drupal/tests/src/Traits/FieldDiscoveryTestTrait.php \Drupal\Tests\migrate_drupal\Traits\FieldDiscoveryTestTrait
  2. 10 core/modules/migrate_drupal/tests/src/Traits/FieldDiscoveryTestTrait.php \Drupal\Tests\migrate_drupal\Traits\FieldDiscoveryTestTrait

Helper functions to test field discovery.

Hierarchy

2 files declare their use of FieldDiscoveryTestTrait
FieldDiscoveryTest.php in core/modules/migrate_drupal/tests/src/Kernel/d6/FieldDiscoveryTest.php
FieldDiscoveryTest.php in core/modules/migrate_drupal/tests/src/Kernel/d7/FieldDiscoveryTest.php

File

core/modules/migrate_drupal/tests/src/Traits/FieldDiscoveryTestTrait.php, line 12

Namespace

Drupal\Tests\migrate_drupal\Traits
View source
trait FieldDiscoveryTestTrait {

  /**
   * Asserts the field discovery returns the expected processes.
   *
   * @param \Drupal\migrate_drupal\FieldDiscoveryInterface $field_discovery
   *   The Field Discovery service.
   * @param \Drupal\migrate\Plugin\MigrationPluginManagerInterface $migration_plugin_manager
   *   The migration plugin manager service.
   * @param string $core
   *   The Drupal core version, either '6', or '7'.
   * @param string $field_plugin_method
   *   (optional) The field plugin method to use.
   * @param array $expected_process
   *   (optional) The expected resulting process.
   * @param string $entity_type_id
   *   (optional) The entity type id.
   * @param string $bundle
   *   (optional) The bundle.
   */
  public function assertFieldProcess(FieldDiscoveryInterface $field_discovery, MigrationPluginManagerInterface $migration_plugin_manager, $core, $field_plugin_method = NULL, array $expected_process = [], $entity_type_id = NULL, $bundle = NULL) {
    $definition = [
      'migration_tags' => [
        'Drupal ' . $core,
      ],
      'field_plugin_method' => $field_plugin_method,
    ];
    $migration = $migration_plugin_manager
      ->createStubMigration($definition);
    if ($bundle) {
      $field_discovery
        ->addBundleFieldProcesses($migration, $entity_type_id, $bundle);
    }
    elseif ($entity_type_id) {
      $field_discovery
        ->addEntityFieldProcesses($migration, $entity_type_id);
    }
    else {
      $field_discovery
        ->addAllFieldProcesses($migration);
    }
    $actual_process = $migration
      ->getProcess();
    $this
      ->assertSame($expected_process, $actual_process);
  }

  /**
   * Asserts the field discovery returns the expected processes.
   *
   * @param \Drupal\migrate_drupal\FieldDiscoveryInterface $field_discovery
   *   The Field Discovery service.
   * @param \Drupal\migrate\Plugin\MigrationPluginManagerInterface $migration_plugin_manager
   *   The migration plugin manager service.
   * @param string $core
   *   The Drupal core version, either '6', or '7'.
   * @param array $expected_process_keys
   *   (optional) The expected resulting process_keys.
   * @param string $entity_type_id
   *   (optional) The entity type id.
   * @param string $bundle
   *   (optional) The bundle.
   */
  public function assertFieldProcessKeys(FieldDiscoveryInterface $field_discovery, MigrationPluginManagerInterface $migration_plugin_manager, $core, array $expected_process_keys, $entity_type_id = NULL, $bundle = NULL) {
    $definition = [
      'migration_tags' => [
        'Drupal ' . $core,
      ],
    ];
    $migration = $migration_plugin_manager
      ->createStubMigration($definition);
    if ($bundle) {
      $field_discovery
        ->addBundleFieldProcesses($migration, $entity_type_id, $bundle);
    }
    elseif ($entity_type_id) {
      $field_discovery
        ->addEntityFieldProcesses($migration, $entity_type_id);
    }
    else {
      $field_discovery
        ->addAllFieldProcesses($migration);
    }
    $actual_process = $migration
      ->getProcess();
    $actual = array_keys($actual_process);
    $this
      ->assertSame(sort($expected_process_keys), sort($actual));
  }

  /**
   * Asserts a migrate source plugin.
   *
   * @param string $core
   *   The Drupal core version.
   * @param string $class
   *   The expected class of the source plugin.
   * @param array $expected_definition
   *   The expected source plugin definition.
   */
  public function assertSourcePlugin($core, $class, array $expected_definition) {
    $field_discovery = new FieldDiscoveryTestClass($this->fieldPluginManager, $this->migrationPluginManager, $this->logger);
    $source = $field_discovery
      ->getSourcePlugin($core);
    $this
      ->assertInstanceOf($class, $source);
    $this
      ->assertSame($expected_definition, $source
      ->getPluginDefinition());
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FieldDiscoveryTestTrait::assertFieldProcess public function Asserts the field discovery returns the expected processes.
FieldDiscoveryTestTrait::assertFieldProcessKeys public function Asserts the field discovery returns the expected processes.
FieldDiscoveryTestTrait::assertSourcePlugin public function Asserts a migrate source plugin.