public function TestBase::testMultipleTranslatedRevisions in Workbench Moderation to Content Moderation 8.2
Migrates an entity with several revisions, all of which are translated.
File
- tests/
src/ Functional/ TestBase.php, line 209
Class
Namespace
Drupal\Tests\wbm2cm\FunctionalCode
public function testMultipleTranslatedRevisions() {
$entity = $this
->createEntity();
$default_vid = NULL;
$revisions = [];
while (count($revisions) < 5) {
$entity
->setNewRevision();
// The fourth revision will arbitrarily be the default revision.
if (count($revisions) === 3) {
$entity
->isDefaultRevision(TRUE);
}
$moderation_states = [];
foreach ([
'en',
'fr',
'hu',
] as $language) {
$moderation_states[$language] = $this
->randomEntity('moderation_state');
$this
->translate($entity, $language)
->set('moderation_state', $moderation_states[$language]);
}
$this->storage
->save($entity);
$vid = (int) $entity
->getRevisionId();
if ($entity
->isDefaultRevision()) {
$default_vid = $vid;
}
$revisions[$vid] = $moderation_states;
}
// Ensure we set a default revision.
$this
->assertInternalType('integer', $default_vid);
$this
->doMigration();
foreach ($revisions as $vid => $moderation_states) {
/** @var ContentEntityInterface $revision */
$revision = $this->storage
->loadRevision($vid);
if ($vid === $default_vid) {
$this
->assertTrue($revision
->isDefaultRevision());
}
foreach ($moderation_states as $language => $moderation_state) {
$this
->assertSame($moderation_state, $revision
->getTranslation($language)->moderation_state->value);
}
}
}