private static function doGenerateMock($args, $isAbstract = false)
{
$testCase = self::extractTestCaseFromArgs($args);
$methodName = $isAbstract ? 'getMockForAbstractClass' : 'getMock';
$generatorClass = new \PHPUnit_Framework_MockObject_Generator();
// using PHPUnit 5.4 mocks registration
if (version_compare(\PHPUnit_Runner_Version::series(), '5.4', '>=') && $testCase instanceof \PHPUnit_Framework_TestCase) {
$mock = call_user_func_array([$generatorClass, $methodName], $args);
$testCase->registerMockObject($mock);
return $mock;
}
if ($testCase instanceof \PHPUnit_Framework_TestCase) {
$generatorClass = $testCase;
}
return call_user_func_array([$generatorClass, $methodName], $args);
}