the whole shebang
This commit is contained in:
207
vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PhpParserTest.php
فروخته شده
Normal file
207
vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PhpParserTest.php
فروخته شده
Normal file
@@ -0,0 +1,207 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Tests\Common\Annotations;
|
||||
|
||||
use ReflectionClass;
|
||||
use Doctrine\Common\Annotations\PhpParser;
|
||||
|
||||
require_once __DIR__.'/Fixtures/NonNamespacedClass.php';
|
||||
require_once __DIR__.'/Fixtures/GlobalNamespacesPerFileWithClassAsFirst.php';
|
||||
require_once __DIR__.'/Fixtures/GlobalNamespacesPerFileWithClassAsLast.php';
|
||||
|
||||
class PhpParserTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testParseClassWithMultipleClassesInFile()
|
||||
{
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\MultipleClassesInFile');
|
||||
$parser = new PhpParser();
|
||||
|
||||
$this->assertEquals(array(
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testParseClassWithMultipleImportsInUseStatement()
|
||||
{
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\MultipleImportsInUseStatement');
|
||||
$parser = new PhpParser();
|
||||
|
||||
$this->assertEquals(array(
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testParseClassWhenNotUserDefined()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$this->assertEquals(array(), $parser->parseClass(new \ReflectionClass('\stdClass')));
|
||||
}
|
||||
|
||||
public function testClassFileDoesNotExist()
|
||||
{
|
||||
$class = $this->getMockBuilder('\ReflectionClass')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$class->expects($this->once())
|
||||
->method('getFilename')
|
||||
->will($this->returnValue('/valid/class/Fake.php(35) : eval()d code'));
|
||||
|
||||
$parser = new PhpParser();
|
||||
$this->assertEquals(array(), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testParseClassWhenClassIsNotNamespaced()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass('\AnnotationsTestsFixturesNonNamespacedClass');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testParseClassWhenClassIsInterface()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\TestInterface');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testClassWithFullyQualifiedUseStatements()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\ClassWithFullyQualifiedUseStatements');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'secure' => '\\' . __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
'route' => '\\' . __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'template' => '\\' . __NAMESPACE__ . '\Fixtures\Annotation\Template',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testNamespaceAndClassCommentedOut()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\NamespaceAndClassCommentedOut');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testEqualNamespacesPerFileWithClassAsFirst()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\EqualNamespacesPerFileWithClassAsFirst');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testEqualNamespacesPerFileWithClassAsLast()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\EqualNamespacesPerFileWithClassAsLast');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testDifferentNamespacesPerFileWithClassAsFirst()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\DifferentNamespacesPerFileWithClassAsFirst');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testDifferentNamespacesPerFileWithClassAsLast()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\DifferentNamespacesPerFileWithClassAsLast');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testGlobalNamespacesPerFileWithClassAsFirst()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new \ReflectionClass('\GlobalNamespacesPerFileWithClassAsFirst');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testGlobalNamespacesPerFileWithClassAsLast()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass('\GlobalNamespacesPerFileWithClassAsLast');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testNamespaceWithClosureDeclaration()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\NamespaceWithClosureDeclaration');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
public function testIfPointerResetsOnMultipleParsingTries()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\NamespaceWithClosureDeclaration');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
|
||||
), $parser->parseClass($class));
|
||||
|
||||
$this->assertEquals(array(
|
||||
'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
|
||||
'route' => __NAMESPACE__ . '\Fixtures\Annotation\Route',
|
||||
'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
|
||||
/**
|
||||
* @group DCOM-97
|
||||
* @group regression
|
||||
*/
|
||||
public function testClassWithClosure()
|
||||
{
|
||||
$parser = new PhpParser();
|
||||
$class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\ClassWithClosure');
|
||||
|
||||
$this->assertEquals(array(
|
||||
'annotationtargetall' => __NAMESPACE__ . '\Fixtures\AnnotationTargetAll',
|
||||
'annotationtargetannotation' => __NAMESPACE__ . '\Fixtures\AnnotationTargetAnnotation',
|
||||
), $parser->parseClass($class));
|
||||
}
|
||||
}
|
||||
مرجع در شماره جدید
Block a user