PluginOperationsProviderPluginManagerTraitTest.php in Plugin 8.2
File
tests/src/Unit/Plugin/PluginOperationsProviderPluginManagerTraitTest.php
View source
<?php
namespace Drupal\Tests\plugin\Unit\Plugin;
use Drupal\Core\DependencyInjection\ClassResolverInterface;
use Drupal\plugin\Plugin\PluginOperationsProviderPluginManagerTrait;
use Drupal\Tests\UnitTestCase;
class PluginOperationsProviderPluginManagerTraitTest extends UnitTestCase {
protected $classResolver;
public $sut;
protected function setUp() : void {
$this->classResolver = $this
->createMock(ClassResolverInterface::class);
}
public function testGetOperationsProvider() {
$plugin_definitions = [
'foo' => [
'id' => 'foo',
'operations_provider' => PluginOperationsProviderPluginManagerTraitUnitTestOperationsProvider::class,
],
'bar' => [
'id' => 'bar',
],
];
$operations_provider = new \stdClass();
$this->sut = new PluginOperationsProviderPluginManagerTraitUnitTestOperationsProvider($this->classResolver, $plugin_definitions);
$this->classResolver
->expects($this
->any())
->method('getInstanceFromDefinition')
->with($plugin_definitions['foo']['operations_provider'])
->willReturn($operations_provider);
$this
->assertSame($operations_provider, $this->sut
->getOperationsProvider('foo'));
$this
->assertNull($this->sut
->getOperationsProvider('bar'));
}
}
class PluginOperationsProviderPluginManagerTraitUnitTestOperationsProvider {
use PluginOperationsProviderPluginManagerTrait;
protected $pluginDefinitions = [];
public function __construct(ClassResolverInterface $class_resolver, array $plugin_definitions) {
$this->classResolver = $class_resolver;
$this->pluginDefinitions = $plugin_definitions;
}
protected function getDefinition($plugin_id) {
return $this->pluginDefinitions[$plugin_id];
}
}