public function UuidIndexTest::testMethods in Multiversion 8
File
- tests/
src/ Functional/ UuidIndexTest.php, line 14
Class
- UuidIndexTest
- Test the methods on the UuidIndex class.
Namespace
Drupal\Tests\multiversion\FunctionalCode
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.');
}