eck-8.x-1.x-dev/tests/src/Kernel/Plugin/migrate/source/d7/EckEntityExceptionTest.php
tests/src/Kernel/Plugin/migrate/source/d7/EckEntityExceptionTest.php
<?php
namespace Drupal\Tests\eck\Kernel\Plugin\migrate\source;
use Drupal\Tests\eck\Kernel\Migrate\d7\MigrateEckTestBase;
use Drupal\migrate\Exception\RequirementsException;
use Drupal\migrate\MigrateException;
/**
* Tests check requirements for comment type source plugin.
*
* @group eck
*/
class EckEntityExceptionTest extends MigrateEckTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = ['eck'];
/**
* The migration plugin manager.
*
* @var \Drupal\migrate\Plugin\MigrationPluginManager
*/
protected $migrationPluginManager;
/**
* {@inheritdoc}
*/
public function setUp(): void {
parent::setUp();
$this->migrationPluginManager = \Drupal::service('plugin.manager.migration');
}
/**
* Tests checkRequirements.
*/
public function testEckEntityCheckRequirements() {
$this->expectException(RequirementsException::class);
$this->expectExceptionMessage("ECK table for 'does_not_exist' does not exist");
$migration = $this->getMigration('d7_eck');
$definition = $migration->getPluginDefinition();
$definition['source'] = [
'plugin' => 'd7_eck_entity',
'entity_type' => 'does_not_exist',
'bundle' => 'simple_entity',
];
$migration = $this->migrationPluginManager
->createInstance('d7_eck:simple_entity:simple_entity', $definition);
$migration
->getSourcePlugin()
->checkRequirements();
}
/**
* Tests thrown exceptions when node or comment aren't enabled on source.
*
* @param mixed $entity_type
* The entity type.
* @param mixed $bundle
* The bundle.
* @param string $exception_message
* The expected exception message.
*
* @dataProvider providerTestEckEntityConstructor
*/
public function testEckEntityConstructor($entity_type, $bundle, $exception_message) {
$this->expectException(MigrateException::class);
$this->expectExceptionMessage($exception_message);
$migration = $this->getMigration('d7_eck:simple_entity:simple_entity');
$definition = $migration->getPluginDefinition();
$definition['source'] = [
'plugin' => 'd7_eck_entity',
'entity_type' => $entity_type,
'bundle' => $bundle,
];
$migration = $this->migrationPluginManager
->createInstance('d7_eck:simple_entity:simple_entity', $definition);
$migration->getSourcePlugin();
}
/**
* Test cases for ::testEckEntityConstructor().
*/
public static function providerTestEckEntityConstructor() {
return [
'entity array' => [
[],
'string',
"The entity_type must be a string",
],
];
}
}
