You are here

public function TestBase::testMultipleUntranslatedRevisions in Workbench Moderation to Content Moderation 8.2

Migrates an entity with several revisions, but no translations.

File

tests/src/Functional/TestBase.php, line 168

Class

TestBase

Namespace

Drupal\Tests\wbm2cm\Functional

Code

public function testMultipleUntranslatedRevisions() {
  $entity = $this
    ->createEntity();
  $default_vid = NULL;
  $moderation_states = [];
  while (count($moderation_states) < 5) {
    $entity
      ->setNewRevision();

    // The third revision will arbitrarily be the default revision.
    if (count($moderation_states) === 2) {
      $entity
        ->isDefaultRevision(TRUE);
    }
    $entity
      ->set('moderation_state', $this
      ->randomEntity('moderation_state'));
    $this->storage
      ->save($entity);
    $vid = (int) $entity
      ->getRevisionId();
    if ($entity
      ->isDefaultRevision()) {
      $default_vid = $vid;
    }
    $moderation_states[$vid] = $entity->moderation_state->target_id;
  }

  // Ensure that we chose a default revision.
  $this
    ->assertInternalType('integer', $default_vid);
  $this
    ->doMigration();
  foreach ($moderation_states as $vid => $moderation_state) {

    /** @var ContentEntityInterface $revision */
    $revision = $this->storage
      ->loadRevision($vid);
    if ($vid === $default_vid) {
      $this
        ->assertTrue($revision
        ->isDefaultRevision());
    }
    $this
      ->assertSame($moderation_state, $revision->moderation_state->value);
  }
}