/**
  *    The extension class code as a string. The class
  *    composites a mock object and chains mocked methods
  *    to it.
  *    @param string $class         Class to extend.
  *    @param string $mock_class    New class name.
  *    @param array  $methods       Mocked methods.
  *    @return string               Code for a new class.
  *    @static
  *    @access private
  */
 function _extendClassCode($class, $mock_class, $methods)
 {
     $mock_base = SimpleTestOptions::getMockBaseClass();
     $code = "class {$mock_class} extends {$class} {\n";
     $code .= "    var \$_mock;\n";
     $code .= Mock::_addMethodList($methods);
     $code .= "\n";
     $code .= "    function {$mock_class}(&\$test, \$wildcard = MOCK_WILDCARD) {\n";
     $code .= "        \$this->_mock = &new {$mock_base}(\$test, \$wildcard, false);\n";
     $code .= "    }\n";
     $code .= Mock::_chainMockReturns();
     $code .= Mock::_chainMockExpectations();
     $code .= Mock::_overrideMethods($methods);
     $code .= SimpleTestOptions::getPartialMockCode();
     $code .= "}\n";
     return $code;
 }