BaseException.php
<?php
namespace Liaison\Test;
class Exceptions extends \Taeluf\Tester {
// public function testAnonymousFunctionHandling(){
// $this->disable();
// echo
// <<<COMMENT
// // This stack WAS failing because of depth #2... But I fixed it... And I don't wanna test it right now.
// // #0 /vendor/taeluf/liaison/5-package/core/Router.php(91): Liaison->__call()
// // #1 /vendor/taeluf/liaison/5-package/core/Router.php(41): Lia\Route\Router->deliver()
// // #2 [internal function]: Lia\Route\Router->global_contentFor()
// // #3 /vendor/taeluf/liaison/5-package/class/Liaison/Functions.php(265): call_user_func_array()
// // #4 /vendor/taeluf/liaison/8-build/test/Compo/Router.php(54): Liaison->__call()
// COMMENT;
// return false;
// }
public function testThrowDeepFromClosureInFile(){
$file = null;
$line = null;
$class = __CLASS__;
try {
require(__DIR__.'/../extra/BaseException.php');
} catch (\Lia\Exception\Base $be){
$trace = $be->getExternalTrace();
}
return
$this->test('File')->compare($file,$trace->file)
&& $this->test('Function')->compare($function,$trace->fromFunction)
&& $this->test('Class')->compare($class,$trace->fromClass)
&& $this->test('Depth')->compare(4, $trace->depth)
&& $this->test('Line')->compare($line,$trace->line);
;
}
public function testThrowDeep(){
$lia = $this->lia();
try {
$lia = $this->lia();
$line = __LINE__+1;
$lia->testThrowBaseExceptionClass();
} catch (\Lia\Exception\Base $be){
$trace = $be->getExternalTrace();
}
// echo $be;
return
$this->test('File')->compare(__FILE__,$trace->file)
&& $this->test('Function')->compare(__FUNCTION__,$trace->fromFunction)
&& $this->test('Class')->compare(__CLASS__,$trace->fromClass)
&& $this->test('Depth')->compare(4, $trace->depth)
&& $this->test('Line')->compare($line,$trace->line);
;
}
public function testAddGlobalFunction(){
try {
$lia = $this->lia();
$line = __LINE__+5;
$lia->addGlobalFunction(
'some_function',
function(){},
[
'prefix'=>'on'
]
);
} catch (\Lia\Exception\Base $be){
$trace = $be->getExternalTrace();
}
// echo $be;
return
$this->test('File')->compare(__FILE__,$trace->file)
&& $this->test('Function')->compare(__FUNCTION__,$trace->fromFunction)
&& $this->test('Class')->compare(__CLASS__,$trace->fromClass)
&& $this->test('Depth')->compare(0, $trace->depth)
&& $this->test('Line')->compare($line,$trace->line);
;
}
protected function lia($debug=false){
$liaison = new \Liaison(['bare'=>true,'debug'=>$debug]);
return $liaison;
}
}
Exceptions::runAll();