コード例 #1
0
ファイル: MysqlOrmExtTreeTest.php プロジェクト: pr-of-it/t4
 public function testParentChange()
 {
     $comment1 = new CommentTestModel();
     $comment1->num = 1;
     $comment1->save();
     $comment11 = new CommentTestModel();
     $comment11->num = 11;
     $comment11->parent = $comment1;
     $comment11->save();
     $comment2 = new CommentTestModel();
     $comment2->num = 2;
     $comment2->save();
     $comment22 = new CommentTestModel();
     $comment22->num = 22;
     $comment22->parent = $comment2;
     $comment22->save();
     $comment222 = new CommentTestModel();
     $comment222->num = 222;
     $comment222->parent = $comment22;
     $comment222->save();
     /** @todo: wtf? this is made for $comment22->children refresh AFTER its child is added! */
     $comment22->refresh();
     $comment3 = new CommentTestModel();
     $comment3->num = 3;
     $comment3->save();
     $comment4 = new CommentTestModel();
     $comment4->num = 4;
     $comment4->save();
     $comment44 = new CommentTestModel();
     $comment44->num = 44;
     $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());
     $comment3->parent = $comment1;
     $comment3->save();
     $this->_testDbElement($comment1->getPk(), 1, 6, 0, 0);
     $this->_testDbElement($comment11->getPk(), 2, 3, 1, $comment1->getPk());
     $this->_testDbElement($comment3->getPk(), 4, 5, 1, $comment1->getPk());
     $this->_testDbElement($comment2->getPk(), 7, 12, 0, 0);
     $this->_testDbElement($comment22->getPk(), 8, 11, 1, $comment2->getPk());
     $this->_testDbElement($comment222->getPk(), 9, 10, 2, $comment22->getPk());
     $this->_testDbElement($comment4->getPk(), 13, 16, 0, 0);
     $this->_testDbElement($comment44->getPk(), 14, 15, 1, $comment4->getPk());
     $comment22->parent = null;
     $comment22->save();
     $this->_testDbElement($comment1->getPk(), 1, 6, 0, 0);
     $this->_testDbElement($comment11->getPk(), 2, 3, 1, $comment1->getPk());
     $this->_testDbElement($comment3->getPk(), 4, 5, 1, $comment1->getPk());
     $this->_testDbElement($comment2->getPk(), 7, 8, 0, 0);
     $this->_testDbElement($comment4->getPk(), 9, 12, 0, 0);
     $this->_testDbElement($comment44->getPk(), 10, 11, 1, $comment4->getPk());
     $this->_testDbElement($comment22->getPk(), 13, 16, 0, 0);
     $this->_testDbElement($comment222->getPk(), 14, 15, 1, $comment22->getPk());
 }
コード例 #2
0
 public function testExpandTreeInElementLast()
 {
     $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, 'expandTreeInElementLast');
     $reflector->setAccessible(true);
     $reflector->invoke($ext, $comment1, 1);
     $this->_testDbElement($comment1->getPk(), 1, 6, 0, 0);
     $this->_testDbElement($comment11->getPk(), 2, 3, 1, $comment1->getPk());
     $this->_testDbElement($comment2->getPk(), 7, 12, 0, 0);
     $this->_testDbElement($comment22->getPk(), 8, 11, 1, $comment2->getPk());
     $this->_testDbElement($comment222->getPk(), 9, 10, 2, $comment22->getPk());
     $this->_testDbElement($comment3->getPk(), 13, 14, 0, 0);
     $this->_testDbElement($comment4->getPk(), 15, 18, 0, 0);
     $this->_testDbElement($comment44->getPk(), 16, 17, 1, $comment4->getPk());
     $comment222->refresh();
     $reflector->invoke($ext, $comment222, 3);
     $this->_testDbElement($comment1->getPk(), 1, 6, 0, 0);
     $this->_testDbElement($comment11->getPk(), 2, 3, 1, $comment1->getPk());
     $this->_testDbElement($comment2->getPk(), 7, 16, 0, 0);
     $this->_testDbElement($comment22->getPk(), 8, 15, 1, $comment2->getPk());
     $this->_testDbElement($comment222->getPk(), 9, 14, 2, $comment22->getPk());
     $this->_testDbElement($comment3->getPk(), 17, 18, 0, 0);
     $this->_testDbElement($comment4->getPk(), 19, 22, 0, 0);
     $this->_testDbElement($comment44->getPk(), 20, 21, 1, $comment4->getPk());
     $comment4->refresh();
     $reflector->invoke($ext, $comment4, 5);
     $this->_testDbElement($comment1->getPk(), 1, 6, 0, 0);
     $this->_testDbElement($comment11->getPk(), 2, 3, 1, $comment1->getPk());
     $this->_testDbElement($comment2->getPk(), 7, 16, 0, 0);
     $this->_testDbElement($comment22->getPk(), 8, 15, 1, $comment2->getPk());
     $this->_testDbElement($comment222->getPk(), 9, 14, 2, $comment22->getPk());
     $this->_testDbElement($comment3->getPk(), 17, 18, 0, 0);
     $this->_testDbElement($comment4->getPk(), 19, 28, 0, 0);
     $this->_testDbElement($comment44->getPk(), 20, 21, 1, $comment4->getPk());
 }