protected function dumpTree()
 {
     $c = new Criteria();
     $c->addAscendingOrderBycolumn(Table9Peer::TITLE);
     return $this->dumpNodes(Table9Peer::doSelect($c));
 }
 public function testDeleteTree()
 {
     $this->initTree();
     Table9Peer::deleteTree();
     $this->assertEquals(array(), Table9Peer::doSelect(new Criteria()), 'deleteTree() deletes the whole tree');
 }
 public function testDelete()
 {
     list($t1, $t2, $t3, $t4, $t5, $t6, $t7) = $this->initTree();
     /* Tree used for tests
         t1
         |  \
         t2 t3
            |  \
            t4 t5
               |  \
               t6 t7
        */
     $t5->delete();
     $this->assertEquals(13, $t3->getRightValue(), 'delete() does not update existing nodes (because delete() clears the instance cache)');
     $expected = array('t1' => array(1, 8, 0), 't2' => array(2, 3, 1), 't3' => array(4, 7, 1), 't4' => array(5, 6, 2));
     $this->assertEquals($expected, $this->dumpTree(), 'delete() deletes all descendants and shifts the entire subtree correctly');
     list($t1, $t2, $t3, $t4, $t5, $t6, $t7) = $this->initTree();
     try {
         $t1->delete();
         $this->fail('delete() throws an exception when called on a root node');
     } catch (PropelException $e) {
         $this->assertTrue(true, 'delete() throws an exception when called on a root node');
     }
     $this->assertNotEquals(array(), Table9Peer::doSelect(new Criteria()), 'delete() called on the root node does not delete the whole tree');
 }