Mercurial > hg > isophonics-drupal-site
view core/modules/block/tests/src/Unit/BlockConfigEntityUnitTest.php @ 18:af1871eacc83
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:33:08 +0100 |
parents | 1fec387a4317 |
children |
line wrap: on
line source
<?php namespace Drupal\Tests\block\Unit; use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\Extension\ThemeHandlerInterface; use Drupal\Tests\Core\Plugin\Fixtures\TestConfigurablePlugin; use Drupal\Tests\UnitTestCase; /** * @coversDefaultClass \Drupal\block\Entity\Block * @group block */ class BlockConfigEntityUnitTest extends UnitTestCase { /** * The entity type used for testing. * * @var \Drupal\Core\Entity\EntityTypeInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $entityType; /** * The entity type manager used for testing. * * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $entityTypeManager; /** * The ID of the type of the entity under test. * * @var string */ protected $entityTypeId; /** * The UUID generator used for testing. * * @var \Drupal\Component\Uuid\UuidInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $uuid; /** * The module handler. * * @var \Drupal\Core\Extension\ModuleHandlerInterface|\Prophecy\Prophecy\ProphecyInterface */ protected $moduleHandler; /** * The theme handler. * * @var \Drupal\Core\Extension\ThemeHandlerInterface|\Prophecy\Prophecy\ProphecyInterface */ protected $themeHandler; /** * {@inheritdoc} */ protected function setUp() { $this->entityTypeId = $this->randomMachineName(); $this->entityType = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface'); $this->entityType->expects($this->any()) ->method('getProvider') ->will($this->returnValue('block')); $this->entityTypeManager = $this->getMock(EntityTypeManagerInterface::class); $this->entityTypeManager->expects($this->any()) ->method('getDefinition') ->with($this->entityTypeId) ->will($this->returnValue($this->entityType)); $this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface'); $this->moduleHandler = $this->prophesize(ModuleHandlerInterface::class); $this->themeHandler = $this->prophesize(ThemeHandlerInterface::class); $container = new ContainerBuilder(); $container->set('entity_type.manager', $this->entityTypeManager); $container->set('module_handler', $this->moduleHandler->reveal()); $container->set('theme_handler', $this->themeHandler->reveal()); $container->set('uuid', $this->uuid); \Drupal::setContainer($container); } /** * @covers ::calculateDependencies */ public function testCalculateDependencies() { $this->themeHandler->themeExists('stark')->willReturn(TRUE); $values = ['theme' => 'stark']; // Mock the entity under test so that we can mock getPluginCollections(). $entity = $this->getMockBuilder('\Drupal\block\Entity\Block') ->setConstructorArgs([$values, $this->entityTypeId]) ->setMethods(['getPluginCollections']) ->getMock(); // Create a configurable plugin that would add a dependency. $instance_id = $this->randomMachineName(); $this->moduleHandler->moduleExists('test')->willReturn(TRUE); $instance = new TestConfigurablePlugin([], $instance_id, ['provider' => 'test']); // Create a plugin collection to contain the instance. $plugin_collection = $this->getMockBuilder('\Drupal\Core\Plugin\DefaultLazyPluginCollection') ->disableOriginalConstructor() ->setMethods(['get']) ->getMock(); $plugin_collection->expects($this->atLeastOnce()) ->method('get') ->with($instance_id) ->will($this->returnValue($instance)); $plugin_collection->addInstanceId($instance_id); // Return the mocked plugin collection. $entity->expects($this->once()) ->method('getPluginCollections') ->will($this->returnValue([$plugin_collection])); $dependencies = $entity->calculateDependencies()->getDependencies(); $this->assertContains('test', $dependencies['module']); $this->assertContains('stark', $dependencies['theme']); } }