コード例 #1
0
 public function testRemoveFromTreeByElement()
 {
     $comment1 = new CommentTestModel();
     $comment1->save();
     $comment11 = new CommentTestModel();
     $comment11->parent = $comment1;
     $comment11->save();
     $comment2 = new CommentTestModel();
     $comment2->save();
     $comment22 = new CommentTestModel();
     $comment22->parent = $comment2;
     $comment22->save();
     $comment222 = new CommentTestModel();
     $comment222->parent = $comment22;
     $comment222->save();
     $comment3 = new CommentTestModel();
     $comment3->save();
     $comment4 = new CommentTestModel();
     $comment4->save();
     $comment44 = new CommentTestModel();
     $comment44->parent = $comment4;
     $comment44->save();
     $this->_testDbElement($comment1->getPk(), 1, 4, 0, 0);
     $this->_testDbElement($comment11->getPk(), 2, 3, 1, $comment1->getPk());
     $this->_testDbElement($comment2->getPk(), 5, 10, 0, 0);
     $this->_testDbElement($comment22->getPk(), 6, 9, 1, $comment2->getPk());
     $this->_testDbElement($comment222->getPk(), 7, 8, 2, $comment22->getPk());
     $this->_testDbElement($comment3->getPk(), 11, 12, 0, 0);
     $this->_testDbElement($comment4->getPk(), 13, 16, 0, 0);
     $this->_testDbElement($comment44->getPk(), 14, 15, 1, $comment4->getPk());
     $ext = new \T4\Orm\Extensions\Tree();
     $reflector = new ReflectionMethod($ext, 'removeFromTreeByElement');
     $reflector->setAccessible(true);
     $reflector->invoke($ext, $comment3);
     $this->_testDbElement($comment1->getPk(), 1, 4, 0, 0);
     $this->_testDbElement($comment11->getPk(), 2, 3, 1, $comment1->getPk());
     $this->_testDbElement($comment2->getPk(), 5, 10, 0, 0);
     $this->_testDbElement($comment22->getPk(), 6, 9, 1, $comment2->getPk());
     $this->_testDbElement($comment222->getPk(), 7, 8, 2, $comment22->getPk());
     //$this->_testDbElement($comment3->getPk(),   11, 12, 0, 0);
     $this->_testDbElement($comment4->getPk(), 11, 14, 0, 0);
     $this->_testDbElement($comment44->getPk(), 12, 13, 1, $comment4->getPk());
     $comment2->refreshTreeColumns();
     $reflector->invoke($ext, $comment2);
     $this->_testDbElement($comment1->getPk(), 1, 4, 0, 0);
     $this->_testDbElement($comment11->getPk(), 2, 3, 1, $comment1->getPk());
     //$this->_testDbElement($comment2->getPk(),   5, 10, 0, 0);
     //$this->_testDbElement($comment22->getPk(),  6, 9, 1, $comment2->getPk());
     //$this->_testDbElement($comment222->getPk(), 7, 8, 2, $comment22->getPk());
     //$this->_testDbElement($comment3->getPk(),   11, 12, 0, 0);
     $this->_testDbElement($comment4->getPk(), 5, 8, 0, 0);
     $this->_testDbElement($comment44->getPk(), 6, 7, 1, $comment4->getPk());
 }