function EntityContentBaseTest::testUntranslatable

Same name in this branch
  1. 11.x core/modules/migrate/tests/src/Unit/Plugin/migrate/destination/EntityContentBaseTest.php \Drupal\Tests\migrate\Unit\Plugin\migrate\destination\EntityContentBaseTest::testUntranslatable()
Same name in other branches
  1. 9 core/modules/migrate_drupal/tests/src/Kernel/d6/EntityContentBaseTest.php \Drupal\Tests\migrate_drupal\Kernel\d6\EntityContentBaseTest::testUntranslatable()
  2. 9 core/modules/migrate/tests/src/Unit/Plugin/migrate/destination/EntityContentBaseTest.php \Drupal\Tests\migrate\Unit\Plugin\migrate\destination\EntityContentBaseTest::testUntranslatable()
  3. 8.9.x core/modules/migrate_drupal/tests/src/Kernel/d6/EntityContentBaseTest.php \Drupal\Tests\migrate_drupal\Kernel\d6\EntityContentBaseTest::testUntranslatable()
  4. 8.9.x core/modules/migrate/tests/src/Unit/Plugin/migrate/destination/EntityContentBaseTest.php \Drupal\Tests\migrate\Unit\Plugin\migrate\destination\EntityContentBaseTest::testUntranslatable()
  5. 10 core/modules/migrate_drupal/tests/src/Kernel/d6/EntityContentBaseTest.php \Drupal\Tests\migrate_drupal\Kernel\d6\EntityContentBaseTest::testUntranslatable()
  6. 10 core/modules/migrate/tests/src/Unit/Plugin/migrate/destination/EntityContentBaseTest.php \Drupal\Tests\migrate\Unit\Plugin\migrate\destination\EntityContentBaseTest::testUntranslatable()

Tests that translation destination fails for untranslatable entities.

File

core/modules/migrate_drupal/tests/src/Kernel/d6/EntityContentBaseTest.php, line 98

Class

EntityContentBaseTest
@group migrate_drupal

Namespace

Drupal\Tests\migrate_drupal\Kernel\d6

Code

public function testUntranslatable() : void {
    $this->enableModules([
        'language_test',
    ]);
    $this->installEntitySchema('no_language_entity_test');
    
    /** @var MigrationInterface $migration */
    $migration = \Drupal::service('plugin.manager.migration')->createStubMigration([
        'source' => [
            'plugin' => 'embedded_data',
            'ids' => [
                'id' => [
                    'type' => 'integer',
                ],
            ],
            'data_rows' => [
                [
                    'id' => 1,
                ],
            ],
        ],
        'process' => [
            'id' => 'id',
        ],
        'destination' => [
            'plugin' => 'entity:no_language_entity_test',
            'translations' => TRUE,
        ],
    ]);
    $message = $this->prophesize(MigrateMessageInterface::class);
    // Match the expected message. Can't use default argument types, because
    // we need to convert to string from TranslatableMarkup.
    $argument = Argument::that(function ($msg) {
        return str_contains((string) $msg, htmlentities('The "no_language_entity_test" entity type does not support translations.'));
    });
    $message->display($argument, Argument::any())
        ->shouldBeCalled();
    $executable = new MigrateExecutable($migration, $message->reveal());
    $executable->import();
}

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