/** * AbstractGenerator constructor. * * @param string $className * @param string $testDirectoryName * @param string $sourceFile * @param string $targetClassName * @param string $targetSourceFile */ public function __construct($className, $testDirectoryName, $sourceFile = '', $targetClassName = '', $targetSourceFile = '') { $this->testDirectoryName = $testDirectoryName; if (empty($sourceFile)) { $sourceFile = ClassUtils::resolveSourceFile($className); } $sourceFile = realpath($sourceFile); include_once $sourceFile; if (!class_exists($className)) { throw new \RuntimeException(sprintf('Could not find class "%s" in "%s".', $className, $sourceFile)); } if (empty($targetClassName)) { $targetClassName = $this->resolveTargetClassName($className, $sourceFile, $testDirectoryName); } if (empty($targetSourceFile)) { $targetSourceFile = ClassUtils::resolveTargetSourceFile($className, $sourceFile, $targetClassName, $testDirectoryName, $this->isTestCaseClass()); } $this->className = ClassUtils::extractClassNameInfo($className); $this->targetClassName = ClassUtils::extractClassNameInfo($targetClassName); $this->sourceFile = $sourceFile; $this->targetSourceFile = $targetSourceFile; }