diff --git a/migrate_example/migrate_example_setup/config/install/comment.type.node_comments.yml b/migrate_example/migrate_example_setup/config/install/comment.type.node_comments.yml index 07629a81a56da26a5ff7fa5d5b75170028e6805e..c4b4d1958c6719ef20c8c9b13acdc8c9726f013b 100644 --- a/migrate_example/migrate_example_setup/config/install/comment.type.node_comments.yml +++ b/migrate_example/migrate_example_setup/config/install/comment.type.node_comments.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_setup id: node_comments label: 'Node comments' target_entity_type_id: node diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_comments.yml b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_comments.yml index fd01476fe0eda0a12e4d1cd78a8309e6578332ea..eab959ee76f0428ceff06296805524f20d64e6c0 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_comments.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_comments.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - comment - node diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_beer_style.yml b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_beer_style.yml index 9a037d7d60be5061455c82006c8f2ba3358aa15e..36e19239c8065cd977ab433d7da8a3fa96b13dce 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_beer_style.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_beer_style.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - node - taxonomy diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_country.yml b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_country.yml index 7f2ca7603d6ef7be1c1171e43d035c2e1210b9a7..071b1b0e53e73e078d004bd22aa5642bb871ec4e 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_country.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_country.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - node id: node.field_migrate_example_country diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_image.yml b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_image.yml index db02f162645bc533fd14cc4c5c6b78808ad584a0..6b1427b41c1c0204ba5bddb7d2a820e125c6cf68 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_image.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_image.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - file - image diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_favbeers.yml b/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_favbeers.yml index 54bbe12c54344a6ce9256b6399d25f295169c358..4b41bc7d52f1508628764e19f7166064b71981f7 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_favbeers.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_favbeers.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - node - user diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_gender.yml b/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_gender.yml index 34fcc90322a5d26ea47a0fa2fac1b913a2e52d22..b0c48469621e623a79e017616dffd361e94bffc1 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_gender.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_gender.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - user id: user.field_migrate_example_gender diff --git a/migrate_example/migrate_example_setup/config/install/node.type.migrate_example_beer.yml b/migrate_example/migrate_example_setup/config/install/node.type.migrate_example_beer.yml index 24c2e1da59efc0d8ab85a528abaa60adefcc4676..33f243e879b25b0e656a6de0d1314681e38b2efb 100644 --- a/migrate_example/migrate_example_setup/config/install/node.type.migrate_example_beer.yml +++ b/migrate_example/migrate_example_setup/config/install/node.type.migrate_example_beer.yml @@ -1,5 +1,9 @@ langcode: en status: true +dependencies: + enforced: + module: + - migrate_example_setup name: Beer type: migrate_example_beer description: 'Beer is what we drink.' diff --git a/migrate_example/migrate_example_setup/config/install/taxonomy.vocabulary.migrate_example_beer_styles.yml b/migrate_example/migrate_example_setup/config/install/taxonomy.vocabulary.migrate_example_beer_styles.yml index afad4b0ddbcf10c553cfc7228fbf68958876533d..93d8be8dd7466c5db285c1f44ab9372898f27304 100644 --- a/migrate_example/migrate_example_setup/config/install/taxonomy.vocabulary.migrate_example_beer_styles.yml +++ b/migrate_example/migrate_example_setup/config/install/taxonomy.vocabulary.migrate_example_beer_styles.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_setup name: 'Migrate Example Beer Styles' vid: migrate_example_beer_styles description: 'Use tags to group beers on similar topics into categories.' diff --git a/migrate_example/tests/src/Kernel/MigrateExampleTest.php b/migrate_example/tests/src/Kernel/MigrateExampleTest.php index 6933265bad836bd8081df5c1439c5789e94d1c37..d30b97be7fd75fa0a9d33f14b61545ca95c90022 100755 --- a/migrate_example/tests/src/Kernel/MigrateExampleTest.php +++ b/migrate_example/tests/src/Kernel/MigrateExampleTest.php @@ -4,6 +4,7 @@ declare(strict_types = 1); namespace Drupal\Tests\migrate_example\Kernel; +use Drupal\node\Entity\NodeType; use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase; /** @@ -40,6 +41,7 @@ final class MigrateExampleTest extends MigrateDrupalTestBase { $this->installSchema('system', ['sequences']); $this->installSchema('comment', ['comment_entity_statistics']); $this->installSchema('node', ['node_access']); + $this->installSchema('user', ['users_data']); // Install the module via installer to trigger hook_install. \Drupal::service('module_installer')->install(['migrate_example_setup']); @@ -71,4 +73,20 @@ final class MigrateExampleTest extends MigrateDrupalTestBase { $this->assertCount(5, $comments); } + /** + * Tests whether the module can be uninstalled and installed again. + * + * Also, checks whether the example configs are removed after uninstall. + */ + public function testModuleCleanup(): void { + $test_node_type = 'migrate_example_beer'; + // Prove that test content type existed before the uninstall process. + $this->assertInstanceOf(NodeType::class, NodeType::load($test_node_type)); + \Drupal::service('module_installer')->uninstall(['migrate_example_setup']); + // Make sure the test content type was removed. + $this->assertNull(NodeType::load($test_node_type)); + // Check whether the module can be installed again. + \Drupal::service('module_installer')->install(['migrate_example_setup']); + } + } diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/comment.type.migrate_example_advanced_comment.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/comment.type.migrate_example_advanced_comment.yml index ba582793de88c2c2cca84cd43fa7fac69a06c148..f44a92dd8b5066565937c8af5336b85a798d2b36 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/comment.type.migrate_example_advanced_comment.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/comment.type.migrate_example_advanced_comment.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_comment label: 'Node comments' target_entity_type_id: node diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_adv_image.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_adv_image.yml index 62fc9b09098caf5bad59fb8db1127a2c3e714e05..b7fb3fa8ff66bdb94b5851fc9e22b8a209172688 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_adv_image.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_adv_image.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - file - image diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_comments.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_comments.yml index 1d7b9f10af06ff7a87cb4baa8e0b53fe154c00a8..68b0b084c57365938bd4aed924a084dbbeeda2c7 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_comments.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_comments.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - comment - node diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_top_vintag.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_top_vintag.yml index 86b0c27b20a12f027cf3acc4e06ab5915a3187e8..e385fe70366f9328f78e43c4b3a3f2de16ad21dd 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_top_vintag.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_top_vintag.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node id: node.field_migrate_example_top_vintag diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_best.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_best.yml index 9026e588169f08d90e962a4714eeb9489483fea2..3b9e548ccd6a5dba9b1affff3cb66616cd37ea1f 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_best.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_best.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node - taxonomy diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_ratin.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_ratin.yml index fc3dbe9c734dbd27286b6015d20692081095c420..ae93a089bea49fac3eea5a5d68af27547cd336a6 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_ratin.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_ratin.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node id: node.field_migrate_example_wine_ratin diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_regio.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_regio.yml index 3b2b1633900477845cea95e67a43e548c8a6f07f..78c072d7271fe8e9556cf88fbccd6072af6b17e4 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_regio.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_regio.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node - taxonomy diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_var.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_var.yml index cca7a39fc31fc5eeed1c0ba616fc410514ae8ed7..111a584bfefa801caee9d481c15fe305aeac3608 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_var.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_var.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node - taxonomy diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.taxonomy_term.field_variety_attributes.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.taxonomy_term.field_variety_attributes.yml index e5db23f204055512883dd301d053cc4b02fdb62e..a78c04424949b0b68377fd07dac44b164490a629 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.taxonomy_term.field_variety_attributes.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.taxonomy_term.field_variety_attributes.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - taxonomy id: taxonomy_term.field_variety_attributes diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_producer.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_producer.yml index 4d78fee870c9e4ba2c9cc2e1f67638b58b1a396d..88adc8888a30a6a61084516aa21ffe7a87562d4c 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_producer.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_producer.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: 'Wine Producer' type: migrate_example_producer description: 'Wineries, vineyards, and large producers.' diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_wine.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_wine.yml index 6f442d5e6a7a74cc795e3543ceb82b67099c5afc..6dcd5031b6d9d8889c1b09d442c2c1b0bcb592c7 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_wine.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_wine.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: Wine type: migrate_example_wine description: 'Wine is what we drink.' diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_position.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_position.yml index 6a79fc90f47767995996ed679135469acd60ba5a..13aa0361eefc3e882554e3356729934b5e2add27 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_position.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_position.yml @@ -1,3 +1,7 @@ +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_position plugin_id: 'migrate_example_advanced_position' granularity: method diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_items.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_items.yml index bf2518a5f52949463c92e605bad499c7adbe6eff..c2b13e9377c7311d565a6a27309ce3d74159be47 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_items.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_items.yml @@ -1,3 +1,7 @@ +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_variety_items plugin_id: 'migrate_example_advanced_variety_items' granularity: method diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_list.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_list.yml index f19dc60fe7d07754e15f0c8d0468ea85460d62ca..1ebd8e6cebe2ea48a7b559a9aeaebfae6e47dbb9 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_list.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_list.yml @@ -1,3 +1,7 @@ +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_variety_list plugin_id: 'migrate_example_advanced_variety_list' granularity: method diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_multiple.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_multiple.yml index c8960369ff2e69ffe7cac81ba3a9c8772a37714e..94a99c4550d45325137229f9827f0f43cab227d1 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_multiple.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_multiple.yml @@ -1,3 +1,7 @@ +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_variety_multiple plugin_id: 'migrate_example_advanced_variety_multiple' granularity: method diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_best_with.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_best_with.yml index 51cb1c93e9d678fcec5b0d2da8d50256010c12db..b06d658a9f69d6b7b7256df78b81366bd7ec7021 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_best_with.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_best_with.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: 'Migrate Example Wine Best With' vid: migrate_example_wine_best_with description: 'Foods the wine goes best with' diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_regions.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_regions.yml index 9ebbadfcd00f3707e2b4ab82cf6ad4dba89c1539..875df55044791e6bf3e21134edfee65054739f30 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_regions.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_regions.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: 'Migrate Example Wine Regions' vid: migrate_example_wine_regions description: 'Wine regions' diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_varieties.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_varieties.yml index ca12aca5fe56e76323e771816acba523d265fc45..6b1d6598eeeae83a18b4e46c23575c773e2d8db7 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_varieties.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_varieties.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: 'Migrate Example Wine Varieties' vid: migrate_example_wine_varieties description: 'Wine varieties' diff --git a/migrate_example_advanced/tests/src/Functional/MigrateExampleAdvancedTest.php b/migrate_example_advanced/tests/src/Functional/MigrateExampleAdvancedTest.php new file mode 100644 index 0000000000000000000000000000000000000000..a9b5d2e5bac4cdb2ecbd8b483260f4c42608618e --- /dev/null +++ b/migrate_example_advanced/tests/src/Functional/MigrateExampleAdvancedTest.php @@ -0,0 +1,48 @@ +<?php + +namespace Drupal\Tests\migrate_example_advanced\Functional; + +use Drupal\node\Entity\NodeType; +use Drupal\Tests\BrowserTestBase; + +/** + * Tests migrate_example_advanced migrations. + * + * @group migrate_plus + */ +class MigrateExampleAdvancedTest extends BrowserTestBase { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'node', + 'taxonomy', + 'path', + 'migrate_plus', + 'migrate_example_advanced', + 'migrate_example_advanced_setup', + ]; + + /** + * {@inheritdoc} + */ + protected $defaultTheme = 'stark'; + + /** + * Tests whether the module can be uninstalled and installed again. + * + * Also, checks whether the example configs are removed after uninstall. + */ + public function testModuleCleanup(): void { + $test_node_type = 'migrate_example_producer'; + // Prove that test content type existed before the uninstall process. + $this->assertInstanceOf(NodeType::class, NodeType::load($test_node_type)); + \Drupal::service('module_installer')->uninstall(['migrate_example_advanced_setup']); + // Make sure the test content type was removed. + $this->assertNull(NodeType::load($test_node_type)); + // Check whether test configuration files were removed. + \Drupal::service('module_installer')->install(['migrate_example_advanced_setup']); + } + +} diff --git a/migrate_json_example/config/optional/field.storage.node.field_description.yml b/migrate_json_example/config/optional/field.storage.node.field_description.yml index a5c39580deed6288f8bbf19b46a45411531546a8..5472e66aa89e97d6e136acd6c5278b12d992fce6 100644 --- a/migrate_json_example/config/optional/field.storage.node.field_description.yml +++ b/migrate_json_example/config/optional/field.storage.node.field_description.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_json_example module: - node id: node.field_description diff --git a/migrate_json_example/config/optional/field.storage.node.field_price.yml b/migrate_json_example/config/optional/field.storage.node.field_price.yml index 090acad3d9c56acf9992803b94d3c2e6b56c7c01..298dcc019d9d22f29cc2520bf0b7b433fdea2ffa 100644 --- a/migrate_json_example/config/optional/field.storage.node.field_price.yml +++ b/migrate_json_example/config/optional/field.storage.node.field_price.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_json_example module: - node id: node.field_price diff --git a/migrate_json_example/config/optional/field.storage.node.field_upc.yml b/migrate_json_example/config/optional/field.storage.node.field_upc.yml index 149b11da10109edb40ec787f0773d84092efffac..1e8bfcdee0027c59c1c7fae5d0c107025601b3d3 100644 --- a/migrate_json_example/config/optional/field.storage.node.field_upc.yml +++ b/migrate_json_example/config/optional/field.storage.node.field_upc.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_json_example module: - node id: node.field_upc diff --git a/migrate_json_example/config/optional/node.type.product.yml b/migrate_json_example/config/optional/node.type.product.yml index 18d8499de906378faa77aa9a97e963a493af162a..3482ef879fe2f10eb5bbbff68ff225bcab9f7204 100644 --- a/migrate_json_example/config/optional/node.type.product.yml +++ b/migrate_json_example/config/optional/node.type.product.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_json_example module: - menu_ui third_party_settings: diff --git a/migrate_json_example/tests/src/Kernel/MigrateJsonExampleTest.php b/migrate_json_example/tests/src/Kernel/MigrateJsonExampleTest.php index d6d3232d8d30e3d33668cdfb760ad18c66d2444f..6382be8cae02527d0bd5d5e722eea23adef69b6a 100755 --- a/migrate_json_example/tests/src/Kernel/MigrateJsonExampleTest.php +++ b/migrate_json_example/tests/src/Kernel/MigrateJsonExampleTest.php @@ -4,6 +4,7 @@ declare(strict_types = 1); namespace Drupal\Tests\migrate_json_example\Kernel; +use Drupal\node\Entity\NodeType; use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase; /** @@ -20,6 +21,7 @@ final class MigrateJsonExampleTest extends MigrateDrupalTestBase { 'node', 'file', 'text', + 'menu_ui', 'migrate_plus', ]; @@ -32,6 +34,7 @@ final class MigrateJsonExampleTest extends MigrateDrupalTestBase { $this->installConfig(['node']); $this->installEntitySchema('file'); $this->installSchema('file', ['file_usage']); + $this->installSchema('user', ['users_data']); // Install the module via installer to trigger hook_install. \Drupal::service('module_installer')->install(['migrate_json_example']); @@ -49,4 +52,20 @@ final class MigrateJsonExampleTest extends MigrateDrupalTestBase { $this->assertCount(2, $node_storage->loadMultiple()); } + /** + * Tests whether the module can be uninstalled and installed again. + * + * Also, checks whether the example configs are removed after uninstall. + */ + public function testModuleCleanup(): void { + $test_node_type = 'product'; + // Prove that test content type existed before the uninstall process. + $this->assertInstanceOf(NodeType::class, NodeType::load($test_node_type)); + \Drupal::service('module_installer')->uninstall(['migrate_json_example']); + // Make sure the test content type was removed. + $this->assertNull(NodeType::load($test_node_type)); + // Check whether test configuration files were removed. + \Drupal::service('module_installer')->install(['migrate_json_example']); + } + }