. */ namespace Doctrine\Tests\Common\Proxy; use PHPUnit_Framework_TestCase; use Doctrine\Common\Proxy\Autoloader; /** * @group DDC-1698 */ class AutoloaderTest extends PHPUnit_Framework_TestCase { public static function dataResolveFile() { return array( array('/tmp', 'MyProxy', 'MyProxy\__CG__\RealClass', '/tmp' . DIRECTORY_SEPARATOR . '__CG__RealClass.php'), array('/tmp', 'MyProxy\Subdir', 'MyProxy\Subdir\__CG__\RealClass', '/tmp' . DIRECTORY_SEPARATOR . '__CG__RealClass.php'), array('/tmp', 'MyProxy', 'MyProxy\__CG__\Other\RealClass', '/tmp' . DIRECTORY_SEPARATOR . '__CG__OtherRealClass.php'), ); } /** * @dataProvider dataResolveFile */ public function testResolveFile($proxyDir, $proxyNamespace, $className, $expectedProxyFile) { $actualProxyFile = Autoloader::resolveFile($proxyDir, $proxyNamespace, $className); $this->assertEquals($expectedProxyFile, $actualProxyFile); } public function testAutoload() { if (file_exists(sys_get_temp_dir() ."/AutoloaderTestClass.php")) { unlink(sys_get_temp_dir() ."/AutoloaderTestClass.php"); } $autoloader = Autoloader::register(sys_get_temp_dir(), 'ProxyAutoloaderTest', function($proxyDir, $proxyNamespace, $className) { file_put_contents(sys_get_temp_dir() . "/AutoloaderTestClass.php", "assertTrue(class_exists('ProxyAutoloaderTest\AutoloaderTestClass', true)); unlink(sys_get_temp_dir() ."/AutoloaderTestClass.php"); } public function testRegisterWithInvalidCallback() { $this->setExpectedException( 'Doctrine\Common\Proxy\Exception\InvalidArgumentException', 'Invalid \$notFoundCallback given: must be a callable, "stdClass" given' ); Autoloader::register('', '', new \stdClass()); } }