multiversion-8.x-1.0-beta34/tests/src/Kernel/MultiversionIndexFactoryTest.php
tests/src/Kernel/MultiversionIndexFactoryTest.php
<?php namespace Drupal\Tests\multiversion\Kernel; use Drupal\KernelTests\KernelTestBase; use Drupal\multiversion\Entity\Index\EntityIndexInterface; use Drupal\multiversion\Entity\Index\RevisionIndexInterface; use Drupal\multiversion\Entity\Index\RevisionTreeIndexInterface; use Drupal\multiversion\Entity\Index\SequenceIndexInterface; use Drupal\multiversion\Entity\Index\UuidIndexInterface; use Drupal\multiversion\Entity\Workspace; /** * @group multiversion */ class MultiversionIndexFactoryTest extends KernelTestBase { /** * {@inheritdoc} */ public static $modules = ['multiversion', 'key_value', 'serialization', 'user', 'system']; /** @var \Drupal\multiversion\Entity\Index\MultiversionIndexFactory */ protected $multiversionIndexFactory; /** @var \Drupal\multiversion\Entity\WorkspaceInterface */ protected $workspace; /** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->installEntitySchema('workspace'); $this->installConfig('multiversion'); $this->multiversionIndexFactory = \Drupal::service('multiversion.entity_index.factory'); $this->workspace = Workspace::create([ 'type' => 'test', 'machine_name' => 'le_workspace', 'label' => 'Le Workspace', ]); $this->workspace->save(); } /** * Tests the factory. */ public function testFactory() { // With workspace $sequence_index = $this->multiversionIndexFactory->get('multiversion.entity_index.sequence', $this->workspace); $this->assertTrue(($sequence_index instanceof SequenceIndexInterface)); $id_index = $this->multiversionIndexFactory->get('multiversion.entity_index.id', $this->workspace); $this->assertTrue(($id_index instanceof EntityIndexInterface)); $uuid_index = $this->multiversionIndexFactory->get('multiversion.entity_index.uuid', $this->workspace); $this->assertTrue(($uuid_index instanceof UuidIndexInterface)); $rev_index = $this->multiversionIndexFactory->get('multiversion.entity_index.rev', $this->workspace); $this->assertTrue(($rev_index instanceof RevisionIndexInterface)); $rev_tree_index = $this->multiversionIndexFactory->get('multiversion.entity_index.rev.tree', $this->workspace); $this->assertTrue(($rev_tree_index instanceof RevisionTreeIndexInterface)); // Without a workspace $sequence_index = $this->multiversionIndexFactory->get('multiversion.entity_index.sequence'); $this->assertTrue(($sequence_index instanceof SequenceIndexInterface)); $id_index = $this->multiversionIndexFactory->get('multiversion.entity_index.id'); $this->assertTrue(($id_index instanceof EntityIndexInterface)); $uuid_index = $this->multiversionIndexFactory->get('multiversion.entity_index.uuid'); $this->assertTrue(($uuid_index instanceof UuidIndexInterface)); $rev_index = $this->multiversionIndexFactory->get('multiversion.entity_index.rev'); $this->assertTrue(($rev_index instanceof RevisionIndexInterface)); $rev_tree_index = $this->multiversionIndexFactory->get('multiversion.entity_index.rev.tree'); $this->assertTrue(($rev_tree_index instanceof RevisionTreeIndexInterface)); // Expecting an exception $this->setExpectedException(\InvalidArgumentException::class); $this->multiversionIndexFactory->get('non.existant.service.name'); } }