/** * @covers Navinator\Collection::sortNodeArray */ public function testSortNodeArray() { $nodeData = array('alpha-3' => 3, 'alpha-2' => 2, 'alpha-1' => 1, 'alpha-4' => 4, 'alpha-1/beta-3' => 3, 'alpha-1/beta-1' => 1, 'alpha-1/beta-2' => 2, 'alpha-1/beta-4' => 4); $nodes = array(); $c = new Collection(); foreach ($nodeData as $path => $displayOrder) { $n = new Node($path); $nodes[$path] = $n; $c->addNode($n, $displayOrder); } $rootNodes = $c->getRootNodes(); $expected = array($nodes['alpha-1'], $nodes['alpha-2'], $nodes['alpha-3'], $nodes['alpha-4']); $result = $c->sortNodeArray($rootNodes); $this->assertEquals($expected, $result); // check for samse display orders $c->setNodeDisplayOrder($c->getNode('alpha-1/beta-4'), 3, false); $expected = array($nodes['alpha-1/beta-1'], $nodes['alpha-1/beta-2'], $nodes['alpha-1/beta-4'], $nodes['alpha-1/beta-3']); $result = $c->sortNodeArray($c->getNode('alpha-1')->getChildren($c)); $this->assertEquals($expected, $result); }