/** * Tests checking requirements for destination plugins. * * @covers ::checkRequirements * * @expectedException \Drupal\migrate\Exception\RequirementsException * @expectedExceptionMessage Missing migrations test_a, test_c */ public function testRequirementsForMigrations() { $migration = new TestMigration(); // Setup source and destination plugins without any requirements. $source_plugin = $this->getMock('Drupal\\migrate\\Plugin\\MigrateSourceInterface'); $destination_plugin = $this->getMock('Drupal\\migrate\\Plugin\\MigrateDestinationInterface'); $migration->setSourcePlugin($source_plugin); $migration->setDestinationPlugin($destination_plugin); $plugin_manager = $this->getMock('Drupal\\migrate\\Plugin\\MigrationPluginManagerInterface'); $migration->setMigrationPluginManager($plugin_manager); // We setup the requirements that test_a doesn't exist and test_c is not // completed yet. $migration->setRequirements(['test_a', 'test_b', 'test_c', 'test_d']); $migration_b = $this->getMock(MigrationInterface::class); $migration_c = $this->getMock(MigrationInterface::class); $migration_d = $this->getMock(MigrationInterface::class); $migration_b->expects($this->once())->method('allRowsProcessed')->willReturn(TRUE); $migration_c->expects($this->once())->method('allRowsProcessed')->willReturn(FALSE); $migration_d->expects($this->once())->method('allRowsProcessed')->willReturn(TRUE); $plugin_manager->expects($this->once())->method('createInstances')->with(['test_a', 'test_b', 'test_c', 'test_d'])->willReturn(['test_b' => $migration_b, 'test_c' => $migration_c, 'test_d' => $migration_d]); $migration->checkRequirements(); }
/** * Tests checking requirements for destination plugins. * * @covers ::checkRequirements * * @expectedException \Drupal\migrate\Exception\RequirementsException * @expectedExceptionMessage Missing migrations test_a, test_c */ public function testRequirementsForMigrations() { $migration = new TestMigration(); // Setup source and destination plugins without any requirements. $source_plugin = $this->getMock('Drupal\\migrate\\Plugin\\MigrateSourceInterface'); $destination_plugin = $this->getMock('Drupal\\migrate\\Plugin\\MigrateDestinationInterface'); $migration->setSourcePlugin($source_plugin); $migration->setDestinationPlugin($destination_plugin); $entity_manager = $this->getMock('Drupal\\Core\\Entity\\EntityManagerInterface'); $migration->setEntityManager($entity_manager); // We setup the requirements that test_a doesn't exist and test_c is not // completed yet. $migration->setRequirements(['test_a', 'test_b', 'test_c', 'test_d']); $migration_b = $this->getMock('Drupal\\migrate\\Entity\\MigrationInterface'); $migration_c = $this->getMock('Drupal\\migrate\\Entity\\MigrationInterface'); $migration_d = $this->getMock('Drupal\\migrate\\Entity\\MigrationInterface'); $migration_b->expects($this->once())->method('isComplete')->willReturn(TRUE); $migration_c->expects($this->once())->method('isComplete')->willReturn(FALSE); $migration_d->expects($this->once())->method('isComplete')->willReturn(TRUE); $migration_storage = $this->getMock('Drupal\\Core\\Entity\\EntityStorageInterface'); $migration_storage->expects($this->once())->method('loadMultiple')->with(['test_a', 'test_b', 'test_c', 'test_d'])->willReturn(['test_b' => $migration_b, 'test_c' => $migration_c, 'test_d' => $migration_d]); $entity_manager->expects($this->once())->method('getStorage')->with('migration')->willReturn($migration_storage); $migration->checkRequirements(); }