public function testMerge()
{
$strStart = new String_('Start');
$strMiddle = new String_('End');
$strEnd = new String_('Middle');
$strR1 = new String_('Replacement 1');
$strR2 = new String_('Replacement 2');
$visitor = $this->getMockBuilder('PhpParser\\NodeVisitor')->getMock();
// replace strMiddle with strR1 and strR2 by merge
$visitor->expects($this->at(4))->method('leaveNode')->with($strMiddle)->will($this->returnValue(array($strR1, $strR2)));
$traverser = new NodeTraverser();
$traverser->addVisitor($visitor);
$this->assertEquals(array($strStart, $strR1, $strR2, $strEnd), $traverser->traverse(array($strStart, $strMiddle, $strEnd)));
}