/**
  * @covers Navinator\Collection::buildFromArray
  */
 public function testBuildFromArray()
 {
     $testData = array('alpha' => array('path' => 'alpha', 'path_array' => array('alpha'), 'ancestor_path_array' => array(), 'parent_path' => false, 'depth' => 1, 'display_name' => 'Alpha', 'display_order' => 1, 'expected_display_order' => 1, 'last_path_segment' => 'alpha'), 'alpha/beta' => array('path' => 'alpha/beta', 'path_array' => array('alpha', 'beta'), 'ancestor_path_array' => array('alpha'), 'parent_path' => 'alpha', 'depth' => 2, 'display_name' => 'Beta', 'display_order' => 1, 'expected_display_order' => 1, 'last_path_segment' => 'beta'), 'alpha/beta-2' => array('path' => 'alpha/beta-2', 'path_array' => array('alpha', 'beta-2'), 'ancestor_path_array' => array('alpha'), 'parent_path' => 'alpha', 'depth' => 2, 'display_name' => 'Beta 2', 'display_order' => 1, 'expected_display_order' => 2, 'last_path_segment' => 'beta-2'), 'alpha/beta/gamma' => array('path' => 'alpha/beta/gamma', 'path_array' => array('alpha', 'beta', 'gamma'), 'ancestor_path_array' => array('alpha', 'alpha/beta'), 'parent_path' => 'alpha/beta', 'depth' => 3, 'display_name' => 'Gamma', 'display_order' => 2, 'expected_display_order' => 2, 'last_path_segment' => 'gamma'), 'alpha-2' => array('path' => 'alpha-2', 'path_array' => array('alpha-2'), 'ancestor_path_array' => array(), 'parent_path' => false, 'depth' => 1, 'display_name' => 'Delta', 'display_order' => 1, 'expected_display_order' => 2, 'last_path_segment' => 'delta'));
     $c = Collection::buildFromArray($testData);
     foreach ($c as $path => $n) {
         extract($testData[$path]);
         $this->assertEquals($path, $n->getPath());
         // test url
         $this->assertEquals('/' . $path . '/', $n->url, 'Cannot covert path to url correctly');
         $this->assertEquals($path_array, $n->getPathArray());
         $this->assertEquals($parent_path, $n->getParentPath());
         $this->assertEquals($depth, $n->getDepth());
         $this->assertEquals($ancestor_path_array, $n->getAncestorPaths());
         $this->assertEquals($display_name, $n->display_name);
         $this->assertEquals($expected_display_order, $c->getNodeDisplayOrder($n), $path . ' display order ex: ' . $expected_display_order . ' act: ' . $c->getNodeDisplayOrder($n));
     }
     $c = Collection::buildFromArray($testData, false);
     foreach ($c as $path => $n) {
         extract($testData[$path]);
         $this->assertEquals($path, $n->getPath());
         // test url
         $this->assertEquals('/' . $path . '/', $n->url, 'Cannot covert path to url correctly');
         $this->assertEquals($path_array, $n->getPathArray());
         $this->assertEquals($parent_path, $n->getParentPath());
         $this->assertEquals($depth, $n->getDepth());
         $this->assertEquals($ancestor_path_array, $n->getAncestorPaths());
         $this->assertEquals($display_name, $n->display_name);
         $this->assertEquals($display_order, $c->getNodeDisplayOrder($n), $path . ' display order ex: ' . $display_order . ' act: ' . $c->getNodeDisplayOrder($n));
     }
 }