protected function setUp() { $cacheDir = './tests/UglyDiTest/cache'; $this->generator = new Generator($cacheDir, new Slugifier()); $this->di = new UglyDi($this->generator); $this->di->setAlwaysGenerate(true); }
public function testGenerationForClassWithLotsOfDependencies() { /** * BAD COPY AND PASTE JOB, MAKE BETTER * */ $className = Adapter::class; $userParameters = ['driver' => ['driver' => 'Mysqli', 'database' => 'zend_db_example', 'username' => 'developer', 'password' => 'developer-password'], 'queryResultPrototype' => ResultSet::class]; $cacheDir = './tests/UglyDiTest/cache'; $generator = new Generator($cacheDir, new Slugifier()); $uglyDi = new UglyDi($generator); $reflector = $uglyDi->getReflector($className); $arguments = $reflector->getConstructor()->getParameters(); $result = $generator->generateFactory($className, $arguments, $userParameters); $this->assertTrue($result); $function = (require $generator->getFileName($className, $userParameters)); $class = call_user_func($function, new UglyDi($generator), $className, $arguments); $this->assertInstanceOf($className, $class); $className = TableGateway::class; $userParameters = ['table' => 'table']; $reflector = $uglyDi->getReflector($className); $arguments = $reflector->getConstructor()->getParameters(); }