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;
*/
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.
*
$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');
$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);
}
->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));
->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());