Chris@14: --TEST-- Chris@14: \PHPUnit\Framework\MockObject\Generator::generate('Foo', null, 'ProxyFoo', true, true, true, true) Chris@14: --FILE-- Chris@14: generate( Chris@14: 'Foo', array(), 'ProxyFoo', true, true, true, true Chris@14: ); Chris@14: Chris@14: print $mock['code']; Chris@14: ?> Chris@14: --EXPECTF-- Chris@14: class ProxyFoo extends Foo implements PHPUnit\Framework\MockObject\MockObject Chris@14: { Chris@14: private $__phpunit_invocationMocker; Chris@14: private $__phpunit_originalObject; Chris@14: private $__phpunit_configurable = ['bar', 'baz']; Chris@14: Chris@14: public function __clone() Chris@14: { Chris@14: $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker(); Chris@14: } Chris@14: Chris@14: public function bar(Foo $foo) Chris@14: { Chris@14: $arguments = array($foo); Chris@14: $count = func_num_args(); Chris@14: Chris@14: if ($count > 1) { Chris@14: $_arguments = func_get_args(); Chris@14: Chris@14: for ($i = 1; $i < $count; $i++) { Chris@14: $arguments[] = $_arguments[$i]; Chris@14: } Chris@14: } Chris@14: Chris@14: $this->__phpunit_getInvocationMocker()->invoke( Chris@14: new \PHPUnit\Framework\MockObject\Invocation\ObjectInvocation( Chris@14: 'Foo', 'bar', $arguments, '', $this, true Chris@14: ) Chris@14: ); Chris@14: Chris@14: return call_user_func_array(array($this->__phpunit_originalObject, "bar"), $arguments); Chris@14: } Chris@14: Chris@14: public function baz(Foo $foo) Chris@14: { Chris@14: $arguments = array($foo); Chris@14: $count = func_num_args(); Chris@14: Chris@14: if ($count > 1) { Chris@14: $_arguments = func_get_args(); Chris@14: Chris@14: for ($i = 1; $i < $count; $i++) { Chris@14: $arguments[] = $_arguments[$i]; Chris@14: } Chris@14: } Chris@14: Chris@14: $this->__phpunit_getInvocationMocker()->invoke( Chris@14: new \PHPUnit\Framework\MockObject\Invocation\ObjectInvocation( Chris@14: 'Foo', 'baz', $arguments, '', $this, true Chris@14: ) Chris@14: ); Chris@14: Chris@14: return call_user_func_array(array($this->__phpunit_originalObject, "baz"), $arguments); Chris@14: } Chris@14: Chris@14: public function expects(\PHPUnit\Framework\MockObject\Matcher\Invocation $matcher) Chris@14: { Chris@14: return $this->__phpunit_getInvocationMocker()->expects($matcher); Chris@14: } Chris@14: Chris@14: public function method() Chris@14: { Chris@14: $any = new \PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount; Chris@14: $expects = $this->expects($any); Chris@14: return call_user_func_array(array($expects, 'method'), func_get_args()); Chris@14: } Chris@14: Chris@14: public function __phpunit_setOriginalObject($originalObject) Chris@14: { Chris@14: $this->__phpunit_originalObject = $originalObject; Chris@14: } Chris@14: Chris@14: public function __phpunit_getInvocationMocker() Chris@14: { Chris@14: if ($this->__phpunit_invocationMocker === null) { Chris@14: $this->__phpunit_invocationMocker = new \PHPUnit\Framework\MockObject\InvocationMocker($this->__phpunit_configurable); Chris@14: } Chris@14: Chris@14: return $this->__phpunit_invocationMocker; Chris@14: } Chris@14: Chris@14: public function __phpunit_hasMatchers() Chris@14: { Chris@14: return $this->__phpunit_getInvocationMocker()->hasMatchers(); Chris@14: } Chris@14: Chris@14: public function __phpunit_verify($unsetInvocationMocker = true) Chris@14: { Chris@14: $this->__phpunit_getInvocationMocker()->verify(); Chris@14: Chris@14: if ($unsetInvocationMocker) { Chris@14: $this->__phpunit_invocationMocker = null; Chris@14: } Chris@14: } Chris@14: }