1 <?php
2 /*
3  * This file is part of the PHPUnit_MockObject package.
4  *
5  * (c) Sebastian Bergmann <sebastian@phpunit.de>
6  *
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10 
11 class Framework_ProxyObjectTest extends PHPUnit_Framework_TestCase
12 {
13     public function testMockedMethodIsProxiedToOriginalMethod()
14     {
15         $proxy = $this->getMockBuilder(Bar::class)
16                       ->enableProxyingToOriginalMethods()
17                       ->getMock();
18 
19         $proxy->expects($this->once())
20               ->method('doSomethingElse');
21 
22         $foo = new Foo;
23 
24         $this->assertEquals('result', $foo->doSomething($proxy));
25     }
26 
27     public function testMockedMethodWithReferenceIsProxiedToOriginalMethod()
28     {
29         $proxy = $this->getMockBuilder(MethodCallbackByReference::class)
30                       ->enableProxyingToOriginalMethods()
31                       ->getMock();
32 
33         $a = $b = $c = 0;
34 
35         $proxy->callback($a, $b, $c);
36 
37         $this->assertEquals(1, $b);
38     }
39 }
40