Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / modules / language / tests / src / Unit / ContentLanguageSettingsUnitTest.php
index 06820d063180e158b33f3a24d7309f78c847b3ed..c3955df56a9e924ce78d1fece9037dfaa662ec0c 100644 (file)
@@ -4,6 +4,9 @@ namespace Drupal\Tests\language\Unit;
 
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
+use Drupal\Core\Entity\EntityManager;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Entity\EntityTypeRepositoryInterface;
 use Drupal\language\Entity\ContentLanguageSettings;
 use Drupal\Tests\UnitTestCase;
 
@@ -27,6 +30,13 @@ class ContentLanguageSettingsUnitTest extends UnitTestCase {
    */
   protected $entityManager;
 
+  /**
+   * 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.
    *
@@ -62,7 +72,8 @@ class ContentLanguageSettingsUnitTest extends UnitTestCase {
     $this->entityTypeId = $this->randomMachineName();
     $this->entityType = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface');
 
-    $this->entityManager = $this->getMock('\Drupal\Core\Entity\EntityManagerInterface');
+    $this->entityManager = new EntityManager();
+    $this->entityTypeManager = $this->getMock(EntityTypeManagerInterface::class);
 
     $this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface');
 
@@ -72,9 +83,13 @@ class ContentLanguageSettingsUnitTest extends UnitTestCase {
 
     $container = new ContainerBuilder();
     $container->set('entity.manager', $this->entityManager);
+    $container->set('entity_type.manager', $this->entityTypeManager);
     $container->set('uuid', $this->uuid);
     $container->set('config.typed', $this->typedConfigManager);
     $container->set('config.storage', $this->configEntityStorageInterface);
+    // Inject the container into entity.manager so it can defer to other entity
+    // services.
+    $this->entityManager->setContainer($container);
     \Drupal::setContainer($container);
   }
 
@@ -88,7 +103,7 @@ class ContentLanguageSettingsUnitTest extends UnitTestCase {
       ->method('getBundleConfigDependency')
       ->will($this->returnValue(['type' => 'config', 'name' => 'test.test_entity_type.id']));
 
-    $this->entityManager->expects($this->any())
+    $this->entityTypeManager->expects($this->any())
       ->method('getDefinition')
       ->with('test_entity_type')
       ->will($this->returnValue($target_entity_type));
@@ -254,16 +269,20 @@ class ContentLanguageSettingsUnitTest extends UnitTestCase {
       ->method('create')
       ->will($this->returnValue($nullConfig));
 
-    $this->entityManager
+    $this->entityTypeManager
       ->expects($this->any())
       ->method('getStorage')
       ->with('language_content_settings')
       ->will($this->returnValue($this->configEntityStorageInterface));
-    $this->entityManager->expects($this->any())
+
+    $entity_type_repository = $this->getMockForAbstractClass(EntityTypeRepositoryInterface::class);
+    $entity_type_repository->expects($this->any())
       ->method('getEntityTypeFromClass')
-      ->with('Drupal\language\Entity\ContentLanguageSettings')
+      ->with(ContentLanguageSettings::class)
       ->willReturn('language_content_settings');
 
+    \Drupal::getContainer()->set('entity_type.repository', $entity_type_repository);
+
     $config = ContentLanguageSettings::loadByEntityTypeBundle($type, $bundle);
 
     $this->assertSame($expected_langcode, $config->getDefaultLangcode());