class SubstrTest

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

Tests the substr plugin.

@coversDefaultClass \Drupal\migrate\Plugin\migrate\process\Substr

@group migrate

Hierarchy

Expanded class hierarchy of SubstrTest

File

core/modules/migrate/tests/src/Unit/process/SubstrTest.php, line 19

Namespace

Drupal\Tests\migrate\Unit\process
View source
class SubstrTest extends MigrateProcessTestCase {
    
    /**
     * Tests Substr plugin based on providerTestSubstr() values.
     *
     * @dataProvider providerTestSubstr
     */
    public function testSubstr($start = NULL, $length = NULL, $expected = NULL) : void {
        $configuration['start'] = $start;
        $configuration['length'] = $length;
        $this->plugin = new Substr($configuration, 'map', []);
        $value = $this->plugin
            ->transform('Captain Janeway', $this->migrateExecutable, $this->row, 'destination_property');
        $this->assertSame($expected, $value);
    }
    
    /**
     * Data provider for testSubstr().
     */
    public static function providerTestSubstr() {
        return [
            // Tests with valid start and length values.
[
                0,
                7,
                'Captain',
            ],
            // Tests with valid start > 0 and valid length.
[
                6,
                3,
                'n J',
            ],
            // Tests with valid start < 0 and valid length.
[
                -7,
                4,
                'Jane',
            ],
            // Tests without start value and valid length value.
[
                NULL,
                7,
                'Captain',
            ],
            // Tests with valid start value and no length value.
[
                1,
                NULL,
                'aptain Janeway',
            ],
            // Tests without both start and length values.
[
                NULL,
                NULL,
                'Captain Janeway',
            ],
        ];
    }
    
    /**
     * Tests invalid input type.
     */
    public function testSubstrFail() : void {
        $configuration = [];
        $this->plugin = new Substr($configuration, 'map', []);
        $this->expectException(MigrateException::class);
        $this->expectExceptionMessage('The input value must be a string.');
        $this->plugin
            ->transform([
            'Captain Janeway',
        ], $this->migrateExecutable, $this->row, 'destination_property');
    }
    
    /**
     * Tests that the start parameter is an integer.
     */
    public function testStartIsString() : void {
        $configuration['start'] = '2';
        $this->plugin = new Substr($configuration, 'map', []);
        $this->expectException(MigrateException::class);
        $this->expectExceptionMessage('The start position configuration value should be an integer. Omit this key to capture from the beginning of the string.');
        $this->plugin
            ->transform([
            'foo',
        ], $this->migrateExecutable, $this->row, 'destination_property');
    }
    
    /**
     * Tests that the length parameter is an integer.
     */
    public function testLengthIsString() : void {
        $configuration['length'] = '1';
        $this->plugin = new Substr($configuration, 'map', []);
        $this->expectException(MigrateException::class);
        $this->expectExceptionMessage('The character length configuration value should be an integer. Omit this key to capture from the start position to the end of the string.');
        $this->plugin
            ->transform([
            'foo',
        ], $this->migrateExecutable, $this->row, 'destination_property');
    }

}

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
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.
SubstrTest::providerTestSubstr public static function Data provider for testSubstr().
SubstrTest::testLengthIsString public function Tests that the length parameter is an integer.
SubstrTest::testStartIsString public function Tests that the start parameter is an integer.
SubstrTest::testSubstr public function Tests Substr plugin based on providerTestSubstr() values.
SubstrTest::testSubstrFail public function Tests invalid input type.
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.