/** * @dataProvider provider */ public function testBasicGeneration($targetName, $classes, $load = array()) { $target = __DIR__ . '/fixtures/' . $targetName . '.php'; $relative = strpos($target, 'relative') > 0; if ($relative) { $target = __DIR__ . '/fixtures/tmp/' . $targetName . '.php'; } if (is_file($target)) { unlink($target); } $this->assertFalse(is_file($target)); $generator = new Autoloader\Generator(__DIR__ . '/fixtures/' . $targetName); $generator->enableStats($targetName . 'stat'); $generator->includeFiles(array(__FILE__)); $generator->setStepCallback(function ($callback) { }); $generator->relativePaths($relative); $generator->generate($target); foreach ($classes as $class) { $class = $class[0] == '\\' ? $class : '\\autoloader\\test\\' . $class; $this->assertFalse(class_exists($class, false)); } require $target; foreach ($load as $file) { require __DIR__ . '/fixtures/' . $targetName . '/' . $file; } foreach ($classes as $class) { $class = $class[0] == '\\' ? $class : '\\autoloader\\test\\' . $class; $this->assertTrue(class_exists($class)); } }