Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@14: use PHPUnit\Framework\TestCase; Chris@14: Chris@14: class ProxyObjectTest extends TestCase Chris@0: { Chris@0: public function testMockedMethodIsProxiedToOriginalMethod() Chris@0: { Chris@14: $proxy = $this->getMockBuilder(Bar::class) Chris@0: ->enableProxyingToOriginalMethods() Chris@0: ->getMock(); Chris@0: Chris@0: $proxy->expects($this->once()) Chris@0: ->method('doSomethingElse'); Chris@0: Chris@0: $foo = new Foo; Chris@14: Chris@0: $this->assertEquals('result', $foo->doSomething($proxy)); Chris@0: } Chris@0: Chris@0: public function testMockedMethodWithReferenceIsProxiedToOriginalMethod() Chris@0: { Chris@14: $proxy = $this->getMockBuilder(MethodCallbackByReference::class) Chris@0: ->enableProxyingToOriginalMethods() Chris@0: ->getMock(); Chris@14: Chris@0: $a = $b = $c = 0; Chris@0: Chris@0: $proxy->callback($a, $b, $c); Chris@0: Chris@0: $this->assertEquals(1, $b); Chris@0: } Chris@0: }