--- /dev/null
+<?php
+
+namespace Doctrine\Tests\Common\Reflection;
+
+use Doctrine\Tests\DoctrineTestCase;
+use Doctrine\Common\Reflection\StaticReflectionParser;
+use Doctrine\Common\Reflection\Psr0FindFile;
+
+class StaticReflectionParserTest extends DoctrineTestCase
+{
+ 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);
+
+ }
+}