public function testIsValid()
 {
     $this->assertTrue(method_exists('Table9Peer', 'isValid'), 'nested_set adds an isValid() method');
     $this->assertFalse(Table9Peer::isValid(null), 'isValid() returns false when passed null ');
     $t1 = new Table9();
     $this->assertFalse(Table9Peer::isValid($t1), 'isValid() returns false when passed an empty node object');
     $t2 = new Table9();
     $t2->setLeftValue(5)->setRightValue(2);
     $this->assertFalse(Table9Peer::isValid($t2), 'isValid() returns false when passed a node object with left > right');
     $t3 = new Table9();
     $t3->setLeftValue(5)->setRightValue(5);
     $this->assertFalse(Table9Peer::isValid($t3), 'isValid() returns false when passed a node object with left = right');
     $t4 = new Table9();
     $t4->setLeftValue(2)->setRightValue(5);
     $this->assertTrue(Table9Peer::isValid($t4), 'isValid() returns true when passed a node object with left < right');
 }
 public function testFindRoot()
 {
     $this->assertTrue(method_exists('Table9Query', 'findRoot'), 'nested_set adds a findRoot() method');
     Table9Query::create()->deleteAll();
     $this->assertNull(Table9Query::create()->findRoot(), 'findRoot() returns null as long as no root node is defined');
     $t1 = new Table9();
     $t1->setLeftValue(123);
     $t1->setRightValue(456);
     $t1->save();
     $this->assertNull(Table9Query::create()->findRoot(), 'findRoot() returns null as long as no root node is defined');
     $t2 = new Table9();
     $t2->setLeftValue(1);
     $t2->setRightValue(2);
     $t2->save();
     $this->assertEquals(Table9Query::create()->findRoot(), $t2, 'findRoot() retrieves the root node');
 }
 public function testInsertAsNextSiblingOfExistingObject()
 {
     Table9Query::create()->deleteAll();
     $t = new Table9();
     $t->makeRoot();
     $t->save();
     $t1 = new Table9();
     $t1->insertAsFirstChildOf($t);
     $t1->save();
     $this->assertEquals(1, $t->getLeftValue());
     $this->assertEquals(4, $t->getRightValue());
     $this->assertEquals(0, $t->getLevel());
     $this->assertEquals(2, $t1->getLeftValue());
     $this->assertEquals(3, $t1->getRightValue());
     $this->assertEquals(1, $t1->getLevel());
     $t2 = new Table9();
     $t2->save();
     $t2->insertAsNextSiblingOf($t1);
     $this->assertEquals(4, $t2->getLeftValue());
     $this->assertEquals(5, $t2->getRightValue());
     $this->assertEquals(1, $t2->getLevel());
     $t2->save();
     $this->assertEquals(1, $t->getLeftValue());
     $this->assertEquals(6, $t->getRightValue());
     $this->assertEquals(0, $t->getLevel());
     $this->assertEquals(2, $t1->getLeftValue());
     $this->assertEquals(3, $t1->getRightValue());
     $this->assertEquals(1, $t1->getLevel());
     $this->assertEquals(4, $t2->getLeftValue());
     $this->assertEquals(5, $t2->getRightValue());
     $this->assertEquals(1, $t2->getLevel());
 }
 public function testAddChild()
 {
     Table9Peer::doDeleteAll();
     $t1 = new Table9();
     $t1->setTitle('t1');
     $t1->makeRoot();
     $t1->save();
     $t2 = new Table9();
     $t2->setTitle('t2');
     $t1->addChild($t2);
     $t2->save();
     $t3 = new Table9();
     $t3->setTitle('t3');
     $t1->addChild($t3);
     $t3->save();
     $t4 = new Table9();
     $t4->setTitle('t4');
     $t2->addChild($t4);
     $t4->save();
     $expected = array('t1' => array(1, 8, 0), 't2' => array(4, 7, 1), 't3' => array(2, 3, 1), 't4' => array(5, 6, 2));
     $this->assertEquals($expected, $this->dumpTree(), 'addChild() adds the child and saves it');
 }