3 namespace Drupal\Tests\field\Kernel\Migrate\d7;
5 use Drupal\field\Entity\FieldConfig;
6 use Drupal\migrate\MigrateExecutable;
9 * Migrates and rolls back Drupal 7 fields.
13 class RollbackFieldInstanceTest extends MigrateFieldInstanceTest {
16 * Tests migrating D7 fields to field_storage_config entities, then rolling back.
18 public function testFieldInstances() {
19 // Test that the field instances have migrated (prior to rollback).
20 parent::testFieldInstances();
22 $this->executeRollback('d7_field_instance');
23 $this->executeRollback('d7_field');
25 // Check that field instances have been rolled back.
26 $field_instance_ids = [
27 'comment.comment_node_page.comment_body',
29 'comment.comment_node_article.comment_body',
31 'node.article.field_tags',
32 'node.article.field_image',
33 'comment.comment_node_blog.comment_body',
35 'comment.comment_node_book.comment_body',
37 'node.forum.taxonomy_forums',
38 'comment.comment_node_forum.comment_body',
40 'comment.comment_node_test_content_type.comment_body',
41 'node.test_content_type.field_boolean',
42 'node.test_content_type.field_email',
43 'node.test_content_type.field_phone',
44 'node.test_content_type.field_date',
45 'node.test_content_type.field_date_with_end_time',
46 'node.test_content_type.field_file',
47 'node.test_content_type.field_float',
48 'node.test_content_type.field_images',
49 'node.test_content_type.field_integer',
50 'node.test_content_type.field_link',
51 'node.test_content_type.field_text_list',
52 'node.test_content_type.field_integer_list',
53 'node.test_content_type.field_long_text',
54 'node.test_content_type.field_term_reference',
55 'node.test_content_type.field_text',
56 'comment.comment_node_test_content_type.field_integer',
57 'user.user.field_file',
59 foreach ($field_instance_ids as $field_instance_id) {
60 $this->assertNull(FieldConfig::load($field_instance_id));
65 * Executes a single rollback.
67 * @param string|\Drupal\migrate\Plugin\MigrationInterface $migration
68 * The migration to rollback, or its ID.
70 protected function executeRollback($migration) {
71 if (is_string($migration)) {
72 $this->migration = $this->getMigration($migration);
75 $this->migration = $migration;
77 (new MigrateExecutable($this->migration, $this))->rollback();