public function testRemovingVisitor()
{
$visitor1 = $this->getMockBuilder('PhpParser\\NodeVisitor')->getMock();
$visitor2 = $this->getMockBuilder('PhpParser\\NodeVisitor')->getMock();
$visitor3 = $this->getMockBuilder('PhpParser\\NodeVisitor')->getMock();
$traverser = new NodeTraverser();
$traverser->addVisitor($visitor1);
$traverser->addVisitor($visitor2);
$traverser->addVisitor($visitor3);
$preExpected = array($visitor1, $visitor2, $visitor3);
$this->assertAttributeSame($preExpected, 'visitors', $traverser, 'The appropriate visitors have not been added');
$traverser->removeVisitor($visitor2);
$postExpected = array(0 => $visitor1, 2 => $visitor3);
$this->assertAttributeSame($postExpected, 'visitors', $traverser, 'The appropriate visitors are not present after removal');
}