function test_Line2Tree() { //Test with default service keys - children and level $line = array('ele1' => array('name' => 'Name 1', 'value' => 'Value 1'), 'ele1_1' => array('name' => 'Name 1-1', 'parent' => 'ele1'), 'ele1_2' => array('name' => 'Name 1-2', 'parent' => 'ele1'), 'ele2' => array('name' => 'Name 2')); $expected = array('ele1' => array('name' => 'Name 1', 'value' => 'Value 1', 'parent' => null, 'children' => array('ele1_1' => array('name' => 'Name 1-1', 'parent' => 'ele1'), 'ele1_2' => array('name' => 'Name 1-2', 'parent' => 'ele1'))), 'ele2' => array('name' => 'Name 2', 'parent' => null)); $tree = Oops_Utils::Line2Tree($line); $this->assertEquals($expected, $tree, 'line 2 tree error'); //Test with more depth level $line = array('ele1' => array('name' => 'Name 1', 'value' => 'Value 1'), 'ele1_1' => array('name' => 'Name 1-1', 'parent' => 'ele1'), 'ele1_2' => array('name' => 'Name 1-2', 'parent' => 'ele1_1'), 'ele2' => array('name' => 'Name 2', 'parent' => 'ele1_2')); $expected = array('ele1' => array('name' => 'Name 1', 'value' => 'Value 1', 'parent' => null, 'children' => array('ele1_1' => array('name' => 'Name 1-1', 'parent' => 'ele1', 'children' => array('ele1_2' => array('name' => 'Name 1-2', 'parent' => 'ele1_1', 'children' => array('ele2' => array('parent' => 'ele1_2', 'name' => 'Name 2')))))))); $tree = Oops_Utils::Line2Tree($line); $this->assertEquals($expected, $tree, 'Line to tree more depth error'); }