<?php class AutoloaderTest extends PHPUnit_Framework_TestCase { /** * Test the Autoloader::map method. * * @group laravel */ public function testMapsCanBeRegistered() { Autoloader::map(array( 'Foo' => APP_PATH.'models/foo.php', )); $this->assertEquals(APP_PATH.'models/foo.php', Autoloader::$mappings['Foo']); } /** * Test the Autoloader::alias method. * * @group laravel */ public function testAliasesCanBeRegistered() { Autoloader::alias('Foo\\Bar', 'Foo'); $this->assertEquals('Foo\\Bar', Autoloader::$aliases['Foo']); } /** * Test the Autoloader::psr method. * * @group laravel */ public function testPsrDirectoriesCanBeRegistered() { Autoloader::psr(array( APP_PATH.'foo'.DS.'bar', APP_PATH.'foo'.DS.'baz'.DS.DS, )); $this->assertTrue(in_array(APP_PATH.'foo'.DS.'bar'.DS, Autoloader::$psr)); $this->assertTrue(in_array(APP_PATH.'foo'.DS.'baz'.DS, Autoloader::$psr)); } /** * Test the Autoloader::namespaces method. * * @group laravel */ public function testNamespacesCanBeRegistered() { Autoloader::namespaces(array( 'Autoloader_1' => BUNDLE_PATH.'autoload'.DS.'models', 'Autoloader_2' => BUNDLE_PATH.'autoload'.DS.'libraries'.DS.DS, )); $this->assertEquals(BUNDLE_PATH.'autoload'.DS.'models'.DS, Autoloader::$namespaces['Autoloader_1']); $this->assertEquals(BUNDLE_PATH.'autoload'.DS.'libraries'.DS, Autoloader::$namespaces['Autoloader_2']); } /** * Test the loading of PSR-0 models and libraries. * * @group laravel */ public function testPsrLibrariesAndModelsCanBeLoaded() { $this->assertInstanceOf('User', new User); $this->assertInstanceOf('Repositories\\User', new Repositories\User); } /** * Test the loading of hard-coded classes. * * @group laravel */ public function testHardcodedClassesCanBeLoaded() { Autoloader::map(array( 'Autoloader_HardCoded' => APP_PATH.'models'.DS.'autoloader.php', )); $this->assertInstanceOf('Autoloader_HardCoded', new Autoloader_HardCoded); } /** * Test the loading of classes mapped by namespaces. * * @group laravel */ public function testClassesMappedByNamespaceCanBeLoaded() { Autoloader::namespaces(array( 'Dashboard' => BUNDLE_PATH.'dashboard'.DS.'models', )); $this->assertInstanceOf('Dashboard\\Repository', new Dashboard\Repository); } }