📄 tree.test.php
字号:
$result = $this->NumberTree->verify(); $this->assertNotIdentical($result, true); $this->NumberTree->recover(); $result = $this->NumberTree->verify(); $this->assertIdentical($result, true); }/** * testAddOrphan method * * @access public * @return void */ function testAddOrphan() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->save(array('NumberTree' => array('name' => 'testAddOrphan', 'parent_id' => null))); $result = $this->NumberTree->find(null, array('name', 'parent_id'), 'NumberTree.lft desc'); $expected = array('NumberTree' => array('name' => 'testAddOrphan', 'parent_id' => null)); $this->assertEqual($result, $expected); $validTree = $this->NumberTree->verify(); $this->assertIdentical($validTree, true); }/** * testAddMiddle method * * @access public * @return void */ function testAddMiddle() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $data= $this->NumberTree->find(array('NumberTree.name' => '1.1'), array('id')); $initialCount = $this->NumberTree->find('count'); $this->NumberTree->create(); $result = $this->NumberTree->save(array('NumberTree' => array('name' => 'testAddMiddle', 'parent_id' => $data['NumberTree']['id']))); $expected = array_merge(array('NumberTree' => array('name' => 'testAddMiddle', 'parent_id' => '2')), $result); $this->assertIdentical($result, $expected); $laterCount = $this->NumberTree->find('count'); $laterCount = $this->NumberTree->find('count'); $this->assertEqual($initialCount + 1, $laterCount); $children = $this->NumberTree->children($data['NumberTree']['id'], true, array('name')); $expects = array(array('NumberTree' => array('name' => '1.1.1')), array('NumberTree' => array('name' => '1.1.2')), array('NumberTree' => array('name' => 'testAddMiddle'))); $this->assertIdentical($children, $expects); $validTree = $this->NumberTree->verify(); $this->assertIdentical($validTree, true); }/** * testAddInvalid method * * @access public * @return void */ function testAddInvalid() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->id = null; $initialCount = $this->NumberTree->find('count'); //$this->expectError('Trying to save a node under a none-existant node in TreeBehavior::beforeSave'); $saveSuccess = $this->NumberTree->save(array('NumberTree' => array('name' => 'testAddInvalid', 'parent_id' => 99999))); $this->assertIdentical($saveSuccess, false); $laterCount = $this->NumberTree->find('count'); $this->assertIdentical($initialCount, $laterCount); $validTree = $this->NumberTree->verify(); $this->assertIdentical($validTree, true); }/** * testMovePromote method * * @access public * @return void */ function testMovePromote() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->id = null; $parent = $this->NumberTree->find(array('NumberTree.name' => '1. Root')); $parent_id = $parent['NumberTree']['id']; $data = $this->NumberTree->find(array('NumberTree.name' => '1.1.1'), array('id')); $this->NumberTree->id= $data['NumberTree']['id']; $this->NumberTree->saveField('parent_id', $parent_id); $direct = $this->NumberTree->children($parent_id, true, array('id', 'name', 'parent_id', 'lft', 'rght')); $expects = array(array('NumberTree' => array('id' => 2, 'name' => '1.1', 'parent_id' => 1, 'lft' => 2, 'rght' => 5)), array('NumberTree' => array('id' => 5, 'name' => '1.2', 'parent_id' => 1, 'lft' => 6, 'rght' => 11)), array('NumberTree' => array('id' => 3, 'name' => '1.1.1', 'parent_id' => 1, 'lft' => 12, 'rght' => 13))); $this->assertEqual($direct, $expects); $validTree = $this->NumberTree->verify(); $this->assertIdentical($validTree, true); }/** * testMoveWithWhitelist method * * @access public * @return void */ function testMoveWithWhitelist() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->id = null; $parent = $this->NumberTree->find(array('NumberTree.name' => '1. Root')); $parent_id = $parent['NumberTree']['id']; $data = $this->NumberTree->find(array('NumberTree.name' => '1.1.1'), array('id')); $this->NumberTree->id = $data['NumberTree']['id']; $this->NumberTree->whitelist = array('parent_id', 'name', 'description'); $this->NumberTree->saveField('parent_id', $parent_id); $result = $this->NumberTree->children($parent_id, true, array('id', 'name', 'parent_id', 'lft', 'rght')); $expected = array(array('NumberTree' => array('id' => 2, 'name' => '1.1', 'parent_id' => 1, 'lft' => 2, 'rght' => 5)), array('NumberTree' => array('id' => 5, 'name' => '1.2', 'parent_id' => 1, 'lft' => 6, 'rght' => 11)), array('NumberTree' => array('id' => 3, 'name' => '1.1.1', 'parent_id' => 1, 'lft' => 12, 'rght' => 13))); $this->assertEqual($result, $expected); $this->assertTrue($this->NumberTree->verify()); }/** * testInsertWithWhitelist method * * @access public * @return void */ function testInsertWithWhitelist() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->whitelist = array('name', 'parent_id'); $this->NumberTree->save(array('NumberTree' => array('name' => 'testAddOrphan', 'parent_id' => null))); $result = $this->NumberTree->findByName('testAddOrphan', array('name', 'parent_id', 'lft', 'rght')); $expected = array('name' => 'testAddOrphan', 'parent_id' => null, 'lft' => '15', 'rght' => 16); $this->assertEqual($result['NumberTree'], $expected); $this->assertIdentical($this->NumberTree->verify(), true); }/** * testMoveBefore method * * @access public * @return void */ function testMoveBefore() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->id = null; $parent = $this->NumberTree->find(array('NumberTree.name' => '1.1')); $parent_id = $parent['NumberTree']['id']; $data= $this->NumberTree->find(array('NumberTree.name' => '1.2'), array('id')); $this->NumberTree->id = $data['NumberTree']['id']; $this->NumberTree->saveField('parent_id', $parent_id); //$this->NumberTree->setparent($parent_id); $result = $this->NumberTree->children($parent_id, true, array('name')); $expects = array(array('NumberTree' => array('name' => '1.1.1')), array('NumberTree' => array('name' => '1.1.2')), array('NumberTree' => array('name' => '1.2'))); $this->assertEqual($result, $expects); $validTree = $this->NumberTree->verify(); $this->assertIdentical($validTree, true); }/** * testMoveAfter method * * @access public * @return void */ function testMoveAfter() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->id = null; $parent = $this->NumberTree->find(array('NumberTree.name' => '1.2')); $parent_id = $parent['NumberTree']['id']; $data= $this->NumberTree->find(array('NumberTree.name' => '1.1'), array('id')); $this->NumberTree->id = $data['NumberTree']['id']; $this->NumberTree->saveField('parent_id', $parent_id); //$this->NumberTree->setparent($parent_id); $result = $this->NumberTree->children($parent_id, true, array('name')); $expects = array(array('NumberTree' => array('name' => '1.2.1')), array('NumberTree' => array('name' => '1.2.2')), array('NumberTree' => array('name' => '1.1'))); $this->assertEqual($result, $expects); $validTree = $this->NumberTree->verify(); $this->assertIdentical($validTree, true); }/** * testMoveDemoteInvalid method * * @access public * @return void */ function testMoveDemoteInvalid() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->id = null; $parent = $this->NumberTree->find(array('NumberTree.name' => '1. Root')); $parent_id = $parent['NumberTree']['id']; $data = $this->NumberTree->find(array('NumberTree.name' => '1.1.1'), array('id')); $expects = $this->NumberTree->find('all'); $before = $this->NumberTree->read(null, $data['NumberTree']['id']); $this->NumberTree->id = $parent_id; //$this->expectError('Trying to save a node under itself in TreeBehavior::beforeSave'); $this->NumberTree->saveField('parent_id', $data['NumberTree']['id']); //$this->NumberTree->setparent($data['NumberTree']['id']); $results = $this->NumberTree->find('all'); $after = $this->NumberTree->read(null, $data['NumberTree']['id']); $this->assertEqual($results, $expects); $this->assertEqual($before, $after); $validTree = $this->NumberTree->verify(); $this->assertIdentical($validTree, true); }/** * testMoveInvalid method * * @access public * @return void */ function testMoveInvalid() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->id = null; $initialCount = $this->NumberTree->find('count'); $data= $this->NumberTree->findByName('1.1'); //$this->expectError('Trying to save a node under a none-existant node in TreeBehavior::beforeSave'); $this->NumberTree->id = $data['NumberTree']['id']; $this->NumberTree->saveField('parent_id', 999999); //$saveSuccess = $this->NumberTree->setparent(999999); //$this->assertIdentical($saveSuccess, false); $laterCount = $this->NumberTree->find('count'); $this->assertIdentical($initialCount, $laterCount); $validTree = $this->NumberTree->verify(); $this->assertIdentical($validTree, true); }/** * testMoveSelfInvalid method * * @access public * @return void */ function testMoveSelfInvalid() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $this->NumberTree->id = null; $initialCount = $this->NumberTree->find('count'); $data= $this->NumberTree->findByName('1.1'); //$this->expectError('Trying to set a node to be the parent of itself in TreeBehavior::beforeSave'); $this->NumberTree->id = $data['NumberTree']['id']; $saveSuccess = $this->NumberTree->saveField('parent_id', $this->NumberTree->id); //$saveSuccess= $this->NumberTree->setparent($this->NumberTree->id); $this->assertIdentical($saveSuccess, false); $laterCount = $this->NumberTree->find('count'); $this->assertIdentical($initialCount, $laterCount); $validTree = $this->NumberTree->verify(); $this->assertIdentical($validTree, true); }/** * testMoveUpSuccess method * * @access public * @return void */ function testMoveUpSuccess() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $data = $this->NumberTree->find(array('NumberTree.name' => '1.2'), array('id')); $this->NumberTree->moveUp($data['NumberTree']['id']); $parent = $this->NumberTree->findByName('1. Root', array('id')); $this->NumberTree->id = $parent['NumberTree']['id']; $result = $this->NumberTree->children(null, true, array('name')); $expected = array(array('NumberTree' => array('name' => '1.2',)), array('NumberTree' => array('name' => '1.1',))); $this->assertIdentical($result, $expected); }/** * testMoveUpFail method * * @access public * @return void */ function testMoveUpFail() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $data = $this->NumberTree->find(array('NumberTree.name' => '1.1')); $this->NumberTree->moveUp($data['NumberTree']['id']); $parent = $this->NumberTree->findByName('1. Root', array('id')); $this->NumberTree->id = $parent['NumberTree']['id']; $result = $this->NumberTree->children(null, true, array('name')); $expected = array(array('NumberTree' => array('name' => '1.1',)), array('NumberTree' => array('name' => '1.2',))); $this->assertIdentical($result, $expected); }/** * testMoveUp2 method * * @access public * @return void */ function testMoveUp2() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(1, 10); $data = $this->NumberTree->find(array('NumberTree.name' => '1.5'), array('id')); $this->NumberTree->moveUp($data['NumberTree']['id'], 2); $parent = $this->NumberTree->findByName('1. Root', array('id')); $this->NumberTree->id = $parent['NumberTree']['id']; $result = $this->NumberTree->children(null, true, array('name')); $expected = array( array('NumberTree' => array('name' => '1.1',)), array('NumberTree' => array('name' => '1.2',)), array('NumberTree' => array('name' => '1.5',)), array('NumberTree' => array('name' => '1.3',)), array('NumberTree' => array('name' => '1.4',)), array('NumberTree' => array('name' => '1.6',)), array('NumberTree' => array('name' => '1.7',)), array('NumberTree' => array('name' => '1.8',)), array('NumberTree' => array('name' => '1.9',)), array('NumberTree' => array('name' => '1.10',))); $this->assertIdentical($result, $expected); }/** * testMoveUpFirst method * * @access public * @return void */ function testMoveUpFirst() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(1, 10); $data = $this->NumberTree->find(array('NumberTree.name' => '1.5'), array('id')); $this->NumberTree->moveUp($data['NumberTree']['id'], true); $parent = $this->NumberTree->findByName('1. Root', array('id')); $this->NumberTree->id = $parent['NumberTree']['id']; $result = $this->NumberTree->children(null, true, array('name')); $expected = array( array('NumberTree' => array('name' => '1.5',)), array('NumberTree' => array('name' => '1.1',)), array('NumberTree' => array('name' => '1.2',)), array('NumberTree' => array('name' => '1.3',)), array('NumberTree' => array('name' => '1.4',)), array('NumberTree' => array('name' => '1.6',)), array('NumberTree' => array('name' => '1.7',)), array('NumberTree' => array('name' => '1.8',)), array('NumberTree' => array('name' => '1.9',)), array('NumberTree' => array('name' => '1.10',))); $this->assertIdentical($result, $expected); }/** * testMoveDownSuccess method * * @access public * @return void */ function testMoveDownSuccess() { $this->NumberTree =& new NumberTree(); $this->NumberTree->initialize(2, 2); $data = $this->NumberTree->find(array('NumberTree.name' => '1.1'), array('id')); $this->NumberTree->moveDown($data['NumberTree']['id']); $parent = $this->NumberTree->findByName('1. Root', array('id'));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -