public function testObjectMethodCallWithArgumentCloningDisabled() {
$expectedObject = new StdClass();
$mock = $this
->getMockBuilder('SomeClass')
->setMethods(array(
'doSomethingElse',
))
->disableArgumentCloning()
->getMock();
$actualArguments = array();
$mock
->expects($this
->any())
->method('doSomethingElse')
->will($this
->returnCallback(function () use (&$actualArguments) {
$actualArguments = func_get_args();
}));
$mock
->doSomethingElse($expectedObject);
$this
->assertEquals(1, count($actualArguments));
$this
->assertSame($expectedObject, $actualArguments[0]);
}