public function testInterceptionTestAfter() { // recreate interceptor $interceptor = InterceptionHandler::singleton(null, true); $interceptor->addAdvisor(['Xpressengine\\Tests\\Interception\\Document@insertDocument', 'Xpressengine\\Tests\\Interception\\Document@checkInput'], ['ad2' => ['ad3']], function ($target, $title, $content) { if ($target->invokedMethod == 'insertDocument') { return 'ad2(' . $target($title, $content) . ')'; } if ($target->invokedMethod == 'checkInput') { $title = 'modified ' . $title . ' by ad2'; $content = 'modified ' . $content . ' by ad2'; return [$title, $content]; } }); $interceptor->addAdvisor('Xpressengine\\Tests\\Interception\\Document@insertDocument', ['ad1' => ['after' => 'ad2']], function ($target, $title, $content) { return 'ad1(' . $target($title, $content) . ')'; }); $document = Document::newInstance(); $t = 't'; $c = 'c'; $ret = $document->insertDocument($t, $c); $this->assertEquals('ad1(ad2(insertDocument("modified t by ad2", "modified c by ad2")))', $ret); }
protected function setUp() { $this->interceptor = InterceptionHandler::singleton(null, true); $this->targetObject = Document::newInstance($this->interceptor); }