3 namespace Doctrine\Tests\Common;
5 use Doctrine\Common\ClassLoader;
7 class ClassLoaderTest extends \Doctrine\Tests\DoctrineTestCase
9 public function testClassLoader()
11 $classLoader = new ClassLoader('ClassLoaderTest');
12 $classLoader->setIncludePath(__DIR__);
13 $classLoader->setFileExtension('.class.php');
14 $classLoader->setNamespaceSeparator('_');
16 $this->assertTrue($classLoader->canLoadClass('ClassLoaderTest_ClassA'));
17 $this->assertTrue($classLoader->canLoadClass('ClassLoaderTest_ClassB'));
18 $this->assertTrue($classLoader->canLoadClass('ClassLoaderTest_ClassC'));
19 $this->assertFalse($classLoader->canLoadClass('OtherClass'));
20 $this->assertEquals($classLoader->loadClass('ClassLoaderTest_ClassA'), true);
21 $this->assertEquals($classLoader->loadClass('ClassLoaderTest_ClassB'), true);
22 $this->assertEquals($classLoader->loadClass('ClassLoaderTest_ClassC'), true);
25 public function testClassExists()
27 $this->assertFalse(ClassLoader::classExists('ClassLoaderTest\ClassD'));
28 $badLoader = function($className) {
29 require __DIR__ . '/ClassLoaderTest/ClassD.php';
32 spl_autoload_register($badLoader);
33 $this->assertTrue(ClassLoader::classExists('ClassLoaderTest\ClassD'));
34 spl_autoload_unregister($badLoader);
37 public function testGetClassLoader()
39 $cl = new ClassLoader('ClassLoaderTest', __DIR__);
41 $this->assertTrue(ClassLoader::getClassLoader('ClassLoaderTest\ClassD') instanceof \Doctrine\Common\ClassLoader);
42 $this->assertNull(ClassLoader::getClassLoader('This\Class\Does\Not\Exist'));