You are here

public function ConfigTest::testImport in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/migrate/tests/src/Unit/destination/ConfigTest.php \Drupal\Tests\migrate\Unit\destination\ConfigTest::testImport()

Test the import method.

File

core/modules/migrate/tests/src/Unit/destination/ConfigTest.php, line 18

Class

ConfigTest
@coversDefaultClass \Drupal\migrate\Plugin\migrate\destination\Config @group migrate

Namespace

Drupal\Tests\migrate\Unit\destination

Code

public function testImport() {
  $source = [
    'test' => 'x',
  ];
  $migration = $this
    ->getMockBuilder('Drupal\\migrate\\Plugin\\Migration')
    ->disableOriginalConstructor()
    ->getMock();
  $config = $this
    ->getMockBuilder('Drupal\\Core\\Config\\Config')
    ->disableOriginalConstructor()
    ->getMock();
  foreach ($source as $key => $val) {
    $config
      ->expects($this
      ->once())
      ->method('set')
      ->with($this
      ->equalTo($key), $this
      ->equalTo($val))
      ->will($this
      ->returnValue($config));
  }
  $config
    ->expects($this
    ->once())
    ->method('save');
  $config
    ->expects($this
    ->once())
    ->method('getName')
    ->willReturn('d8_config');
  $config_factory = $this
    ->createMock('Drupal\\Core\\Config\\ConfigFactoryInterface');
  $config_factory
    ->expects($this
    ->once())
    ->method('getEditable')
    ->with('d8_config')
    ->will($this
    ->returnValue($config));
  $row = $this
    ->getMockBuilder('Drupal\\migrate\\Row')
    ->disableOriginalConstructor()
    ->getMock();
  $row
    ->expects($this
    ->any())
    ->method('getRawDestination')
    ->will($this
    ->returnValue($source));
  $language_manager = $this
    ->getMockBuilder('Drupal\\language\\ConfigurableLanguageManagerInterface')
    ->disableOriginalConstructor()
    ->getMock();
  $language_manager
    ->expects($this
    ->never())
    ->method('getLanguageConfigOverride')
    ->with('fr', 'd8_config')
    ->will($this
    ->returnValue($config));
  $destination = new Config([
    'config_name' => 'd8_config',
  ], 'd8_config', [
    'pluginId' => 'd8_config',
  ], $migration, $config_factory, $language_manager);
  $destination_id = $destination
    ->import($row);
  $this
    ->assertEquals($destination_id, [
    'd8_config',
  ]);
}