123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- namespace Gedmo\Tree;
- use Doctrine\Common\EventManager;
- use Tool\BaseTestCaseORM;
- use Tree\Fixture\Genealogy\Man;
- use Tree\Fixture\Genealogy\Woman;
- /**
- * Additional tests for tree inheritance and in-memory updates
- *
- * @author Illya Klymov <xanf@xanf.me>
- * @package Gedmo.Tree
- * @link http://www.gediminasm.org
- * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
- */
- class InMemoryUpdatesWithInheritanceTest extends BaseTestCaseORM
- {
- const PERSON = "Tree\\Fixture\\Genealogy\\Person";
- const MAN = "Tree\\Fixture\\Genealogy\\Man";
- const WOMAN = "Tree\\Fixture\\Genealogy\\Woman";
- protected function setUp()
- {
- parent::setUp();
- $evm = new EventManager;
- $evm->addEventSubscriber(new TreeListener);
- $this->getMockSqliteEntityManager($evm);
- }
- public function testInMemoryTreeInsertsWithInheritance()
- {
- $nodes = array();
- $man1 = new Man('Root - Man1');
- $this->em->persist($man1);
- $woman1 = new Woman('Level 1 - Woman1');
- $this->em->persist($woman1);
- $woman1->setParent($man1);
- $man2 = new Man('Level 2 - Man2');
- $this->em->persist($man2);
- $man2->setParent($woman1);
- $woman2 = new Woman('Level 3 - Woman2');
- $this->em->persist($woman2);
- $woman2->setParent($man2);
- $this->em->flush();
- $left = $man1->getLeft();
- $right = $man1->getRight();
- $level = $man1->getLevel();
- $this->assertEquals(1, $left);
- $this->assertEquals(8, $right);
- $this->assertEquals(0, $level);
- $left = $woman1->getLeft();
- $right = $woman1->getRight();
- $level = $woman1->getLevel();
- $this->assertEquals(2, $left);
- $this->assertEquals(7, $right);
- $this->assertEquals(1, $level);
- $left = $man2->getLeft();
- $right = $man2->getRight();
- $level = $man2->getLevel();
- $this->assertEquals(3, $left);
- $this->assertEquals(6, $right);
- $this->assertEquals(2, $level);
- $left = $woman2->getLeft();
- $right = $woman2->getRight();
- $level = $woman2->getLevel();
- $this->assertEquals(4, $left);
- $this->assertEquals(5, $right);
- $this->assertEquals(3, $level);
- }
- protected function getUsedEntityFixtures()
- {
- return array(
- self::PERSON,
- self::MAN,
- self::WOMAN
- );
- }
- }
|