lithium\test\Unit::_reportException()
Convert an exception object to an exception result array for test reporting.
Parameters
-
array
$exception
The exception data to report on. Statistics are gathered and added to the reporting stack contained in
Unit::$_results
. -
string
$lineFlag
Returns
voidSource
protected function _reportException($exception, $lineFlag = null) {
$message = $exception['message'];
$isExpected = (($exp = end($this->_expected)) && ($exp === true || $exp === $message || (
Validator::isRegex($exp) && preg_match($exp, $message)
)));
if ($isExpected) {
return array_pop($this->_expected);
}
$initFrame = current($exception['trace']) + ['class' => '-', 'function' => '-'];
foreach ($exception['trace'] as $frame) {
if (isset($scopedFrame)) {
break;
}
if (!class_exists('lithium\analysis\Inspector')) {
continue;
}
if (isset($frame['class']) && in_array($frame['class'], Inspector::parents($this))) {
$scopedFrame = $frame;
}
}
if (class_exists('lithium\analysis\Debugger')) {
$exception['trace'] = Debugger::trace([
'trace' => $exception['trace'],
'format' => '{:functionRef}, line {:line}',
'includeScope' => false,
'scope' => array_filter([
'functionRef' => __NAMESPACE__ . '\{closure}',
'line' => $lineFlag
])
]);
}
$this->_result('exception', $exception + [
'class' => $initFrame['class'],
'method' => $initFrame['function']
]);
}