/**
  * 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;
     }
 }