3 namespace Doctrine\Tests\Common\Util
5 use Doctrine\Tests\DoctrineTestCase;
6 use Doctrine\Common\Util\ClassUtils;
8 class ClassUtilsTest extends DoctrineTestCase
10 static public function dataGetClass()
13 array('stdClass', 'stdClass'),
14 array('Doctrine\Common\Util\ClassUtils', 'Doctrine\Common\Util\ClassUtils'),
15 array( 'MyProject\Proxies\__CG__\stdClass', 'stdClass' ),
16 array( 'MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\stdClass', 'stdClass' ),
17 array( 'MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util\ChildObject','Doctrine\Tests\Common\Util\ChildObject' )
22 * @dataProvider dataGetClass
24 public function testGetRealClass($className, $expectedClassName)
26 $this->assertEquals($expectedClassName, ClassUtils::getRealClass($className));
30 * @dataProvider dataGetClass
32 public function testGetClass( $className, $expectedClassName )
34 $object = new $className();
35 $this->assertEquals($expectedClassName, ClassUtils::getClass($object));
38 public function testGetParentClass()
40 $parentClass = ClassUtils::getParentClass( 'MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\Doctrine\Tests\Common\Util\ChildObject' );
41 $this->assertEquals('stdClass', $parentClass);
44 public function testGenerateProxyClassName()
46 $this->assertEquals( 'Proxies\__CG__\stdClass', ClassUtils::generateProxyClassName( 'stdClass', 'Proxies' ) );
50 * @dataProvider dataGetClass
52 public function testNewReflectionClass( $className, $expectedClassName )
54 $reflClass = ClassUtils::newReflectionClass( $className );
55 $this->assertEquals( $expectedClassName, $reflClass->getName() );
59 * @dataProvider dataGetClass
61 public function testNewReflectionObject( $className, $expectedClassName )
63 $object = new $className;
64 $reflClass = ClassUtils::newReflectionObject( $object );
65 $this->assertEquals( $expectedClassName, $reflClass->getName() );
69 class ChildObject extends \stdClass
74 namespace MyProject\Proxies\__CG__
76 class stdClass extends \stdClass
81 namespace MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util
83 class ChildObject extends \Doctrine\Tests\Common\Util\ChildObject
88 namespace MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__
90 class stdClass extends \MyProject\Proxies\__CG__\stdClass
95 namespace MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\Doctrine\Tests\Common\Util
97 class ChildObject extends \MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util\ChildObject