Browse Source

Fix incorrect level field name usage.

Fixes #6010
ADmad 11 years ago
parent
commit
0c892e9119

+ 3 - 3
src/ORM/Behavior/TreeBehavior.php

@@ -103,7 +103,7 @@ class TreeBehavior extends Behavior
             $this->_sync(2, '+', ">= {$edge}");
 
             if ($level) {
-                $entity->set($config[$level], $parentNode[$level] + 1);
+                $entity->set($level, $parentNode[$level] + 1);
             }
             return;
         }
@@ -114,7 +114,7 @@ class TreeBehavior extends Behavior
             $entity->set($config['right'], $edge + 2);
 
             if ($level) {
-                $entity->set($config[$level], 0);
+                $entity->set($level, 0);
             }
             return;
         }
@@ -133,7 +133,7 @@ class TreeBehavior extends Behavior
             $this->_setAsRoot($entity);
 
             if ($level) {
-                $entity->set($config[$level], 0);
+                $entity->set($level, 0);
             }
         }
     }

+ 12 - 12
tests/Fixture/NumberTreesFixture.php

@@ -36,7 +36,7 @@ class NumberTreesFixture extends TestFixture
         'parent_id' => 'integer',
         'lft' => ['type' => 'integer'],
         'rght' => ['type' => 'integer'],
-        'level' => ['type' => 'integer'],
+        'depth' => ['type' => 'integer'],
         '_constraints' => ['primary' => ['type' => 'primary', 'columns' => ['id']]]
     ];
 
@@ -63,77 +63,77 @@ class NumberTreesFixture extends TestFixture
             'parent_id' => null,
             'lft' => '1',
             'rght' => '20',
-            'level' => 0
+            'depth' => 0
         ],
         [
             'name' => 'televisions',
             'parent_id' => '1',
             'lft' => '2',
             'rght' => '9',
-            'level' => 1
+            'depth' => 1
         ],
         [
             'name' => 'tube',
             'parent_id' => '2',
             'lft' => '3',
             'rght' => '4',
-            'level' => 2
+            'depth' => 2
         ],
         [
             'name' => 'lcd',
             'parent_id' => '2',
             'lft' => '5',
             'rght' => '6',
-            'level' => 2
+            'depth' => 2
         ],
         [
             'name' => 'plasma',
             'parent_id' => '2',
             'lft' => '7',
             'rght' => '8',
-            'level' => 2
+            'depth' => 2
         ],
         [
             'name' => 'portable',
             'parent_id' => '1',
             'lft' => '10',
             'rght' => '19',
-            'level' => 1
+            'depth' => 1
         ],
         [
             'name' => 'mp3',
             'parent_id' => '6',
             'lft' => '11',
             'rght' => '14',
-            'level' => 2
+            'depth' => 2
         ],
         [
             'name' => 'flash',
             'parent_id' => '7',
             'lft' => '12',
             'rght' => '13',
-            'level' => 3
+            'depth' => 3
         ],
         [
             'name' => 'cd',
             'parent_id' => '6',
             'lft' => '15',
             'rght' => '16',
-            'level' => 2
+            'depth' => 2
         ],
         [
             'name' => 'radios',
             'parent_id' => '6',
             'lft' => '17',
             'rght' => '18',
-            'level' => 2
+            'depth' => 2
         ],
         [
             'name' => 'alien hardware',
             'parent_id' => null,
             'lft' => '21',
             'rght' => '22',
-            'level' => 0
+            'depth' => 0
         ]
     ];
 }

+ 11 - 11
tests/TestCase/ORM/Behavior/TreeBehaviorTest.php

@@ -1239,22 +1239,22 @@ class TreeBehaviorTest extends TestCase
      */
     public function testSetLevelNewNode()
     {
-        $this->table->behaviors()->Tree->config('level', 'level');
+        $this->table->behaviors()->Tree->config('level', 'depth');
 
         $entity = new Entity(['parent_id' => null, 'name' => 'Depth 0']);
         $this->table->save($entity);
         $entity = $this->table->get(12);
-        $this->assertEquals(0, $entity->level);
+        $this->assertEquals(0, $entity->depth);
 
         $entity = new Entity(['parent_id' => 1, 'name' => 'Depth 1']);
         $this->table->save($entity);
         $entity = $this->table->get(13);
-        $this->assertEquals(1, $entity->level);
+        $this->assertEquals(1, $entity->depth);
 
         $entity = new Entity(['parent_id' => 8, 'name' => 'Depth 4']);
         $this->table->save($entity);
         $entity = $this->table->get(14);
-        $this->assertEquals(4, $entity->level);
+        $this->assertEquals(4, $entity->depth);
     }
 
     /**
@@ -1264,29 +1264,29 @@ class TreeBehaviorTest extends TestCase
      */
     public function testSetLevelExistingNode()
     {
-        $this->table->behaviors()->Tree->config('level', 'level');
+        $this->table->behaviors()->Tree->config('level', 'depth');
 
         // Leaf node
         $entity = $this->table->get(4);
-        $this->assertEquals(2, $entity->level);
+        $this->assertEquals(2, $entity->depth);
         $this->table->save($entity);
         $entity = $this->table->get(4);
-        $this->assertEquals(2, $entity->level);
+        $this->assertEquals(2, $entity->depth);
 
         // Non leaf node so depth of descendents will also change
         $entity = $this->table->get(6);
-        $this->assertEquals(1, $entity->level);
+        $this->assertEquals(1, $entity->depth);
 
         $entity->parent_id = null;
         $this->table->save($entity);
         $entity = $this->table->get(6);
-        $this->assertEquals(0, $entity->level);
+        $this->assertEquals(0, $entity->depth);
 
         $entity = $this->table->get(7);
-        $this->assertEquals(1, $entity->level);
+        $this->assertEquals(1, $entity->depth);
 
         $entity = $this->table->get(8);
-        $this->assertEquals(2, $entity->level);
+        $this->assertEquals(2, $entity->depth);
     }
 
     /**