public function testInvocationIsCalledWithinAdvice() { $sequence = array(); $advice = function (Invocation $invocation) use(&$sequence) { $sequence[] = 'advice'; $result = $invocation->proceed(); $sequence[] = 'advice'; return $result; }; $invocation = $this->getInvocation($sequence); $interceptor = new AroundInterceptor($advice); $result = $interceptor->invoke($invocation); $this->assertEquals('invocation', $result, "Advice should return an original return value"); $this->assertEquals(array('advice', 'invocation', 'advice'), $sequence, "Around logic should work"); }