multiversion-8.x-1.0-beta34/tests/src/Functional/UuidIndexTest.php
tests/src/Functional/UuidIndexTest.php
<?php namespace Drupal\Tests\multiversion\Functional; use Drupal\entity_test\Entity\EntityTest; /** * Test the methods on the UuidIndex class. * * @group multiversion */ class UuidIndexTest extends MultiversionFunctionalTestBase { public function testMethods() { $entity = EntityTest::create(); $uuid = $entity->uuid(); $this->uuidIndex->add($entity); $entry = $this->uuidIndex->get($uuid); $expected = [ 'entity_type_id' => 'entity_test', 'entity_id' => 0, 'revision_id' => 0, 'uuid' => $uuid, 'rev' => $entity->_rev->value, 'is_stub' => $entity->_rev->is_stub, 'status' => 'indexed', ]; $this->assertEqual($expected, $entry, 'Single entry is correct for an entity that was not yet saved.'); $entity->save(); $this->uuidIndex->add($entity); $entry = $this->uuidIndex->get($uuid); $expected = [ 'entity_type_id' => 'entity_test', 'entity_id' => 1, 'revision_id' => 1, 'uuid' => $uuid, 'rev' => $entity->_rev->value, 'is_stub' => $entity->_rev->is_stub, 'status' => 'available', ]; $this->assertEqual($expected, $entry, 'Single entry is correct for an entity that was saved.'); $entities = []; $uuid = []; $rev = []; $is_stub = []; $entity = $entities[] = EntityTest::create(); $uuid[] = $entity->uuid(); $rev[] = $entity->_rev->value; $is_stub[] = $entity->_rev->is_stub; $entity = $entities[] = EntityTest::create(); $uuid[] = $entity->uuid(); $rev[] = $entity->_rev->value; $is_stub[] = $entity->_rev->is_stub; $this->uuidIndex->addMultiple($entities); $expected = [ $uuid[0] => [ 'entity_type_id' => 'entity_test', 'entity_id' => 0, 'revision_id' => 0, 'rev' => $rev[0], 'is_stub' => $is_stub[0], 'uuid' => $uuid[0], 'status' => 'indexed', ], $uuid[1] => [ 'entity_type_id' => 'entity_test', 'entity_id' => 0, 'revision_id' => 0, 'rev' => $rev[1], 'is_stub' => $is_stub[1], 'uuid' => $uuid[1], 'status' => 'indexed', ], ]; $entries = $this->uuidIndex->getMultiple([$uuid[0], $uuid[1]]); $this->assertEqual($expected, $entries, 'Multiple entries are correct.'); /** @var \Drupal\Core\Entity\EntityStorageInterface $workspace_storage */ $workspace_storage = $this->container->get('entity.manager')->getStorage('workspace'); // Create new workspaces and query those. $ws1 = $this->randomMachineName(); $workspace_storage->create(['machine_name' => $ws1, 'type' => 'basic']); $ws2 = $this->randomMachineName(); $workspace_storage->create(['machine_name' => $ws2, 'type' => 'basic']); $entity = EntityTest::create(); $uuid = $entity->uuid(); $rev = $entity->_rev->value; $is_stub = $entity->_rev->is_stub; $this->uuidIndex->useWorkspace($ws1)->add($entity); $entry = $this->uuidIndex ->useWorkspace($ws2) ->get($uuid); $this->assertTrue(empty($entry), 'New workspace is empty'); $this->uuidIndex ->useWorkspace($ws2) ->add($entity); $entry = $this->uuidIndex ->useWorkspace($ws2) ->get($uuid); $expected = [ 'entity_type_id' => 'entity_test', 'entity_id' => 0, 'revision_id' => 0, 'rev' => $rev, 'is_stub' => $is_stub, 'uuid' => $uuid, 'status' => 'indexed', ]; $this->assertEqual($expected, $entry, 'Entry was added and fetched from new workspace.'); } }