You are here

public function PluginManagerDecoratorTest::testCreateInstanceWithExistingPlugin in Plugin 8.2

@covers ::__construct @covers ::createInstance

File

tests/src/Unit/PluginManager/PluginManagerDecoratorTest.php, line 45

Class

PluginManagerDecoratorTest
@coversDefaultClass \Drupal\plugin\PluginManager\PluginManagerDecorator

Namespace

Drupal\Tests\plugin\Unit\PluginManager

Code

public function testCreateInstanceWithExistingPlugin() {
  $plugin_manager = $this
    ->createMock(PluginManagerInterface::class);
  $this->decoratedDiscovery = $plugin_manager;
  $this->decoratedFactory = $plugin_manager;
  $this->sut = new PluginManagerDecorator($plugin_manager);
  $plugin_id = $this
    ->randomMachineName();
  $plugin = $this
    ->createMock(PluginInspectionInterface::class);
  $plugin_definitions = [
    $plugin_id => [
      'id' => $plugin_id,
    ],
  ];
  $this->decoratedDiscovery
    ->expects($this
    ->once())
    ->method('getDefinitions')
    ->willReturn($plugin_definitions);
  $this->decoratedFactory
    ->expects($this
    ->once())
    ->method('createInstance')
    ->with($plugin_id)
    ->willReturn($plugin);
  $this
    ->assertSame($plugin, $this->sut
    ->createInstance($plugin_id));
}