3 namespace Drupal\Tests\taxonomy\Kernel\Plugin\migrate\source\d7;
5 use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
8 * Tests taxonomy term source plugin.
10 * @covers \Drupal\taxonomy\Plugin\migrate\source\d7\Term
13 class TermTest extends MigrateSqlSourceTestBase {
18 public static $modules = ['taxonomy', 'migrate_drupal'];
23 public function providerSource() {
27 $tests[0]['source_data']['taxonomy_term_data'] = [
31 'name' => 'name value 1',
32 'description' => 'description value 1',
38 'name' => 'name value 2',
39 'description' => 'description value 2',
45 'name' => 'name value 3',
46 'description' => 'description value 3',
52 'name' => 'name value 4',
53 'description' => 'description value 4',
59 'name' => 'name value 5',
60 'description' => 'description value 5',
66 'name' => 'name value 6',
67 'description' => 'description value 6',
73 'name' => 'name value 7',
74 'description' => 'description value 7',
78 $tests[0]['source_data']['taxonomy_term_hierarchy'] = [
112 $tests[0]['source_data']['taxonomy_vocabulary'] = [
115 'machine_name' => 'tags',
119 'machine_name' => 'categories',
122 $tests[0]['source_data']['field_config_instance'] = [
124 'field_name' => 'field_term_field',
125 'entity_type' => 'taxonomy_term',
130 'field_name' => 'field_term_field',
131 'entity_type' => 'taxonomy_term',
132 'bundle' => 'categories',
136 $tests[0]['source_data']['field_data_field_term_field'] = [
138 'entity_type' => 'taxonomy_term',
145 'entity_type' => 'taxonomy_term',
146 'bundle' => 'categories',
153 // The expected results.
154 $tests[0]['expected_data'] = [
158 'name' => 'name value 1',
159 'description' => 'description value 1',
166 'name' => 'name value 2',
167 'description' => 'description value 2',
174 'name' => 'name value 3',
175 'description' => 'description value 3',
182 'name' => 'name value 4',
183 'description' => 'description value 4',
190 'name' => 'name value 5',
191 'description' => 'description value 5',
198 'name' => 'name value 6',
199 'description' => 'description value 6',
206 'name' => 'name value 7',
207 'description' => 'description value 7',
213 $tests[0]['expected_count'] = NULL;
214 // Empty configuration will return terms for all vocabularies.
215 $tests[0]['configuration'] = [];
217 // Change configuration to get one vocabulary, "tags".
218 $tests[1]['source_data'] = $tests[0]['source_data'];
219 $tests[1]['expected_data'] = [
223 'name' => 'name value 1',
224 'description' => 'description value 1',
231 'name' => 'name value 4',
232 'description' => 'description value 4',
237 $tests[1]['expected_count'] = NULL;
238 $tests[1]['configuration']['bundle'] = ['tags'];
240 // Same as previous test, but with configuration vocabulary as a string
241 // instead of an array.
242 $tests[2]['source_data'] = $tests[0]['source_data'];
243 $tests[2]['expected_data'] = $tests[1]['expected_data'];
244 $tests[2]['expected_count'] = NULL;
245 $tests[2]['configuration']['bundle'] = 'tags';
247 // Change configuration to get two vocabularies, "tags" and "categories".
248 $tests[3]['source_data'] = $tests[0]['source_data'];
249 $tests[3]['expected_data'] = $tests[0]['expected_data'];
250 // Remove the last element because it is for vid 3.
251 array_pop($tests[3]['expected_data']);
252 $tests[3]['expected_count'] = NULL;
253 $tests[3]['configuration']['bundle'] = ['tags', 'categories'];