function MigrateExecutableTest::testImportWithFailingRewind

Same name and namespace in other branches
  1. 9 core/modules/migrate/tests/src/Unit/MigrateExecutableTest.php \Drupal\Tests\migrate\Unit\MigrateExecutableTest::testImportWithFailingRewind()
  2. 10 core/modules/migrate/tests/src/Unit/MigrateExecutableTest.php \Drupal\Tests\migrate\Unit\MigrateExecutableTest::testImportWithFailingRewind()
  3. 11.x core/modules/migrate/tests/src/Unit/MigrateExecutableTest.php \Drupal\Tests\migrate\Unit\MigrateExecutableTest::testImportWithFailingRewind()

Tests an import with an incomplete rewinding.

File

core/modules/migrate/tests/src/Unit/MigrateExecutableTest.php, line 63

Class

MigrateExecutableTest
@coversDefaultClass <a href="/api/drupal/core%21modules%21migrate%21src%21MigrateExecutable.php/class/MigrateExecutable/8.9.x" title="Defines a migrate executable class." class="local">\Drupal\migrate\MigrateExecutable</a> @group migrate

Namespace

Drupal\Tests\migrate\Unit

Code

public function testImportWithFailingRewind() {
    $exception_message = $this->getRandomGenerator()
        ->string();
    $source = $this->createMock('Drupal\\migrate\\Plugin\\MigrateSourceInterface');
    $source->expects($this->once())
        ->method('rewind')
        ->will($this->throwException(new \Exception($exception_message)));
    // The exception message contains the line number where it is thrown. Save
    // it for the testing the exception message.
    $line = __LINE__ - 3;
    $this->migration
        ->expects($this->any())
        ->method('getSourcePlugin')
        ->will($this->returnValue($source));
    // Ensure that a message with the proper message was added.
    $exception_message .= " in " . __FILE__ . " line {$line}";
    $this->message
        ->expects($this->once())
        ->method('display')
        ->with("Migration failed with source plugin exception: " . Html::escape($exception_message));
    $result = $this->executable
        ->import();
    $this->assertEquals(MigrationInterface::RESULT_FAILED, $result);
}

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