Mercurial > hg > isophonics-drupal-site
diff core/modules/rdf/tests/src/Unit/RdfMappingConfigEntityUnitTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/rdf/tests/src/Unit/RdfMappingConfigEntityUnitTest.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,126 @@ +<?php + +namespace Drupal\Tests\rdf\Unit; + +use Drupal\Core\DependencyInjection\ContainerBuilder; +use Drupal\Tests\UnitTestCase; +use Drupal\rdf\Entity\RdfMapping; + +/** + * @coversDefaultClass \Drupal\rdf\Entity\RdfMapping + * @group rdf + */ +class RdfMappingConfigEntityUnitTest extends UnitTestCase { + + /** + * The entity type used for testing. + * + * @var \Drupal\Core\Entity\EntityTypeInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $entityType; + + /** + * The entity manager used for testing. + * + * @var \Drupal\Core\Entity\EntityManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $entityManager; + + /** + * 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; + + /** + * {@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('entity')); + + $this->entityManager = $this->getMock('\Drupal\Core\Entity\EntityManagerInterface'); + + $this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface'); + + $container = new ContainerBuilder(); + $container->set('entity.manager', $this->entityManager); + $container->set('uuid', $this->uuid); + \Drupal::setContainer($container); + + } + + /** + * @covers ::calculateDependencies + */ + public function testCalculateDependencies() { + $target_entity_type_id = $this->randomMachineName(16); + + $target_entity_type = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface'); + $target_entity_type->expects($this->any()) + ->method('getProvider') + ->will($this->returnValue('test_module')); + $values = ['targetEntityType' => $target_entity_type_id]; + $target_entity_type->expects($this->any()) + ->method('getBundleEntityType') + ->will($this->returnValue(NULL)); + + $this->entityManager->expects($this->at(0)) + ->method('getDefinition') + ->with($target_entity_type_id) + ->will($this->returnValue($target_entity_type)); + $this->entityManager->expects($this->at(1)) + ->method('getDefinition') + ->with($this->entityTypeId) + ->will($this->returnValue($this->entityType)); + + $entity = new RdfMapping($values, $this->entityTypeId); + $dependencies = $entity->calculateDependencies()->getDependencies(); + $this->assertArrayNotHasKey('config', $dependencies); + $this->assertContains('test_module', $dependencies['module']); + } + + /** + * @covers ::calculateDependencies + */ + public function testCalculateDependenciesWithEntityBundle() { + $target_entity_type_id = $this->randomMachineName(16); + $target_entity_type = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface'); + $target_entity_type->expects($this->any()) + ->method('getProvider') + ->will($this->returnValue('test_module')); + $bundle_id = $this->randomMachineName(10); + $values = ['targetEntityType' => $target_entity_type_id , 'bundle' => $bundle_id]; + + $target_entity_type->expects($this->any()) + ->method('getBundleConfigDependency') + ->will($this->returnValue(['type' => 'config', 'name' => 'test_module.type.' . $bundle_id])); + + $this->entityManager->expects($this->at(0)) + ->method('getDefinition') + ->with($target_entity_type_id) + ->will($this->returnValue($target_entity_type)); + $this->entityManager->expects($this->at(1)) + ->method('getDefinition') + ->with($this->entityTypeId) + ->will($this->returnValue($this->entityType)); + + $entity = new RdfMapping($values, $this->entityTypeId); + $dependencies = $entity->calculateDependencies()->getDependencies(); + $this->assertContains('test_module.type.' . $bundle_id, $dependencies['config']); + $this->assertContains('test_module', $dependencies['module']); + } + +}