/** * Asserts that the AutoloaderFileIterator is still working in a huge * environment * * @param AutoloaderFileIterator $iterator The tested AutoloaderFileIterator * @param String $path The searched class path * * @dataProvider provideTestLoadsOfFiles * @return void */ public function testLoadsOfFiles(AutoloaderFileIterator $iterator, $path) { $iterator->setAutoloader(new Autoloader(AutoloaderTestHelper::getClassDirectory($path))); foreach ($iterator as $file) { // Do nothing but iterate through the class path. } }
/** * Asserts that including the file Autoloader.php will register each time an * instance of Autoloader with the correct class path * * @see Autoloader.php * @return void */ public function testSeveralRequiredAutoloaders() { $autoloaders = Autoloader::getRegisteredAutoloaders(); Autoloader::removeAll(); $autoloaderPath = __DIR__ . "/../autoloader.php"; $classA = $this->_autoloaderTestHelper->makeClass("A", "a"); $classA2 = $this->_autoloaderTestHelper->makeClass("A2", "a"); $requireA = $this->_autoloaderTestHelper->makeClass("requireA", "a", "<?php require '{$autoloaderPath}' ?>"); $classB = $this->_autoloaderTestHelper->makeClass("B", "b"); $requireB = $this->_autoloaderTestHelper->makeClass("requireB", "b", "<?php require '{$autoloaderPath}' ?>"); $this->_autoloaderTestHelper->assertNotLoadable($classA); $this->_autoloaderTestHelper->assertNotLoadable($classA2); include AutoloaderTestHelper::getClassDirectory() . DIRECTORY_SEPARATOR . "a" . DIRECTORY_SEPARATOR . "{$requireA}.test.php"; $this->_autoloaderTestHelper->assertLoadable($classA); $this->_autoloaderTestHelper->assertNotLoadable($classB); include AutoloaderTestHelper::getClassDirectory() . DIRECTORY_SEPARATOR . "b" . DIRECTORY_SEPARATOR . "{$requireB}.test.php"; $this->_autoloaderTestHelper->assertLoadable($classA); $this->_autoloaderTestHelper->assertLoadable($classA2); $this->_autoloaderTestHelper->assertLoadable($classB); Autoloader::removeAll(); foreach ($autoloaders as $autoloader) { $autoloader->register(); } }