3 namespace Drupal\Tests\migrate\Unit\destination;
5 use Drupal\migrate\Plugin\MigrationInterface;
6 use Drupal\migrate\Plugin\migrate\destination\Config;
7 use Drupal\Tests\UnitTestCase;
10 * @coversDefaultClass \Drupal\migrate\Plugin\migrate\destination\Config
13 class ConfigTest extends UnitTestCase {
16 * Test the import method.
18 public function testImport() {
22 $migration = $this->getMockBuilder('Drupal\migrate\Plugin\Migration')
23 ->disableOriginalConstructor()
25 $config = $this->getMockBuilder('Drupal\Core\Config\Config')
26 ->disableOriginalConstructor()
28 foreach ($source as $key => $val) {
29 $config->expects($this->once())
31 ->with($this->equalTo($key), $this->equalTo($val))
32 ->will($this->returnValue($config));
34 $config->expects($this->once())
36 $config->expects($this->once())
38 ->willReturn('d8_config');
39 $config_factory = $this->getMock('Drupal\Core\Config\ConfigFactoryInterface');
40 $config_factory->expects($this->once())
41 ->method('getEditable')
43 ->will($this->returnValue($config));
44 $row = $this->getMockBuilder('Drupal\migrate\Row')
45 ->disableOriginalConstructor()
47 $row->expects($this->any())
48 ->method('getRawDestination')
49 ->will($this->returnValue($source));
50 $language_manager = $this->getMockBuilder('Drupal\language\ConfigurableLanguageManagerInterface')
51 ->disableOriginalConstructor()
53 $language_manager->expects($this->never())
54 ->method('getLanguageConfigOverride')
55 ->with('fr', 'd8_config')
56 ->will($this->returnValue($config));
57 $destination = new Config(['config_name' => 'd8_config'], 'd8_config', ['pluginId' => 'd8_config'], $migration, $config_factory, $language_manager);
58 $destination_id = $destination->import($row);
59 $this->assertEquals($destination_id, ['d8_config']);
63 * Test the import method.
65 public function testLanguageImport() {
69 $migration = $this->getMockBuilder(MigrationInterface::class)
70 ->disableOriginalConstructor()
72 $config = $this->getMockBuilder('Drupal\Core\Config\Config')
73 ->disableOriginalConstructor()
75 foreach ($source as $key => $val) {
76 $config->expects($this->once())
78 ->with($this->equalTo($key), $this->equalTo($val))
79 ->will($this->returnValue($config));
81 $config->expects($this->once())
83 $config->expects($this->any())
85 ->willReturn('d8_config');
86 $config_factory = $this->getMock('Drupal\Core\Config\ConfigFactoryInterface');
87 $config_factory->expects($this->once())
88 ->method('getEditable')
90 ->will($this->returnValue($config));
91 $row = $this->getMockBuilder('Drupal\migrate\Row')
92 ->disableOriginalConstructor()
94 $row->expects($this->any())
95 ->method('getRawDestination')
96 ->will($this->returnValue($source));
97 $row->expects($this->any())
98 ->method('getDestinationProperty')
99 ->will($this->returnValue($source['langcode']));
100 $language_manager = $this->getMockBuilder('Drupal\language\ConfigurableLanguageManagerInterface')
101 ->disableOriginalConstructor()
103 $language_manager->expects($this->any())
104 ->method('getLanguageConfigOverride')
105 ->with('mi', 'd8_config')
106 ->will($this->returnValue($config));
107 $destination = new Config(['config_name' => 'd8_config', 'translations' => 'true'], 'd8_config', ['pluginId' => 'd8_config'], $migration, $config_factory, $language_manager);
108 $destination_id = $destination->import($row);
109 $this->assertEquals($destination_id, ['d8_config', 'mi']);