/** * Tests if a AfterThrowing advice gets woven at its correct position * * @return void * * @throws \Exception * * @expectedException \Exception */ public function testPointcutAfterThrowingSelection() { $this->testClass->iHaveAnAfterThrowingAdviceAndReturnSomething(); $this->assertNull(PointcutReferencingTestClass::$staticStorage); // reset the static storage and test if we will get something again try { PointcutReferencingTestClass::$staticStorage = null; $this->testClass->iHaveAnAfterThrowingAdviceAndThrowSomething(); } catch (\Exception $e) { $methodInvocation = PointcutReferencingTestClass::$staticStorage; $this->assertInstanceOf('\\AppserverIo\\Psr\\MetaobjectProtocol\\Aop\\MethodInvocationInterface', $methodInvocation); $this->assertNull($methodInvocation->getResult()); $this->assertInstanceOf('\\Exception', $methodInvocation->getThrownException()); throw $e; } }