public function __construct(atoum\asserter $asserter, $message)
{
$code = 0;
$test = $asserter->getTest();
if ($test !== null) {
$class = $test->getClass();
$method = $test->getCurrentMethod();
$file = $test->getPath();
$line = null;
$function = null;
foreach (array_filter(debug_backtrace(false), function ($backtrace) use($file) {
return isset($backtrace['file']) === true && $backtrace['file'] === $file;
}) as $backtrace) {
if ($line === null && isset($backtrace['line']) === true) {
$line = $backtrace['line'];
}
if ($function === null && isset($backtrace['object']) === true && isset($backtrace['function']) === true && $backtrace['object'] === $asserter && $backtrace['function'] !== '__call') {
$function = $backtrace['function'];
}
}
$code = $test->getScore()->addFail($file, $class, $method, $line, get_class($asserter) . ($function ? '::' . $function : '') . '()', $message);
}
parent::__construct($message, $code);
}