Blame view

sources/3rdparty/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest.php 1.74 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  <?php
  
  namespace Doctrine\Tests\Common;
  
  use Doctrine\Common\ClassLoader;
  
  class ClassLoaderTest extends \Doctrine\Tests\DoctrineTestCase
  {
      public function testClassLoader()
      {
          $classLoader = new ClassLoader('ClassLoaderTest');
          $classLoader->setIncludePath(__DIR__);
          $classLoader->setFileExtension('.class.php');
          $classLoader->setNamespaceSeparator('_');
  
          $this->assertTrue($classLoader->canLoadClass('ClassLoaderTest_ClassA'));
          $this->assertTrue($classLoader->canLoadClass('ClassLoaderTest_ClassB'));
          $this->assertTrue($classLoader->canLoadClass('ClassLoaderTest_ClassC'));
          $this->assertFalse($classLoader->canLoadClass('OtherClass'));
          $this->assertEquals($classLoader->loadClass('ClassLoaderTest_ClassA'), true);
          $this->assertEquals($classLoader->loadClass('ClassLoaderTest_ClassB'), true);
          $this->assertEquals($classLoader->loadClass('ClassLoaderTest_ClassC'), true);
      }
  
      public function testClassExists()
      {
          $this->assertFalse(ClassLoader::classExists('ClassLoaderTest\ClassD'));
          $badLoader = function($className) {
              require __DIR__ . '/ClassLoaderTest/ClassD.php';
              return true;
          };
          spl_autoload_register($badLoader);
          $this->assertTrue(ClassLoader::classExists('ClassLoaderTest\ClassD'));
          spl_autoload_unregister($badLoader);
      }
  
      public function testGetClassLoader()
      {
          $cl = new ClassLoader('ClassLoaderTest', __DIR__);
          $cl->register();
          $this->assertTrue(ClassLoader::getClassLoader('ClassLoaderTest\ClassD') instanceof \Doctrine\Common\ClassLoader);
          $this->assertNull(ClassLoader::getClassLoader('This\Class\Does\Not\Exist'));
          $cl->unregister();
      }
  }