Esempio n. 1
0
 /**
  * Correct tree tests (children stuff)
  */
 function test_tree()
 {
     // Create parent and child instances, tree-ing them
     $parent = new mock_base_nested_element('PARENT');
     $child = new mock_base_nested_element('CHILD');
     $parent->add_child($child);
     $this->assertEquals($parent->get_children(), array('CHILD' => $child));
     $this->assertEquals($child->get_parent(), $parent);
     $check_children = $parent->get_children();
     $check_child = $check_children['CHILD'];
     $check_parent = $check_child->get_parent();
     $this->assertEquals($check_child->get_name(), 'CHILD');
     $this->assertEquals($check_parent->get_name(), 'PARENT');
     $this->assertEquals($check_child->get_level(), 2);
     $this->assertEquals($check_parent->get_level(), 1);
     $this->assertEquals($check_parent->get_children(), array('CHILD' => $child));
     $this->assertEquals($check_child->get_parent(), $parent);
     // Add parent to grandparent
     $grandparent = new mock_base_nested_element('GRANDPARENT');
     $grandparent->add_child($parent);
     $this->assertEquals($grandparent->get_children(), array('PARENT' => $parent));
     $this->assertEquals($parent->get_parent(), $grandparent);
     $this->assertEquals($parent->get_children(), array('CHILD' => $child));
     $this->assertEquals($child->get_parent(), $parent);
     $this->assertEquals($child->get_level(), 3);
     $this->assertEquals($parent->get_level(), 2);
     $this->assertEquals($grandparent->get_level(), 1);
     // Add grandchild to child
     $grandchild = new mock_base_nested_element('GRANDCHILD');
     $child->add_child($grandchild);
     $this->assertEquals($child->get_children(), array('GRANDCHILD' => $grandchild));
     $this->assertEquals($grandchild->get_parent(), $child);
     $this->assertEquals($grandchild->get_level(), 4);
     $this->assertEquals($child->get_level(), 3);
     $this->assertEquals($parent->get_level(), 2);
     $this->assertEquals($grandparent->get_level(), 1);
     // Add another child to parent
     $child2 = new mock_base_nested_element('CHILD2');
     $parent->add_child($child2);
     $this->assertEquals($parent->get_children(), array('CHILD' => $child, 'CHILD2' => $child2));
     $this->assertEquals($child2->get_parent(), $parent);
     $this->assertEquals($grandchild->get_level(), 4);
     $this->assertEquals($child->get_level(), 3);
     $this->assertEquals($child2->get_level(), 3);
     $this->assertEquals($parent->get_level(), 2);
     $this->assertEquals($grandparent->get_level(), 1);
 }