<?php

class EchoExecuteFirstArgumentStub implements PHPUnit_Framework_MockObject_Stub {
	public function invoke( PHPUnit_Framework_MockObject_Invocation $invocation ) {
		if ( !$invocation instanceof PHPUnit_Framework_MockObject_Invocation_Static ) {
			throw new PHPUnit_Framework_Exception( 'wrong invocation type' );
		}
		if ( !$invocation->arguments ) {
			throw new PHPUnit_Framework_Exception( 'Method call must have an argument' );
		}

		return call_user_func( reset( $invocation->arguments ) );
	}

	public function toString() {
		return 'return result of call_user_func on first invocation argument';
	}
}

<?php

use PHPUnit\Framework\MockObject\Invocation;
use PHPUnit\Framework\MockObject\Invocation\StaticInvocation;
use PHPUnit\Framework\MockObject\Stub;

class EchoExecuteFirstArgumentStub implements Stub {
	public function invoke( Invocation $invocation ) {
		if ( !$invocation instanceof StaticInvocation ) {
			throw new PHPUnit\Framework\Exception( 'wrong invocation type' );
		}
		if ( !$invocation->arguments ) {
			throw new PHPUnit\Framework\Exception( 'Method call must have an argument' );
		}

		return call_user_func( reset( $invocation->arguments ) );
	}

	public function toString() {
		return 'return result of call_user_func on first invocation argument';
	}
}

Use PHPUnit 6 class names
Use PHPUnit 6 class names

Bug: T192167
Change-Id: Id309ad5933371dd835ec431ded80f650e228099c
