Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / common / tests / Doctrine / Tests / Common / ClassLoaderTest.php
diff --git a/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest.php b/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest.php
new file mode 100644 (file)
index 0000000..567cf91
--- /dev/null
@@ -0,0 +1,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();
+    }
+}