Пример #1
0
 /**
  * Deletes all temporary files
  *
  * @return void
  */
 public function tearDown()
 {
     AutoloaderTestHelper::deleteDirectory('.');
     AutoloaderTestHelper::deleteDirectory(TestIndex::getIndexDirectory(), false);
 }
Пример #2
0
 /**
  * Provides test cases for testBuildIndex()
  *
  * A test case is a Autoloader for a certain class path and a list of all
  * class definitions in that class path.
  *
  * @see testBuildIndex()
  * @return Array
  */
 public function provideTestBuildIndex()
 {
     $cases = array();
     $testHelper = new AutoloaderTestHelper($this);
     $testHelper->deleteDirectory('testBuildIndex/');
     $classes = array($testHelper->makeClass('Test', 'testBuildIndex/'), $testHelper->makeClass('Test', 'testBuildIndex/'), $testHelper->makeClass('Test', 'testBuildIndex/A'), $testHelper->makeClass('Test', 'testBuildIndex/A'), $testHelper->makeClass('Test', 'testBuildIndex/A'), $testHelper->makeClass('Test', 'testBuildIndex/A/B'), $testHelper->makeClass('Test', 'testBuildIndex/A/B'), $testHelper->makeClass('Test', 'testBuildIndex/A/C'), $testHelper->makeClass('Test', 'testBuildIndex/A/C'), $testHelper->makeClass('Test', 'testBuildIndex/D'), $testHelper->makeClass('Test', 'testBuildIndex/D/E'));
     $cases[] = array(new Autoloader($testHelper->getClassDirectory('testBuildIndex')), $this->_getPaths($classes, $testHelper));
     $testHelper->deleteDirectory('testBuildIndex2/');
     $classes = array($testHelper->makeClass('Test', 'testBuildIndex2/'));
     $cases[] = array(new Autoloader($testHelper->getClassDirectory('testBuildIndex2')), $this->_getPaths($classes, $testHelper));
     $testHelper->deleteDirectory('testBuildIndex3/');
     $classes = array($testHelper->makeClass('Test', 'testBuildIndex3/'), $testHelper->makeClass('Test', 'testBuildIndex3/'));
     $cases[] = array(new Autoloader($testHelper->getClassDirectory('testBuildIndex3')), $this->_getPaths($classes, $testHelper));
     $testHelper->deleteDirectory('testBuildIndex4/');
     $classes = array($testHelper->makeClass('Test', 'testBuildIndex4/A/B'), $testHelper->makeClass('Test', 'testBuildIndex4/B/C'));
     $cases[] = array(new Autoloader($testHelper->getClassDirectory('testBuildIndex4')), $this->_getPaths($classes, $testHelper));
     return $cases;
 }
Пример #3
0
 /**
  * Provides testLoadsOfFiles() with test cases
  *
  * A test case is an instance of AutoloaderFileIterator and a class path.
  * The class path should contain a large amount of files.
  *
  * @see testLoadsOfFiles()
  * @return Array
  */
 public function provideTestLoadsOfFiles()
 {
     AutoloaderTestHelper::deleteDirectory("testLoadsOfFiles");
     $alTestHelper = new AutoloaderTestHelper($this);
     for ($i = 0; $i < 150; $i++) {
         $alTestHelper->makeClass("anyClass", "testLoadsOfFiles/flat");
     }
     for ($i = 0; $i < 150; $i++) {
         $alTestHelper->makeClass("anyClass", "testLoadsOfFiles" . str_repeat('/sub', $i));
     }
     return array(array(new AutoloaderFileIterator_PriorityList(), "testLoadsOfFiles/flat"), array(new AutoloaderFileIterator_Simple(), "testLoadsOfFiles/flat"), array(new AutoloaderFileIterator_SimpleCached(), "testLoadsOfFiles/flat"), array(new AutoloaderFileIterator_PriorityList(), "testLoadsOfFiles/sub"), array(new AutoloaderFileIterator_Simple(), "testLoadsOfFiles/sub"), array(new AutoloaderFileIterator_SimpleCached(), "testLoadsOfFiles/sub"));
 }
Пример #4
0
 /**
  * buildIndex() won't fail if a class is defined multiple times in the same
  * file.
  * 
  * Some popular frameworks do use that pattern to define a class conditional
  * in the same file.
  * 
  * @test
  * @see Autoloader::buildIndex()
  * @link https://github.com/malkusch/php-autoloader/pull/6
  */
 public function testBuildIndexSupportsSameClassInSameFile()
 {
     $directory = "testBuildIndexSupportsSameClassInSameFile";
     $testHelper = new AutoloaderTestHelper($this);
     $definition = "<?php if (true) { class %name%{} } else { class %name%{} } ?>";
     $testHelper->deleteDirectory("{$directory}/");
     $class = $testHelper->makeClass('Test', "{$directory}/", $definition);
     $autoloader = new Autoloader($testHelper->getClassDirectory($directory));
     $autoloader->buildIndex();
     $foundPaths = $autoloader->getIndex()->getPaths();
     $this->assertEquals($this->_getPaths([$class], $testHelper), $foundPaths);
 }