diff --git a/tests/thinkphp/library/think/behavior/One.php b/tests/thinkphp/library/think/behavior/One.php new file mode 100644 index 00000000..ae8fa49d --- /dev/null +++ b/tests/thinkphp/library/think/behavior/One.php @@ -0,0 +1,15 @@ + +// +---------------------------------------------------------------------- + +/** + * Hook类测试 + * @author liu21st + */ + +namespace tests\thinkphp\library\think; + +use think\Hook; +class hookTest extends \PHPUnit_Framework_TestCase +{ + protected function setUp() + { + + } + + public function testRun() + { + Hook::add('my_pos','\tests\thinkphp\library\think\behavior\One'); + Hook::add('my_pos','\tests\thinkphp\library\think\behavior\Two'); + Hook::add('my_pos','\tests\thinkphp\library\think\behavior\Three',true); + $data['id'] = 0; + $data['name'] = 'thinkphp'; + Hook::listen('my_pos',$data); + $this->assertEquals(2,$data['id']); + $this->assertEquals('thinkphp',$data['name']); + $this->assertEquals([ + '\tests\thinkphp\library\think\behavior\Three', + '\tests\thinkphp\library\think\behavior\One', + '\tests\thinkphp\library\think\behavior\Two'], + Hook::get('my_pos')); + } + + public function testImport(){ + Hook::import(['my_pos'=>[ + '\tests\thinkphp\library\think\behavior\One', + '\tests\thinkphp\library\think\behavior\Three'] + ]); + $data['id'] = 0; + $data['name'] = 'thinkphp'; + Hook::listen('my_pos',$data); + $this->assertEquals(3,$data['id']); + } + + public function testExec(){ + $data['id'] = 0; + $data['name'] = 'thinkphp'; + $this->assertEquals(true,Hook::exec('\tests\thinkphp\library\think\behavior\One')); + $this->assertEquals(false,Hook::exec('\tests\thinkphp\library\think\behavior\One','test',$data)); + $this->assertEquals('test',$data['name']); + } + +}