/** * Provides test cases for testSkipPatterns() * * A test case is an instance of AutoloaderFileIterator, a list of files and * a search path. The AutoloaderFileIterator object is configured with a skip * pattern. The search path should contain files which would match these * patterns. The list of files are these files which would match the skip * pattern and are not expected to be found by the AutoloaderFileIterator. * * @see testSkipPatterns() * @return Array */ public function provideTestSkipPatterns() { AutoloaderTestHelper::deleteDirectory("testSkipPatterns"); $alTestHelper = new AutoloaderTestHelper($this); $cases = array(); $onlyIgnoredfiles = array($alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("A", "testSkipPatterns/onlyIgnored/.CVS")), $alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("B", "testSkipPatterns/onlyIgnored/.svn")), $alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("C", "testSkipPatterns/onlyIgnored/.svn/C")), $alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("D", "testSkipPatterns/onlyIgnored/myPattern1")), $alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("myPattern2", "testSkipPatterns/onlyIgnored/"))); $mixedfiles = array($alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("A", "testSkipPatterns/mixed/.CVS")), $alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("B", "testSkipPatterns/mixed/.svn")), $alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("C", "testSkipPatterns/mixed/.svn/C")), $alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("D", "testSkipPatterns/mixed/myPattern1")), $alTestHelper->getGeneratedClassPath($alTestHelper->makeClass("myPattern2", "testSkipPatterns/mixed/"))); $alTestHelper->makeClass("E", "testSkipPatterns/mixed/"); $alTestHelper->makeClass("F", "testSkipPatterns/mixed/F"); $simpleIterator = new AutoloaderFileIterator_Simple(); $simpleIterator->addSkipPattern('~myPattern1~'); $simpleIterator->addSkipPattern('~myPattern2~'); $simpleCachedIterator = new AutoloaderFileIterator_SimpleCached(); $simpleCachedIterator->addSkipPattern('~myPattern1~'); $simpleCachedIterator->addSkipPattern('~myPattern2~'); $priorityIterator = new AutoloaderFileIterator_PriorityList(); $priorityIterator->addSkipPattern('~myPattern1~'); $priorityIterator->addSkipPattern('~myPattern2~'); $cases[] = array($simpleIterator, $onlyIgnoredfiles, AutoloaderTestHelper::getClassDirectory("testSkipPatterns/onlyIgnored")); $cases[] = array($simpleIterator, $mixedfiles, AutoloaderTestHelper::getClassDirectory("testSkipPatterns/mixed")); $cases[] = array($simpleCachedIterator, $onlyIgnoredfiles, AutoloaderTestHelper::getClassDirectory("testSkipPatterns/onlyIgnored")); $cases[] = array($simpleCachedIterator, $mixedfiles, AutoloaderTestHelper::getClassDirectory("testSkipPatterns/mixed")); $cases[] = array($priorityIterator, $onlyIgnoredfiles, AutoloaderTestHelper::getClassDirectory("testSkipPatterns/onlyIgnored")); $cases[] = array($priorityIterator, $mixedfiles, AutoloaderTestHelper::getClassDirectory("testSkipPatterns/mixed")); return $cases; }
/** * Returns a list of paths for the list of classes * * @param array $testClasses A list of classes * @param AutoloaderTestHelper $testHelper A helper which generated the classes * * @see provideTestBuildIndex() * @return Array */ private function _getPaths(array $testClasses, AutoloaderTestHelper $testHelper) { $paths = array(); foreach ($testClasses as $class) { $normalizedClass = $class; AbstractAutoloader::normalizeClass($normalizedClass); $paths[$normalizedClass] = realpath($testHelper->getGeneratedClassPath($class)); } return $paths; }
/** * Returns test cases for testAutoload() * * A test case is class name and a path to the definition of this * class name. * * @see testAutoload() * @return array */ public function provideTestAutoload() { $autoloaderTestHelper = new AutoloaderTestHelper($this); $return = array(); $class = $autoloaderTestHelper->makeClass("ClassA", 'testInternal'); $return[] = array($class, $autoloaderTestHelper->getGeneratedClassPath($class)); $class = $autoloaderTestHelper->makeClass("ClassA2", 'testInternal'); $return[] = array($class, $autoloaderTestHelper->getGeneratedClassPath($class)); $class = $autoloaderTestHelper->makeClass("ClassB", 'testInternal/sub'); $return[] = array($class, $autoloaderTestHelper->getGeneratedClassPath($class)); return $return; }
/** * Returns a list of paths for the list of classes * * @param array $testClasses A list of classes * @param AutoloaderTestHelper $testHelper A helper which generated the classes * * @see provideTestBuildIndex() * @return Array */ private function _getPaths(array $testClasses, AutoloaderTestHelper $testHelper) { $paths = array(); foreach ($testClasses as $class) { $paths[$class] = realpath($testHelper->getGeneratedClassPath($class)); } return $paths; }