public function mockery_returnValueForMethod($name)
{
if (version_compare(PHP_VERSION, '7.0.0-dev') < 0) {
return;
}
$rm = $this->mockery_getMethod($name);
if (!$rm || !$rm->hasReturnType()) {
return;
}
$type = (string) $rm->getReturnType();
switch ($type) {
case '':
return;
case 'string':
return '';
case 'int':
return 0;
case 'float':
return 0.0;
case 'bool':
return false;
case 'array':
return [];
case 'callable':
case 'Closure':
return function () {
};
case 'Traversable':
case 'Generator':
// Remove eval() when minimum version >=5.5
$generator = eval('return function () { yield; };');
return $generator();
case 'self':
return \Mockery::mock($rm->getDeclaringClass()->getName());
case 'void':
return null;
default:
return \Mockery::mock($type);
}
}