Further Drupal 8.6.4 changes. Some core files were not committed before a commit...
[yaffs-website] / web / core / modules / migrate_drupal / tests / src / Kernel / d6 / FollowUpMigrationsTest.php
1 <?php
2
3 namespace Drupal\Tests\migrate_drupal\Kernel\d6;
4
5 use Drupal\node\Entity\Node;
6 use Drupal\Tests\node\Kernel\Migrate\d6\MigrateNodeTestBase;
7
8 /**
9  * Tests follow-up migrations.
10  *
11  * @group migrate_drupal
12  */
13 class FollowUpMigrationsTest extends MigrateNodeTestBase {
14
15   /**
16    * {@inheritdoc}
17    */
18   public static $modules = [
19     'content_translation',
20     'language',
21     'menu_ui',
22     // A requirement for d6_node_translation.
23     'migrate_drupal_multilingual',
24   ];
25
26   /**
27    * {@inheritdoc}
28    */
29   protected function setUp() {
30     parent::setUp();
31     $this->executeMigrations([
32       'language',
33       'd6_language_content_settings',
34       'd6_node',
35       'd6_node_translation',
36     ]);
37   }
38
39   /**
40    * Test entity reference translations.
41    */
42   public function testEntityReferenceTranslations() {
43     // Test the entity reference field before the follow-up migrations.
44     $node = Node::load(10);
45     $this->assertSame('13', $node->get('field_reference')->target_id);
46     $this->assertSame('13', $node->get('field_reference_2')->target_id);
47     $translation = $node->getTranslation('fr');
48     $this->assertSame('20', $translation->get('field_reference')->target_id);
49     $this->assertSame('20', $translation->get('field_reference_2')->target_id);
50
51     $node = Node::load(12)->getTranslation('en');
52     $this->assertSame('10', $node->get('field_reference')->target_id);
53     $this->assertSame('10', $node->get('field_reference_2')->target_id);
54     $translation = $node->getTranslation('fr');
55     $this->assertSame('11', $translation->get('field_reference')->target_id);
56     $this->assertSame('11', $translation->get('field_reference_2')->target_id);
57
58     // Run the follow-up migrations.
59     $migration_plugin_manager = $this->container->get('plugin.manager.migration');
60     $migration_plugin_manager->clearCachedDefinitions();
61     $follow_up_migrations = $migration_plugin_manager->createInstances('d6_entity_reference_translation');
62     $this->executeMigrations(array_keys($follow_up_migrations));
63
64     // Test the entity reference field after the follow-up migrations.
65     $node = Node::load(10);
66     $this->assertSame('12', $node->get('field_reference')->target_id);
67     $this->assertSame('12', $node->get('field_reference_2')->target_id);
68     $translation = $node->getTranslation('fr');
69     $this->assertSame('12', $translation->get('field_reference')->target_id);
70     $this->assertSame('12', $translation->get('field_reference_2')->target_id);
71
72     $node = Node::load(12)->getTranslation('en');
73     $this->assertSame('10', $node->get('field_reference')->target_id);
74     $this->assertSame('10', $node->get('field_reference_2')->target_id);
75     $translation = $node->getTranslation('fr');
76     $this->assertSame('10', $translation->get('field_reference')->target_id);
77     $this->assertSame('10', $translation->get('field_reference_2')->target_id);
78   }
79
80 }