class ContextAwarePluginTraitTest in Drupal 10
Same name and namespace in other branches
- 9 core/tests/Drupal/KernelTests/Core/Plugin/Context/ContextAwarePluginTraitTest.php \Drupal\KernelTests\Core\Plugin\Context\ContextAwarePluginTraitTest
@coversDefaultClass \Drupal\Core\Plugin\ContextAwarePluginTrait
@group Plugin
Hierarchy
- class \Drupal\KernelTests\Core\Plugin\Context\ContextAwarePluginTraitTest extends \Drupal\KernelTests\KernelTestBase
Expanded class hierarchy of ContextAwarePluginTraitTest
File
- core/
tests/ Drupal/ KernelTests/ Core/ Plugin/ Context/ ContextAwarePluginTraitTest.php, line 26
Namespace
Drupal\KernelTests\Core\Plugin\ContextView source
class ContextAwarePluginTraitTest extends KernelTestBase {
/**
* The plugin instance under test.
*
* @var \Drupal\Core\Plugin\ContextAwarePluginTrait
*/
private $plugin;
/**
* The configurable plugin instance under test.
*
* @var \Drupal\Core\Plugin\ContextAwarePluginTrait
*/
private $configurablePlugin;
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$plugin_definition = new TestContextAwarePluginDefinition();
$plugin_definition
->addContextDefinition('nato_letter', ContextDefinition::create('string'));
$this->plugin = new TestContextAwarePlugin([], 'the_sisko', $plugin_definition);
$this->configurablePlugin = new TestConfigurableContextAwarePlugin([], 'the_sisko', $plugin_definition);
}
/**
* @covers ::getContextDefinitions
*/
public function testGetContextDefinitions() {
$this
->assertIsArray($this->plugin
->getContextDefinitions());
}
/**
* @covers ::getContextDefinition
*/
public function testGetContextDefinition() {
// The context is not defined, so an exception will be thrown.
$this
->expectException(ContextException::class);
$this
->expectExceptionMessage('The person context is not a valid context.');
$this->plugin
->getContextDefinition('person');
}
/**
* @covers ::getContextValue
*/
public function testGetContextValue() {
$this->plugin
->setContextValue('nato_letter', 'Alpha');
$this
->assertSame('Alpha', $this->plugin
->getContextValue('nato_letter'));
}
/**
* @covers ::setContextValue
*/
public function testSetContextValue() {
$typed_data_manager = $this
->prophesize(TypedDataManagerInterface::class);
$container = new ContainerBuilder();
$container
->set('typed_data_manager', $typed_data_manager
->reveal());
\Drupal::setContainer($container);
$this->plugin
->getPluginDefinition()
->addContextDefinition('foo', new ContextDefinition('string'));
$this
->assertFalse($this->plugin->setContextCalled);
$this->plugin
->setContextValue('foo', new StringData(new DataDefinition(), 'bar'));
$this
->assertTrue($this->plugin->setContextCalled);
}
}