PHPUnit_Extension_FunctionMocker::getMock PHP Method

getMock() public method

public getMock ( )
    public function getMock()
    {
        $mock = $this->testCase->getMockBuilder('stdClass')->setMethods($this->functions)->setMockClassName('PHPUnit_Extension_FunctionMocker_' . uniqid())->getMock();
        foreach ($this->functions as $function) {
            $fqFunction = $this->namespace . '\\' . $function;
            if (in_array($fqFunction, static::$mockedFunctions, true)) {
                continue;
            }
            if (!extension_loaded('runkit') || !ini_get('runkit.internal_override')) {
                PHPUnit_Extension_FunctionMocker_CodeGenerator::defineFunction($function, $this->namespace);
            } elseif (!function_exists('__phpunit_function_mocker_' . $function)) {
                runkit_function_rename($function, '__phpunit_function_mocker_' . $function);
                error_log($function);
                runkit_method_redefine($function, function () use($function) {
                    if (!isset($GLOBALS['__PHPUNIT_EXTENSION_FUNCTIONMOCKER'][$this->namespace])) {
                        return call_user_func_array('__phpunit_function_mocker_' . $function, func_get_args());
                    }
                    return call_user_func_array(array($GLOBALS['__PHPUNIT_EXTENSION_FUNCTIONMOCKER'][$this->namespace], $function), func_get_args());
                });
                var_dump(strlen("foo"));
            }
            static::$mockedFunctions[] = $fqFunction;
        }
        if (!isset($GLOBALS['__PHPUNIT_EXTENSION_FUNCTIONMOCKER'])) {
            $GLOBALS['__PHPUNIT_EXTENSION_FUNCTIONMOCKER'] = array();
        }
        $GLOBALS['__PHPUNIT_EXTENSION_FUNCTIONMOCKER'][$this->namespace] = $mock;
        return $mock;
    }