class GetTest

Same name in other branches
  1. 9 core/modules/migrate/tests/src/Unit/process/GetTest.php \Drupal\Tests\migrate\Unit\process\GetTest
  2. 8.9.x core/modules/migrate/tests/src/Unit/process/GetTest.php \Drupal\Tests\migrate\Unit\process\GetTest
  3. 10 core/modules/migrate/tests/src/Unit/process/GetTest.php \Drupal\Tests\migrate\Unit\process\GetTest

Tests the get process plugin.

@group migrate

Hierarchy

Expanded class hierarchy of GetTest

File

core/modules/migrate/tests/src/Unit/process/GetTest.php, line 14

Namespace

Drupal\Tests\migrate\Unit\process
View source
class GetTest extends MigrateProcessTestCase {
    
    /**
     * Tests the Get plugin when source is a string.
     */
    public function testTransformSourceString() : void {
        $this->row
            ->expects($this->once())
            ->method('get')
            ->with('test')
            ->willReturn('source_value');
        $this->plugin = new Get([
            'source' => 'test',
        ], '', []);
        $value = $this->plugin
            ->transform(NULL, $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame('source_value', $value);
    }
    
    /**
     * Tests the Get plugin when source is an array.
     */
    public function testTransformSourceArray() : void {
        $map = [
            'test1' => 'source_value1',
            'test2' => 'source_value2',
        ];
        $this->plugin = new Get([
            'source' => [
                'test1',
                'test2',
            ],
        ], '', []);
        $this->row
            ->expects($this->exactly(2))
            ->method('get')
            ->willReturnCallback(function ($argument) use ($map) {
            return $map[$argument];
        });
        $value = $this->plugin
            ->transform(NULL, $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame([
            'source_value1',
            'source_value2',
        ], $value);
    }
    
    /**
     * Tests the Get plugin when source is a string pointing to destination.
     */
    public function testTransformSourceStringAt() : void {
        $this->row
            ->expects($this->once())
            ->method('get')
            ->with('@@test')
            ->willReturn('source_value');
        $this->plugin = new Get([
            'source' => '@@test',
        ], '', []);
        $value = $this->plugin
            ->transform(NULL, $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame('source_value', $value);
    }
    
    /**
     * Tests the Get plugin when source is an array pointing to destination.
     */
    public function testTransformSourceArrayAt() : void {
        $map = [
            'test1' => 'source_value1',
            '@@test2' => 'source_value2',
            '@@test3' => 'source_value3',
            'test4' => 'source_value4',
        ];
        $this->plugin = new Get([
            'source' => [
                'test1',
                '@@test2',
                '@@test3',
                'test4',
            ],
        ], '', []);
        $this->row
            ->expects($this->exactly(4))
            ->method('get')
            ->willReturnCallback(function ($argument) use ($map) {
            return $map[$argument];
        });
        $value = $this->plugin
            ->transform(NULL, $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame([
            'source_value1',
            'source_value2',
            'source_value3',
            'source_value4',
        ], $value);
    }
    
    /**
     * Tests the Get plugin when source has integer values.
     *
     * @dataProvider integerValuesDataProvider
     */
    public function testIntegerValues($source, $expected_value) : void {
        $this->row
            ->expects($this->atMost(2))
            ->method('get')
            ->willReturnOnConsecutiveCalls('val1', 'val2');
        $this->plugin = new Get([
            'source' => $source,
        ], '', []);
        $return = $this->plugin
            ->transform(NULL, $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame($expected_value, $return);
    }
    
    /**
     * Provides data for the successful lookup test.
     *
     * @return array
     *   An array of data for the test.
     */
    public static function integerValuesDataProvider() {
        return [
            [
                'source' => [
                    0 => 0,
                    1 => 'test',
                ],
                'expected_value' => [
                    0 => 'val1',
                    1 => 'val2',
                ],
            ],
            [
                'source' => [
                    FALSE,
                ],
                'expected_value' => [
                    NULL,
                ],
            ],
            [
                'source' => [
                    NULL,
                ],
                'expected_value' => [
                    NULL,
                ],
            ],
        ];
    }
    
    /**
     * Tests the Get plugin for syntax errors by creating a prophecy of the class.
     *
     * An example of a syntax error is "Invalid tag_line detected".
     */
    public function testPluginSyntax() : void {
        $this->assertNotNull($this->prophesize(Get::class));
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
ExpectDeprecationTrait::expectDeprecation public function Adds an expected deprecation.
ExpectDeprecationTrait::setUpErrorHandler public function Sets up the test error handler.
ExpectDeprecationTrait::tearDownErrorHandler public function Tears down the test error handler.
GetTest::integerValuesDataProvider public static function Provides data for the successful lookup test.
GetTest::testIntegerValues public function Tests the Get plugin when source has integer values.
GetTest::testPluginSyntax public function Tests the Get plugin for syntax errors by creating a prophecy of the class.
GetTest::testTransformSourceArray public function Tests the Get plugin when source is an array.
GetTest::testTransformSourceArrayAt public function Tests the Get plugin when source is an array pointing to destination.
GetTest::testTransformSourceString public function Tests the Get plugin when source is a string.
GetTest::testTransformSourceStringAt public function Tests the Get plugin when source is a string pointing to destination.
MigrateProcessTestCase::$migrateExecutable protected property The migration executable or a mock.
MigrateProcessTestCase::$plugin protected property The migration process plugin. 1
MigrateProcessTestCase::$row protected property A mock of a process row.
MigrateProcessTestCase::setUp protected function Overrides UnitTestCase::setUp 16
MigrateTestCase::$idMap protected property The migration ID map.
MigrateTestCase::$migrationConfiguration protected property An array of migration configuration values. 10
MigrateTestCase::$migrationStatus protected property Local store for mocking setStatus()/getStatus().
MigrateTestCase::createSchemaFromRow protected function Generates a table schema from a row.
MigrateTestCase::getDatabase protected function Gets an SQLite database connection object for use in tests.
MigrateTestCase::getMigration protected function Retrieves a mocked migration.
MigrateTestCase::getValue protected function Gets the value on a row for a given key.
MigrateTestCase::queryResultTest public function Tests a query.
MigrateTestCase::retrievalAssertHelper protected function Asserts tested values during test retrieval.
RandomGeneratorTrait::getRandomGenerator protected function Gets the random generator for the utility methods.
RandomGeneratorTrait::randomMachineName protected function Generates a unique random string containing letters and numbers.
RandomGeneratorTrait::randomObject public function Generates a random PHP object.
RandomGeneratorTrait::randomString public function Generates a pseudo-random string of ASCII characters of codes 32 to 126.
UnitTestCase::$root protected property The app root.
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::setDebugDumpHandler public static function Registers the dumper CLI handler when the DebugDump extension is enabled.

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