You are here

public function PluginFormFactoryTest::testCreateInstancePluginAware in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Plugin/PluginFormFactoryTest.php \Drupal\Tests\Core\Plugin\PluginFormFactoryTest::testCreateInstancePluginAware()

@covers ::createInstance

File

core/tests/Drupal/Tests/Core/Plugin/PluginFormFactoryTest.php, line 107

Class

PluginFormFactoryTest
@coversDefaultClass \Drupal\Core\Plugin\PluginFormFactory @group Plugin

Namespace

Drupal\Tests\Core\Plugin

Code

public function testCreateInstancePluginAware() {
  $plugin_form = $this
    ->prophesize(PluginFormInterface::class)
    ->willImplement(PluginAwareInterface::class);
  $expected = $plugin_form
    ->reveal();
  $this->classResolver
    ->getInstanceFromDefinition(get_class($expected))
    ->willReturn($expected);
  $plugin = $this
    ->prophesize(PluginWithFormsInterface::class);
  $plugin
    ->hasFormClass('operation_aware')
    ->willReturn(TRUE);
  $plugin
    ->getFormClass('operation_aware')
    ->willReturn(get_class($expected));
  $plugin_form
    ->setPlugin($plugin
    ->reveal())
    ->shouldBeCalled();
  $form_object = $this->manager
    ->createInstance($plugin
    ->reveal(), 'operation_aware');
  $this
    ->assertSame($expected, $form_object);
}