public function ComplexLcaResolverTest::testLcaFinder in Multiversion 8
Shape of Tree created is: 1 / \ 2 6 / \ 3 4 / 5
File
- tests/
src/ Functional/ ComplexLcaResolverTest.php, line 48
Class
- ComplexLcaResolverTest
- Test the Integration of LCA library with multiversion module.
Namespace
Drupal\Tests\multiversion\FunctionalCode
public function testLcaFinder() {
$storage = $this->entityTypeManager
->getStorage('entity_test');
$entity = $storage
->create();
$uuid = $entity
->uuid();
// Initial revision.
$entity
->save();
$revs[] = $entity->_rev->value;
$entity
->save();
$revs[] = $entity->_rev->value;
$entity
->save();
$revs[] = $entity->_rev->value;
// Create a new branch from the second revision.
$entity = $storage
->loadRevision(2);
$entity
->save();
$revs[] = $entity->_rev->value;
// Continue the last branch.
$entity = $storage
->loadRevision(4);
$entity
->save();
$revs[] = $entity->_rev->value;
// Create a new branch based on the first revision.
$entity = $storage
->loadRevision(1);
$entity
->save();
$revs[] = $entity->_rev->value;
// Loading and storing revisions in $revision array.
$revision = [];
for ($i = 1; $i <= 6; $i++) {
$revision[$i] = $storage
->loadRevision($i);
}
// Creating a graph of revision IDs from revision tree.
$graph = $this->tree
->getGraph($uuid);
$lca_id = $this->conflictLcaManager
->resolveLowestCommonAncestor($revision[1], $revision[2], $graph);
$this
->assertEqual($lca_id
->getId(), $revs[0]);
$lca_id = $this->conflictLcaManager
->resolveLowestCommonAncestor($revision[3], $revision[4], $graph);
$this
->assertEqual($lca_id
->getId(), $revs[1]);
$lca_id = $this->conflictLcaManager
->resolveLowestCommonAncestor($revision[3], $revision[6], $graph);
$this
->assertEqual($lca_id
->getId(), $revs[0]);
$lca_id = $this->conflictLcaManager
->resolveLowestCommonAncestor($revision[2], $revision[6], $graph);
$this
->assertEqual($lca_id
->getId(), $revs[0]);
}