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.');
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc