53 lines
1.1 KiB
PHP
53 lines
1.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Mockery (https://docs.mockery.io/)
|
|
*
|
|
* @copyright https://github.com/mockery/mockery/blob/HEAD/COPYRIGHT.md
|
|
* @license https://github.com/mockery/mockery/blob/HEAD/LICENSE BSD 3-Clause License
|
|
* @link https://github.com/mockery/mockery for the canonical source repository
|
|
*/
|
|
|
|
namespace Mockery;
|
|
|
|
use Closure;
|
|
|
|
/**
|
|
* @method Expectation withArgs(array|Closure $args)
|
|
*/
|
|
class HigherOrderMessage
|
|
{
|
|
/**
|
|
* @var string
|
|
*/
|
|
private $method;
|
|
|
|
/**
|
|
* @var LegacyMockInterface|MockInterface
|
|
*/
|
|
private $mock;
|
|
|
|
public function __construct(MockInterface $mock, $method)
|
|
{
|
|
$this->mock = $mock;
|
|
$this->method = $method;
|
|
}
|
|
|
|
/**
|
|
* @param string $method
|
|
* @param array $args
|
|
*
|
|
* @return Expectation|ExpectationInterface|HigherOrderMessage
|
|
*/
|
|
public function __call($method, $args)
|
|
{
|
|
if ($this->method === 'shouldNotHaveReceived') {
|
|
return $this->mock->{$this->method}($method, $args);
|
|
}
|
|
|
|
$expectation = $this->mock->{$this->method}($method);
|
|
|
|
return $expectation->withArgs($args);
|
|
}
|
|
}
|