diff -u b/core/modules/migrate/src/Tests/MigrateEventsTest.php b/core/modules/migrate/src/Tests/MigrateEventsTest.php --- b/core/modules/migrate/src/Tests/MigrateEventsTest.php +++ b/core/modules/migrate/src/Tests/MigrateEventsTest.php @@ -7,7 +7,7 @@ namespace Drupal\migrate\Tests; -use Drupal\Component\Plugin\Discovery\StaticDiscovery; +use Drupal\Core\State\State; use Drupal\migrate\Entity\Migration; use Drupal\migrate\Event\MigrateImportEvent; use Drupal\migrate\Event\MigrateMapDeleteEvent; @@ -28,6 +28,13 @@ class MigrateEventsTest extends KernelTestBase { /** + * State service for recording information received by event listeners. + * + * @var \Drupal\Core\State\State + */ + protected $state; + + /** * Modules to enable. * * @var array @@ -39,6 +46,7 @@ */ public function setUp() { parent::setUp(); + $this->state = \Drupal::state(); \Drupal::service('event_dispatcher')->addListener(MigrateEvents::MAP_SAVE, array($this, 'mapSaveEventRecorder')); \Drupal::service('event_dispatcher')->addListener(MigrateEvents::MAP_DELETE, @@ -72,31 +80,34 @@ /** @var MigrationInterface $migration */ $executable = new MigrateExecutable($migration, new MigrateMessage); + // As the import runs, events will be dispatched, recording the received + // information in state. $executable->import(); - $event = \Drupal::state()->get('migrate_events_test.pre_import_event', []); + // Validate from the recorded state that the events were received. + $event = $this->state->get('migrate_events_test.pre_import_event', []); $this->assertIdentical($event['event_name'], MigrateEvents::PRE_IMPORT); $this->assertIdentical($event['migration']->id(), $migration->id()); - $event = \Drupal::state()->get('migrate_events_test.post_import_event', []); + $event = $this->state->get('migrate_events_test.post_import_event', []); $this->assertIdentical($event['event_name'], MigrateEvents::POST_IMPORT); $this->assertIdentical($event['migration']->id(), $migration->id()); - $event = \Drupal::state()->get('migrate_events_test.map_save_event', []); + $event = $this->state->get('migrate_events_test.map_save_event', []); $this->assertIdentical($event['event_name'], MigrateEvents::MAP_SAVE); $this->assertIdentical($event['fields']['sourceid1'], 'dummy value'); $this->assertIdentical($event['fields']['destid1'], 'dummy value'); $this->assertIdentical($event['fields']['source_row_status'], 0); - $event = \Drupal::state()->get('migrate_events_test.map_delete_event', []); + $event = $this->state->get('migrate_events_test.map_delete_event', []); $this->assertIdentical($event, []); - $event = \Drupal::state()->get('migrate_events_test.pre_row_save_event', []); + $event = $this->state->get('migrate_events_test.pre_row_save_event', []); $this->assertIdentical($event['event_name'], MigrateEvents::PRE_ROW_SAVE); $this->assertIdentical($event['migration']->id(), $migration->id()); $this->assertIdentical($event['row']->getSourceProperty('data'), 'dummy value'); - $event = \Drupal::state()->get('migrate_events_test.post_row_save_event', []); + $event = $this->state->get('migrate_events_test.post_row_save_event', []); $this->assertIdentical($event['event_name'], MigrateEvents::POST_ROW_SAVE); $this->assertIdentical($event['migration']->id(), $migration->id()); $this->assertIdentical($event['row']->getSourceProperty('data'), 'dummy value'); @@ -104,7 +115,7 @@ // Generate a map delete event. $migration->getIdMap()->delete(['data' => 'dummy value']); - $event = \Drupal::state()->get('migrate_events_test.map_delete_event', []); + $event = $this->state->get('migrate_events_test.map_delete_event', []); $this->assertIdentical($event['event_name'], MigrateEvents::MAP_DELETE); $this->assertIdentical($event['source_id'], ['data' => 'dummy value']); } @@ -118,7 +129,7 @@ * The event name. */ public function mapSaveEventRecorder(MigrateMapSaveEvent $event, $name) { - \Drupal::state()->set('migrate_events_test.map_save_event', array( + $this->state->set('migrate_events_test.map_save_event', array( 'event_name' => $name, 'map' => $event->getMap(), 'fields' => $event->getFields(), @@ -134,7 +145,7 @@ * The event name. */ public function mapDeleteEventRecorder(MigrateMapDeleteEvent $event, $name) { - \Drupal::state()->set('migrate_events_test.map_delete_event', array( + $this->state->set('migrate_events_test.map_delete_event', array( 'event_name' => $name, 'map' => $event->getMap(), 'source_id' => $event->getSourceId(), @@ -150,7 +161,7 @@ * The event name. */ public function preImportEventRecorder(MigrateImportEvent $event, $name) { - \Drupal::state()->set('migrate_events_test.pre_import_event', array( + $this->state->set('migrate_events_test.pre_import_event', array( 'event_name' => $name, 'migration' => $event->getMigration(), )); @@ -165,7 +176,7 @@ * The event name. */ public function postImportEventRecorder(MigrateImportEvent $event, $name) { - \Drupal::state()->set('migrate_events_test.post_import_event', array( + $this->state->set('migrate_events_test.post_import_event', array( 'event_name' => $name, 'migration' => $event->getMigration(), )); @@ -180,7 +191,7 @@ * The event name. */ public function preRowSaveEventRecorder(MigratePreRowSaveEvent $event, $name) { - \Drupal::state()->set('migrate_events_test.pre_row_save_event', array( + $this->state->set('migrate_events_test.pre_row_save_event', array( 'event_name' => $name, 'migration' => $event->getMigration(), 'row' => $event->getRow(), @@ -196,7 +207,7 @@ * The event name. */ public function postRowSaveEventRecorder(MigratePostRowSaveEvent $event, $name) { - \Drupal::state()->set('migrate_events_test.post_row_save_event', array( + $this->state->set('migrate_events_test.post_row_save_event', array( 'event_name' => $name, 'migration' => $event->getMigration(), 'row' => $event->getRow(),