function ProcessFieldTest::testTransform

Same name and namespace in other branches
  1. 9 core/modules/field/tests/src/Unit/Plugin/migrate/process/ProcessFieldTest.php \Drupal\Tests\field\Unit\Plugin\migrate\process\ProcessFieldTest::testTransform()
  2. 8.9.x core/modules/field/tests/src/Unit/Plugin/migrate/process/ProcessFieldTest.php \Drupal\Tests\field\Unit\Plugin\migrate\process\ProcessFieldTest::testTransform()
  3. 11.x core/modules/field/tests/src/Unit/Plugin/migrate/process/ProcessFieldTest.php \Drupal\Tests\field\Unit\Plugin\migrate\process\ProcessFieldTest::testTransform()

Tests the transform method.

@covers ::transform
@dataProvider providerTestTransform

Parameters

string $method: The method to call.

string $value: The value to process.

mixed $expected_value: The expected transformed value.

string $migrate_exception: The MigrateException message to expect.

bool $plugin_not_found: Whether the field plugin is not found.

File

core/modules/field/tests/src/Unit/Plugin/migrate/process/ProcessFieldTest.php, line 84

Class

ProcessFieldTest
Tests the ProcessField migrate process plugin.

Namespace

Drupal\Tests\field\Unit\Plugin\migrate\process

Code

public function testTransform($method, $value, $expected_value, $migrate_exception = '', $plugin_not_found = FALSE) : void {
  if ($method) {
    $this->fieldPlugin
      ->{$method}($this->row
      ->reveal())
      ->willReturn($expected_value);
  }
  $plugin = new ProcessField([
    'method' => $method,
  ], $value, [], $this->fieldManager
    ->reveal(), $this->migration
    ->reveal());
  if ($migrate_exception) {
    $this->expectException(MigrateException::class);
    $this->expectExceptionMessage($migrate_exception);
  }
  if ($plugin_not_found) {
    $exception = new PluginNotFoundException('foo');
    $this->fieldManager
      ->getPluginIdFromFieldType()
      ->willThrow($exception);
  }
  $transformed_value = $plugin->transform($value, $this->migrateExecutable
    ->reveal(), $this->row
    ->reveal(), 'foo');
  $this->assertSame($transformed_value, $expected_value);
}

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