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); }