diff --git a/core/modules/migrate/src/Plugin/migrate/process/DefaultValue.php b/core/modules/migrate/src/Plugin/migrate/process/DefaultValue.php index a5e63888e2e6d6fc2a37a0877fedb0306d112056..3fa39d04fed8e14687d4312180eb1b1a511c0a69 100644 --- a/core/modules/migrate/src/Plugin/migrate/process/DefaultValue.php +++ b/core/modules/migrate/src/Plugin/migrate/process/DefaultValue.php @@ -41,7 +41,8 @@ * @see \Drupal\migrate\Plugin\MigrateProcessInterface * * @MigrateProcessPlugin( - * id = "default_value" + * id = "default_value", + * handle_multiples = TRUE * ) */ class DefaultValue extends ProcessPluginBase { diff --git a/core/modules/migrate/tests/src/Unit/process/DefaultValueTest.php b/core/modules/migrate/tests/src/Unit/process/DefaultValueTest.php new file mode 100644 index 0000000000000000000000000000000000000000..85496f9d5b661c22703426b8b4800ba9780cba41 --- /dev/null +++ b/core/modules/migrate/tests/src/Unit/process/DefaultValueTest.php @@ -0,0 +1,143 @@ +<?php + +namespace Drupal\Tests\migrate\Unit\process; + +use Drupal\migrate\Plugin\migrate\process\DefaultValue; + +/** + * Tests the default_value process plugin. + * + * @group migrate + * @coversDefaultClass \Drupal\migrate\Plugin\migrate\process\DefaultValue + */ +class DefaultValueTest extends MigrateProcessTestCase { + + /** + * Tests the default_value process plugin. + * + * @covers ::transform + * + * @dataProvider defaultValueDataProvider + */ + public function testDefaultValue($configuration, $expected_value, $value) { + $process = new DefaultValue($configuration, 'default_value', []); + $value = $process->transform($value, $this->migrateExecutable, $this->row, 'destinationproperty'); + $this->assertSame($expected_value, $value); + } + + /** + * Provides data for the successful lookup test. + * + * @return array + */ + public function defaultValueDataProvider() { + return [ + 'strict_true_value_populated_array' => [ + 'configuration' => [ + 'strict' => TRUE, + 'default_value' => 1, + ], + 'expected_value' => [0, 1, 2], + 'value' => [0, 1, 2], + ], + 'strict_true_value_empty_string' => [ + 'configuration' => [ + 'strict' => TRUE, + 'default_value' => 1, + ], + 'expected_value' => '', + 'value' => '', + ], + 'strict_true_value_false' => [ + 'configuration' => [ + 'strict' => TRUE, + 'default_value' => 1, + ], + 'expected_value' => FALSE, + 'value' => FALSE, + ], + 'strict_true_value_null' => [ + 'configuration' => [ + 'strict' => TRUE, + 'default_value' => 1, + ], + 'expected_value' => 1, + 'value' => NULL, + ], + 'strict_true_value_zero_string' => [ + 'configuration' => [ + 'strict' => TRUE, + 'default_value' => 1, + ], + 'expected_value' => '0', + 'value' => '0', + ], + 'strict_true_value_zero' => [ + 'configuration' => [ + 'strict' => TRUE, + 'default_value' => 1, + ], + 'expected_value' => 0, + 'value' => 0, + ], + 'strict_true_value_empty_array' => [ + 'configuration' => [ + 'strict' => TRUE, + 'default_value' => 1, + ], + 'expected_value' => [], + 'value' => [], + ], + 'array_populated' => [ + 'configuration' => [ + 'default_value' => 1, + ], + 'expected_value' => [0, 1, 2], + 'value' => [0, 1, 2], + ], + 'empty_string' => [ + 'configuration' => [ + 'default_value' => 1, + ], + 'expected_value' => 1, + 'value' => '', + ], + 'false' => [ + 'configuration' => [ + 'default_value' => 1, + ], + 'expected_value' => 1, + 'value' => FALSE, + ], + 'null' => [ + 'configuration' => [ + 'default_value' => 1, + ], + 'expected_value' => 1, + 'value' => NULL, + ], + 'string_zero' => [ + 'configuration' => [ + 'default_value' => 1, + ], + 'expected_value' => 1, + 'value' => '0', + ], + 'int_zero' => [ + 'configuration' => [ + 'default_value' => 1, + ], + 'expected_value' => 1, + 'value' => 0, + ], + 'empty_array' => [ + 'configuration' => [ + 'default_value' => 1, + ], + 'expected_value' => 1, + 'value' => [], + ], + ]; + } + +}