3 namespace Doctrine\Tests\Common\Reflection;
5 use Doctrine\Tests\DoctrineTestCase;
6 use Doctrine\Common\Reflection\StaticReflectionParser;
7 use Doctrine\Common\Reflection\Psr0FindFile;
9 class StaticReflectionParserTest extends DoctrineTestCase
11 public function testParentClass()
13 $testsRoot = substr(__DIR__, 0, -strlen(__NAMESPACE__) - 1);
15 'Doctrine\\Tests' => array($testsRoot),
17 $noParentClassName = 'Doctrine\\Tests\\Common\\Reflection\\NoParent';
18 $staticReflectionParser = new StaticReflectionParser($noParentClassName, new Psr0FindFile($paths));
19 $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
20 $this->assertEquals($noParentClassName, $declaringClassName);
22 $className = 'Doctrine\\Tests\\Common\\Reflection\\FullyClassifiedParent';
23 $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths));
24 $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
25 $this->assertEquals($noParentClassName, $declaringClassName);
27 $className = 'Doctrine\\Tests\\Common\\Reflection\\SameNamespaceParent';
28 $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths));
29 $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
30 $this->assertEquals($noParentClassName, $declaringClassName);
32 $dummyParentClassName = 'Doctrine\\Tests\\Common\\Reflection\\Dummies\\NoParent';
34 $className = 'Doctrine\\Tests\\Common\\Reflection\\DeeperNamespaceParent';
35 $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths));
36 $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
37 $this->assertEquals($dummyParentClassName, $declaringClassName);
39 $className = 'Doctrine\\Tests\\Common\\Reflection\\UseParent';
40 $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths));
41 $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
42 $this->assertEquals($dummyParentClassName, $declaringClassName);