public function testVisit()
 {
     $this->tree->add(new Variant('child1'), 'default');
     $this->tree->add(new Variant('child2'), 'default');
     $this->tree->add(new Variant('child1-1'), 'child1');
     $this->tree->add(new Variant('child1-2'), 'child1');
     // name-level mapping
     $expectedVisit = array('default' => 0, 'child1' => 1, 'child2' => 1, 'child1-1' => 2, 'child1-2' => 2);
     $visitedNodes = array();
     $this->tree->visit(function (VariantNode $node, $level) use(&$visitedNodes) {
         $visitedNodes[$node->getContent()->getName()] = $level;
     });
     $this->assertEquals($expectedVisit, $visitedNodes);
 }