/** * Handle a method call being directed by this instance * * @param array $args * @return mixed */ public function call(array $args) { $expectation = $this->findExpectation($args); if (is_null($expectation)) { throw new \Mockery\Exception('No matching handler found for ' . $this->_mock->mockery_getName() . '::' . \Mockery::formatArgs($this->_name, $args) . '. Either the method was unexpected or its arguments matched' . ' no expected argument list for this method'); } return $expectation->verifyCall($args); }
/** * Handle a method call being directed by this instance * * @param array $args * @return mixed */ public function call(array $args) { $expectation = $this->findExpectation($args); if (is_null($expectation)) { $exception = new \Mockery\Exception\NoMatchingExpectationException('No matching handler found for ' . $this->_mock->mockery_getName() . '::' . \Mockery::formatArgs($this->_name, $args) . '. Either the method was unexpected or its arguments matched' . ' no expected argument list for this method' . PHP_EOL . PHP_EOL . \Mockery::formatObjects($args)); $exception->setMock($this->_mock)->setMethodName($this->_name)->setActualArguments($args); throw $exception; } return $expectation->verifyCall($args); }
public function setupExpectationsOnMockAndGetParams(M\MockInterface $mock, $method, $return_value = 0xdeadcafebabe) { $params = array(); $rm = new ReflectionMethod($mock->mockery_getName(), $method); foreach ($rm->getParameters() as $rp) { if ($rp->isArray()) { $params[$rp->getPosition()] = array(uniqid()); } else { if ($rc = $rp->getClass()) { $params[$rp->getPosition()] = M::mock($rc->getName()); } else { $params[$rp->getPosition()] = uniqid(); } } } $expectation = $mock->shouldReceive($method); call_user_func_array(array($expectation, 'with'), $params); if ($return_value != 0xdeadcafebabe) { $expectation->andReturn($return_value); } return $params; }