1--TEST-- 2PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', true) 3--FILE-- 4<?php 5namespace NS; 6 7class Foo 8{ 9 public function __clone() 10 { 11 } 12} 13 14require __DIR__ . '/../../../vendor/autoload.php'; 15 16$generator = new \PHPUnit_Framework_MockObject_Generator; 17 18$mock = $generator->generate( 19 'NS\Foo', 20 array(), 21 'MockFoo', 22 true 23); 24 25print $mock['code']; 26?> 27--EXPECTF-- 28class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject 29{ 30 private $__phpunit_invocationMocker; 31 private $__phpunit_originalObject; 32 private $__phpunit_configurable = []; 33 34 public function __clone() 35 { 36 $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker(); 37 parent::__clone(); 38 } 39 40 public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher) 41 { 42 return $this->__phpunit_getInvocationMocker()->expects($matcher); 43 } 44 45 public function method() 46 { 47 $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount; 48 $expects = $this->expects($any); 49 return call_user_func_array(array($expects, 'method'), func_get_args()); 50 } 51 52 public function __phpunit_setOriginalObject($originalObject) 53 { 54 $this->__phpunit_originalObject = $originalObject; 55 } 56 57 public function __phpunit_getInvocationMocker() 58 { 59 if ($this->__phpunit_invocationMocker === null) { 60 $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker($this->__phpunit_configurable); 61 } 62 63 return $this->__phpunit_invocationMocker; 64 } 65 66 public function __phpunit_hasMatchers() 67 { 68 return $this->__phpunit_getInvocationMocker()->hasMatchers(); 69 } 70 71 public function __phpunit_verify($unsetInvocationMocker = true) 72 { 73 $this->__phpunit_getInvocationMocker()->verify(); 74 75 if ($unsetInvocationMocker) { 76 $this->__phpunit_invocationMocker = null; 77 } 78 } 79} 80