/** * @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)); } }