class_call_parent_clone.phpt 1.8 KB

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