public function DefaultsSectionStorageTest::testThirdPartySettings in Drupal 8
Same name and namespace in other branches
- 9 core/modules/layout_builder/tests/src/Unit/DefaultsSectionStorageTest.php \Drupal\Tests\layout_builder\Unit\DefaultsSectionStorageTest::testThirdPartySettings()
@covers ::getThirdPartySetting @covers ::setThirdPartySetting
File
- core/
modules/ layout_builder/ tests/ src/ Unit/ DefaultsSectionStorageTest.php, line 73
Class
- DefaultsSectionStorageTest
- @coversDefaultClass \Drupal\layout_builder\Plugin\SectionStorage\DefaultsSectionStorage
Namespace
Drupal\Tests\layout_builder\UnitCode
public function testThirdPartySettings() {
$this->entityTypeManager
->getDefinition('entity_view_display')
->willReturn(new EntityType([
'id' => 'entity_view_display',
]));
$container = new ContainerBuilder();
$container
->set('typed_data_manager', $this
->prophesize(TypedDataManagerInterface::class)
->reveal());
$container
->set('entity_type.manager', $this->entityTypeManager
->reveal());
\Drupal::setContainer($container);
$this->plugin
->getPluginDefinition()
->addContextDefinition('display', EntityContextDefinition::fromEntityTypeId('entity_view_display'))
->addContextDefinition('view_mode', new ContextDefinition('string'));
// Set an initial value on the section list.
$section_list = $this
->prophesize(LayoutEntityDisplayInterface::class);
$context = $this
->prophesize(ContextInterface::class);
$context
->getContextValue()
->willReturn($section_list
->reveal());
$this->plugin
->setContext('display', $context
->reveal());
$section_list
->getThirdPartySetting('the_module', 'the_key', NULL)
->willReturn('value 1');
// The plugin returns the initial value.
$this
->assertSame('value 1', $this->plugin
->getThirdPartySetting('the_module', 'the_key'));
// When the section list is updated, also update the result returned.
$section_list
->setThirdPartySetting('the_module', 'the_key', 'value 2')
->shouldBeCalled()
->will(function ($args) {
$this
->getThirdPartySetting('the_module', 'the_key', NULL)
->willReturn($args[2]);
});
// Update the plugin value.
$this->plugin
->setThirdPartySetting('the_module', 'the_key', 'value 2');
// Assert that the returned value matches.
$this
->assertSame('value 2', $this->plugin
->getThirdPartySetting('the_module', 'the_key'));
}