public function testParentClass()
 {
     $testsRoot = substr(__DIR__, 0, -strlen(__NAMESPACE__) - 1);
     $paths = array('Doctrine\\Tests' => array($testsRoot));
     $noParentClassName = 'Doctrine\\Tests\\Common\\Reflection\\NoParent';
     $staticReflectionParser = new StaticReflectionParser($noParentClassName, new Psr0FindFile($paths));
     $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
     $this->assertEquals($noParentClassName, $declaringClassName);
     $className = 'Doctrine\\Tests\\Common\\Reflection\\FullyClassifiedParent';
     $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths));
     $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
     $this->assertEquals($noParentClassName, $declaringClassName);
     $className = 'Doctrine\\Tests\\Common\\Reflection\\SameNamespaceParent';
     $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths));
     $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
     $this->assertEquals($noParentClassName, $declaringClassName);
     $dummyParentClassName = 'Doctrine\\Tests\\Common\\Reflection\\Dummies\\NoParent';
     $className = 'Doctrine\\Tests\\Common\\Reflection\\DeeperNamespaceParent';
     $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths));
     $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
     $this->assertEquals($dummyParentClassName, $declaringClassName);
     $className = 'Doctrine\\Tests\\Common\\Reflection\\UseParent';
     $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths));
     $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
     $this->assertEquals($dummyParentClassName, $declaringClassName);
 }
 /**
  * @dataProvider parentClassData
  *
  * @param bool   $classAnnotationOptimize
  * @param string $parsedClassName
  * @param string $expectedClassName
  *
  * @return void
  */
 public function testParentClass($classAnnotationOptimize, $parsedClassName, $expectedClassName)
 {
     // If classed annotation optimization is enabled the properties tested
     // below cannot be found.
     if ($classAnnotationOptimize) {
         $this->setExpectedException('ReflectionException');
     }
     $testsRoot = substr(__DIR__, 0, -strlen(__NAMESPACE__) - 1);
     $paths = array('Doctrine\\Tests' => array($testsRoot));
     $staticReflectionParser = new StaticReflectionParser($parsedClassName, new Psr0FindFile($paths), $classAnnotationOptimize);
     $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
     $this->assertEquals($expectedClassName, $declaringClassName);
 }
 /**
  * @return StaticReflectionParser
  */
 protected function getStaticReflectionParser()
 {
     return $this->staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', $this->propertyName);
 }
 /**
  * @return StaticReflectionParser
  */
 protected function getStaticReflectionParser()
 {
     return $this->staticReflectionParser->getStaticReflectionParserForDeclaringClass('method', $this->methodName);
 }