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;
}