public function testRecursionWorks()
{
$child = $this->getMock(self::FIRST_CLASS_NAME, array('recursion'));
$invocation = new self::$invocationClass(self::FIRST_CLASS_NAME, 'recursion', []);
$child->expects($this->exactly(5))->method('recursion')->will($this->returnCallback(function ($value, $level) use($child, $invocation) {
return $invocation($child, array($value, $level));
}));
$this->assertEquals(5, $child->recursion(5, 0));
$this->assertEquals(20, $child->recursion(5, 3));
}