Skip to content

Commit 159eeee

Browse files
committed
Added test for removing a root from the tree
1 parent 2d7ce70 commit 159eeee

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

tests/TestCase/Model/Behavior/TreeBehaviorTest.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -607,4 +607,30 @@ public function testRemoveMiddleNodeFromTree() {
607607
$this->assertEquals(range(1, 22), $numbers);
608608
}
609609

610+
/**
611+
* Tests removing the root of a tree
612+
*
613+
* @return void
614+
*/
615+
public function testRemoveRootFromTree() {
616+
$table = TableRegistry::get('NumberTrees');
617+
$table->addBehavior('Tree');
618+
$entity = $table->get(1);
619+
$this->assertSame($entity, $table->removeFromTree($entity));
620+
$result = $table->find('threaded')->order('lft')->hydrate(false)->toArray();
621+
$this->assertEquals(21, $entity->lft);
622+
$this->assertEquals(22, $entity->rght);
623+
$this->assertEquals(null, $entity->parent_id);
624+
$result = $table->find()->order('lft')->hydrate(false);
625+
$expected = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1];
626+
$this->assertEquals($expected, $result->extract('id')->toArray());
627+
$numbers = [];
628+
$result->each(function($v) use (&$numbers) {
629+
$numbers[] = $v['lft'];
630+
$numbers[] = $v['rght'];
631+
});
632+
sort($numbers);
633+
$this->assertEquals(range(1, 22), $numbers);
634+
}
635+
610636
}

0 commit comments

Comments
 (0)