Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\migrate_upgrade\Unit;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\migrate_upgrade\MigrateUpgradeDrushRunner;
|
Chris@0
|
6 use Drupal\Tests\migrate\Unit\MigrateTestCase;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Tests for the MigrateUpgradeDrushRunner class.
|
Chris@0
|
10 *
|
Chris@0
|
11 * @group migrate_upgrade
|
Chris@0
|
12 * @coversDefaultClass \Drupal\migrate_upgrade\MigrateUpgradeDrushRunner
|
Chris@0
|
13 */
|
Chris@0
|
14 class MigrateUpgradeDrushRunnerTest extends MigrateTestCase {
|
Chris@0
|
15
|
Chris@0
|
16 /**
|
Chris@0
|
17 * Test the id substitution functions.
|
Chris@0
|
18 *
|
Chris@0
|
19 * @param array $source
|
Chris@0
|
20 * The source data.
|
Chris@0
|
21 * @param array $expected
|
Chris@0
|
22 * The expected results.
|
Chris@0
|
23 *
|
Chris@0
|
24 * @covers ::substituteIds
|
Chris@0
|
25 * @covers ::substituteMigrationIds
|
Chris@0
|
26 *
|
Chris@0
|
27 * @dataProvider getData
|
Chris@0
|
28 */
|
Chris@0
|
29 public function testIdSubstitution(array $source, array $expected) {
|
Chris@0
|
30 $runner = new TestMigrateUpgradeDrushRunner();
|
Chris@0
|
31 $results = $runner->substituteIds($source);
|
Chris@0
|
32 $this->assertArrayEquals($expected, $results);
|
Chris@0
|
33 }
|
Chris@0
|
34
|
Chris@0
|
35 /**
|
Chris@0
|
36 * Returns test data for the test.
|
Chris@0
|
37 *
|
Chris@0
|
38 * @return array
|
Chris@0
|
39 * The test data.
|
Chris@0
|
40 */
|
Chris@0
|
41 public function getData() {
|
Chris@0
|
42 return [
|
Chris@0
|
43 'Single Migration Lookup' => [
|
Chris@0
|
44 'source_data' => [
|
Chris@0
|
45 'id' => 'my_migration',
|
Chris@0
|
46 'process' => [
|
Chris@0
|
47 'element' => [
|
Chris@0
|
48 'plugin' => 'migration_lookup',
|
Chris@0
|
49 'migration' => 'my_previous_migration',
|
Chris@0
|
50 'source' => 'value',
|
Chris@0
|
51 ],
|
Chris@0
|
52 ],
|
Chris@0
|
53 'migration_dependencies' => [
|
Chris@0
|
54 'required' => [
|
Chris@0
|
55 'my_previous_migration',
|
Chris@0
|
56 'required_dependency',
|
Chris@0
|
57 ],
|
Chris@0
|
58 'optional' => ['optional_dependency'],
|
Chris@0
|
59 ],
|
Chris@0
|
60 ],
|
Chris@0
|
61 'expected_result' => [
|
Chris@0
|
62 'id' => 'upgrade_my_migration',
|
Chris@0
|
63 'process' => [
|
Chris@0
|
64 'element' => [
|
Chris@0
|
65 'plugin' => 'migration_lookup',
|
Chris@0
|
66 'migration' => 'upgrade_my_previous_migration',
|
Chris@0
|
67 'source' => 'value',
|
Chris@0
|
68 ],
|
Chris@0
|
69 ],
|
Chris@0
|
70 'migration_dependencies' => [
|
Chris@0
|
71 'required' => [
|
Chris@0
|
72 'upgrade_my_previous_migration',
|
Chris@0
|
73 'upgrade_required_dependency',
|
Chris@0
|
74 ],
|
Chris@0
|
75 'optional' => ['upgrade_optional_dependency'],
|
Chris@0
|
76 ],
|
Chris@0
|
77 ],
|
Chris@0
|
78 ],
|
Chris@0
|
79 'Dual Migration Lookup' => [
|
Chris@0
|
80 'source_data' => [
|
Chris@0
|
81 'id' => 'my_migration',
|
Chris@0
|
82 'process' => [
|
Chris@0
|
83 'element' => [
|
Chris@0
|
84 'plugin' => 'migration_lookup',
|
Chris@0
|
85 'migration' => [
|
Chris@0
|
86 'my_previous_migration_1',
|
Chris@0
|
87 'my_previous_migration_2',
|
Chris@0
|
88 ],
|
Chris@0
|
89 'source_ids' => [
|
Chris@0
|
90 'my_previous_migration_1' => ['source_1'],
|
Chris@0
|
91 'my_previous_migration_2' => ['source_2'],
|
Chris@0
|
92 ],
|
Chris@0
|
93 'source' => 'value',
|
Chris@0
|
94 ],
|
Chris@0
|
95 ],
|
Chris@0
|
96 'migration_dependencies' => [
|
Chris@0
|
97 'required' => [
|
Chris@0
|
98 'my_previous_migration_1',
|
Chris@0
|
99 'required_dependency',
|
Chris@0
|
100 ],
|
Chris@0
|
101 'optional' => [
|
Chris@0
|
102 'my_previous_migration_2',
|
Chris@0
|
103 'optional_dependency',
|
Chris@0
|
104 ],
|
Chris@0
|
105 ],
|
Chris@0
|
106 ],
|
Chris@0
|
107 'expected_result' => [
|
Chris@0
|
108 'id' => 'upgrade_my_migration',
|
Chris@0
|
109 'process' => [
|
Chris@0
|
110 'element' => [
|
Chris@0
|
111 'plugin' => 'migration_lookup',
|
Chris@0
|
112 'migration' => [
|
Chris@0
|
113 'upgrade_my_previous_migration_1',
|
Chris@0
|
114 'upgrade_my_previous_migration_2',
|
Chris@0
|
115 ],
|
Chris@0
|
116 'source_ids' => [
|
Chris@0
|
117 'upgrade_my_previous_migration_1' => ['source_1'],
|
Chris@0
|
118 'upgrade_my_previous_migration_2' => ['source_2'],
|
Chris@0
|
119 ],
|
Chris@0
|
120 'source' => 'value',
|
Chris@0
|
121 ],
|
Chris@0
|
122 ],
|
Chris@0
|
123 'migration_dependencies' => [
|
Chris@0
|
124 'required' => [
|
Chris@0
|
125 'upgrade_my_previous_migration_1',
|
Chris@0
|
126 'upgrade_required_dependency',
|
Chris@0
|
127 ],
|
Chris@0
|
128 'optional' => [
|
Chris@0
|
129 'upgrade_my_previous_migration_2',
|
Chris@0
|
130 'upgrade_optional_dependency',
|
Chris@0
|
131 ],
|
Chris@0
|
132 ],
|
Chris@0
|
133 ],
|
Chris@0
|
134 ],
|
Chris@0
|
135 ];
|
Chris@0
|
136 }
|
Chris@0
|
137
|
Chris@0
|
138 }
|
Chris@0
|
139
|
Chris@0
|
140 /**
|
Chris@0
|
141 * Test class to expose protected methods.
|
Chris@0
|
142 */
|
Chris@0
|
143 class TestMigrateUpgradeDrushRunner extends MigrateUpgradeDrushRunner {
|
Chris@0
|
144
|
Chris@0
|
145 /**
|
Chris@0
|
146 * {@inheritdoc}
|
Chris@0
|
147 */
|
Chris@0
|
148 public function substituteIds($entity_array) {
|
Chris@0
|
149 return parent::substituteIds($entity_array);
|
Chris@0
|
150 }
|
Chris@0
|
151
|
Chris@0
|
152 }
|
Chris@0
|
153
|
Chris@0
|
154 namespace Drupal\migrate_upgrade;
|
Chris@0
|
155
|
Chris@0
|
156 if (!function_exists('drush_get_option')) {
|
Chris@0
|
157
|
Chris@0
|
158 /**
|
Chris@0
|
159 * Override for called function.
|
Chris@0
|
160 *
|
Chris@0
|
161 * @param mixed $option
|
Chris@0
|
162 * The name of the option to get
|
Chris@0
|
163 * @param mixed $default
|
Chris@0
|
164 * Optional. The value to return if the option has not been set
|
Chris@0
|
165 * @param mixed $context
|
Chris@0
|
166 * Optional. The context to check for the option. If this is set, only this context will be searched.
|
Chris@0
|
167 *
|
Chris@0
|
168 * @return mixed
|
Chris@0
|
169 * The default, for this override.
|
Chris@0
|
170 */
|
Chris@0
|
171 function drush_get_option($option, $default = NULL, $context = NULL) {
|
Chris@0
|
172 return $default;
|
Chris@0
|
173 }
|
Chris@0
|
174
|
Chris@0
|
175 }
|