class StaticMapTest

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

Tests the static map process plugin.

@group migrate

Hierarchy

Expanded class hierarchy of StaticMapTest

File

core/modules/migrate/tests/src/Unit/process/StaticMapTest.php, line 17

Namespace

Drupal\Tests\migrate\Unit\process
View source
class StaticMapTest extends MigrateProcessTestCase {
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() : void {
        $configuration['map']['foo']['bar'] = 'baz';
        $this->plugin = new StaticMap($configuration, 'map', []);
        parent::setUp();
    }
    
    /**
     * Tests map when the source is a string.
     */
    public function testMapWithSourceString() : void {
        $value = $this->plugin
            ->transform('foo', $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame([
            'bar' => 'baz',
        ], $value);
    }
    
    /**
     * Tests map when the source is a list.
     */
    public function testMapWithSourceList() : void {
        $value = $this->plugin
            ->transform([
            'foo',
            'bar',
        ], $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame('baz', $value);
    }
    
    /**
     * Tests when the source is empty.
     */
    public function testMapWithEmptySource() : void {
        $this->expectException(MigrateException::class);
        $this->plugin
            ->transform([], $this->migrateExecutable, $this->row, 'destination_property');
    }
    
    /**
     * Tests when the source is invalid.
     */
    public function testMapWithInvalidSource() : void {
        $this->expectException(MigrateSkipRowException::class);
        $this->expectExceptionMessage(sprintf("No static mapping found for '%s' and no default value provided for destination '%s'.", Variable::export([
            'bar',
        ]), 'destination_property'));
        $this->plugin
            ->transform([
            'bar',
        ], $this->migrateExecutable, $this->row, 'destination_property');
    }
    
    /**
     * Tests when the source is invalid but there's a default.
     */
    public function testMapWithInvalidSourceWithADefaultValue() : void {
        $configuration['map']['foo']['bar'] = 'baz';
        $configuration['default_value'] = 'test';
        $this->plugin = new StaticMap($configuration, 'map', []);
        $value = $this->plugin
            ->transform([
            'bar',
        ], $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame('test', $value);
    }
    
    /**
     * Tests when the source is invalid but there's a default value of NULL.
     */
    public function testMapWithInvalidSourceWithANullDefaultValue() : void {
        $configuration['map']['foo']['bar'] = 'baz';
        $configuration['default_value'] = NULL;
        $this->plugin = new StaticMap($configuration, 'map', []);
        $value = $this->plugin
            ->transform([
            'bar',
        ], $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertNull($value);
    }
    
    /**
     * Tests when the source is invalid and bypass is enabled.
     */
    public function testMapWithInvalidSourceAndBypass() : void {
        $configuration['map']['foo']['bar'] = 'baz';
        $configuration['default_value'] = 'test';
        $configuration['bypass'] = TRUE;
        $this->plugin = new StaticMap($configuration, 'map', []);
        $this->expectException(MigrateException::class);
        $this->expectExceptionMessage('Setting both default_value and bypass is invalid.');
        $this->plugin
            ->transform([
            'bar',
        ], $this->migrateExecutable, $this->row, 'destination_property');
    }
    
    /**
     * Tests when the source is NULL.
     */
    public function testWithNullSourceNotInMap() : void {
        $this->expectException(MigrateSkipRowException::class);
        $this->expectExceptionMessage("No static mapping found for 'NULL' and no default value provided for destination 'destination_property'");
        $this->plugin
            ->transform(NULL, $this->migrateExecutable, $this->row, 'destination_property');
    }
    
    /**
     * Tests when the source is invalid but there's a default.
     */
    public function testWithNullSource() : void {
        $configuration['map']['foo']['bar'] = 'baz';
        $configuration['map'][NULL] = 'mapped NULL';
        $this->plugin = new StaticMap($configuration, 'map', []);
        $value = $this->plugin
            ->transform(NULL, $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame('mapped NULL', $value);
    }
    
    /**
     * Tests when there is a dot in a map key.
     */
    public function testMapDotInKey() : void {
        $configuration['map']['foo.bar'] = 'baz';
        $this->plugin = new StaticMap($configuration, 'map', []);
        $value = $this->plugin
            ->transform('foo.bar', $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame('baz', $value);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
ExpectDeprecationTrait::expectDeprecation public function Adds an expected deprecation.
ExpectDeprecationTrait::getCallableName private static function Returns a callable as a string suitable for inclusion in a message.
ExpectDeprecationTrait::setUpErrorHandler public function Sets up the test error handler.
ExpectDeprecationTrait::tearDownErrorHandler public function Tears down the test error handler.
MigrateProcessTestCase::$migrateExecutable protected property
MigrateProcessTestCase::$plugin protected property 1
MigrateProcessTestCase::$row protected property
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.
StaticMapTest::setUp protected function Overrides MigrateProcessTestCase::setUp
StaticMapTest::testMapDotInKey public function Tests when there is a dot in a map key.
StaticMapTest::testMapWithEmptySource public function Tests when the source is empty.
StaticMapTest::testMapWithInvalidSource public function Tests when the source is invalid.
StaticMapTest::testMapWithInvalidSourceAndBypass public function Tests when the source is invalid and bypass is enabled.
StaticMapTest::testMapWithInvalidSourceWithADefaultValue public function Tests when the source is invalid but there's a default.
StaticMapTest::testMapWithInvalidSourceWithANullDefaultValue public function Tests when the source is invalid but there's a default value of NULL.
StaticMapTest::testMapWithSourceList public function Tests map when the source is a list.
StaticMapTest::testMapWithSourceString public function Tests map when the source is a string.
StaticMapTest::testWithNullSource public function Tests when the source is invalid but there's a default.
StaticMapTest::testWithNullSourceNotInMap public function Tests when the source is NULL.
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.