public function positiveMatch($name, $subject, array $arguments)
{
preg_match(self::$regex, $name, $matches);
$method = ('be' === $matches[1] ? 'is' : 'has') . ucfirst($matches[2]);
$callable = array($subject, $method);
if (!method_exists($subject, $method)) {
throw new MethodNotFoundException(sprintf('Method %s not found.', $this->presenter->presentValue($callable)), $subject, $method, $arguments);
}
if (true !== ($result = call_user_func_array($callable, $arguments))) {
throw $this->getFailureExceptionFor($callable, true, $result);
}
}