annotate vendor/phpunit/phpunit-mock-objects/tests/Generator/397.phpt @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents c2387f117808
children
rev   line source
Chris@14 1 --TEST--
Chris@14 2 https://github.com/sebastianbergmann/phpunit-mock-objects/issues/397
Chris@16 3 --SKIPIF--
Chris@16 4 <?php
Chris@16 5 if (!version_compare(PHP_VERSION, '7.1', '>=')) print 'skip: PHP >= 7.1 required';
Chris@14 6 --FILE--
Chris@14 7 <?php
Chris@14 8 class C
Chris@14 9 {
Chris@14 10 public function m(?self $other): self
Chris@14 11 {
Chris@14 12 }
Chris@14 13 }
Chris@14 14
Chris@14 15 require __DIR__ . '/../../vendor/autoload.php';
Chris@14 16
Chris@14 17 $generator = new \PHPUnit\Framework\MockObject\Generator;
Chris@14 18
Chris@14 19 $mock = $generator->generate(
Chris@14 20 C::class,
Chris@14 21 [],
Chris@14 22 'MockC',
Chris@14 23 true,
Chris@14 24 true
Chris@14 25 );
Chris@14 26
Chris@14 27 print $mock['code'];
Chris@14 28 --EXPECTF--
Chris@14 29 class MockC extends C implements PHPUnit\Framework\MockObject\MockObject
Chris@14 30 {
Chris@14 31 private $__phpunit_invocationMocker;
Chris@14 32 private $__phpunit_originalObject;
Chris@14 33 private $__phpunit_configurable = ['m'];
Chris@14 34
Chris@14 35 public function __clone()
Chris@14 36 {
Chris@14 37 $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
Chris@14 38 }
Chris@14 39
Chris@14 40 public function m(?C $other): C
Chris@14 41 {
Chris@14 42 $arguments = array($other);
Chris@14 43 $count = func_num_args();
Chris@14 44
Chris@14 45 if ($count > 1) {
Chris@14 46 $_arguments = func_get_args();
Chris@14 47
Chris@14 48 for ($i = 1; $i < $count; $i++) {
Chris@14 49 $arguments[] = $_arguments[$i];
Chris@14 50 }
Chris@14 51 }
Chris@14 52
Chris@14 53 $result = $this->__phpunit_getInvocationMocker()->invoke(
Chris@14 54 new \PHPUnit\Framework\MockObject\Invocation\ObjectInvocation(
Chris@14 55 'C', 'm', $arguments, 'C', $this, true
Chris@14 56 )
Chris@14 57 );
Chris@14 58
Chris@14 59 return $result;
Chris@14 60 }
Chris@14 61
Chris@14 62 public function expects(\PHPUnit\Framework\MockObject\Matcher\Invocation $matcher)
Chris@14 63 {
Chris@14 64 return $this->__phpunit_getInvocationMocker()->expects($matcher);
Chris@14 65 }
Chris@14 66
Chris@14 67 public function method()
Chris@14 68 {
Chris@14 69 $any = new \PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount;
Chris@14 70 $expects = $this->expects($any);
Chris@14 71 return call_user_func_array(array($expects, 'method'), func_get_args());
Chris@14 72 }
Chris@14 73
Chris@14 74 public function __phpunit_setOriginalObject($originalObject)
Chris@14 75 {
Chris@14 76 $this->__phpunit_originalObject = $originalObject;
Chris@14 77 }
Chris@14 78
Chris@14 79 public function __phpunit_getInvocationMocker()
Chris@14 80 {
Chris@14 81 if ($this->__phpunit_invocationMocker === null) {
Chris@14 82 $this->__phpunit_invocationMocker = new \PHPUnit\Framework\MockObject\InvocationMocker($this->__phpunit_configurable);
Chris@14 83 }
Chris@14 84
Chris@14 85 return $this->__phpunit_invocationMocker;
Chris@14 86 }
Chris@14 87
Chris@14 88 public function __phpunit_hasMatchers()
Chris@14 89 {
Chris@14 90 return $this->__phpunit_getInvocationMocker()->hasMatchers();
Chris@14 91 }
Chris@14 92
Chris@14 93 public function __phpunit_verify($unsetInvocationMocker = true)
Chris@14 94 {
Chris@14 95 $this->__phpunit_getInvocationMocker()->verify();
Chris@14 96
Chris@14 97 if ($unsetInvocationMocker) {
Chris@14 98 $this->__phpunit_invocationMocker = null;
Chris@14 99 }
Chris@14 100 }
Chris@14 101 }