/** * @param string $className * @param bool $isStatic * @param string $nameOfTheMethodToPassThrough * If not empty string, it tells this instance to pass calls to * this method to the real object of the class being mocked * and continue to mock other methods. * If it is empty, it tells this instance to mock all methods. * * @return \Box\TestScribe\Mock\MockClass * @throws \DI\NotFoundException */ public function create($className, $isStatic, $nameOfTheMethodToPassThrough) { $phpClassName = new PhpClassName($className); $simpleClassName = $phpClassName->getClassName(); $mockObjectName = $this->mockObjectNameMgr->getMockObjectName($simpleClassName); $phpClass = new PhpClass($phpClassName); $mock = new MockClass($this->mockClassService, $phpClass, $isStatic, $nameOfTheMethodToPassThrough, $mockObjectName); $this->mockMgr->addMock($mock); return $mock; }
/** * @param \Box\TestScribe\Config\Options $options * @param \Box\TestScribe\Config\ConfigParams $inputParams * * @return \Box\TestScribe\Config\ConfigParams */ public function getOutputParams(Options $options, ConfigParams $inputParams) { $inFullClassName = $inputParams->getFullClassName(); $outFullClassName = $inFullClassName . 'GenTest'; $outPhpClassName = new PhpClassName($outFullClassName); $outSimpleClassName = $outPhpClassName->getClassName(); $outSourceFileDir = $options->getOutSourceFileDir(); $outSourceFilePath = $outSourceFileDir . DIRECTORY_SEPARATOR . $outSimpleClassName . '.php'; $overwriteExistingDestinationFile = $options->isOverwriteExistingDestinationFile(); $methodName = $inputParams->getMethodName(); $specPerClass = $this->savedSpecs->loadExistingSpecs($inputParams, $outSourceFileDir); $outTestMethodName = $this->outputTestNameGetter->getTestName($methodName, $overwriteExistingDestinationFile, $specPerClass); $outputParams = new ConfigParams($outSourceFilePath, $outPhpClassName, $outTestMethodName); return $outputParams; }
/** * @param PhpClassName $outPhpClassName * * @return string */ public function renderClassHeader(PhpClassName $outPhpClassName) { $classNamespace = $outPhpClassName->getNameSpace(); if ($classNamespace != '') { $namespaceStatement = "namespace {$classNamespace};"; } else { $namespaceStatement = ''; } $testClassName = $outPhpClassName->getClassName(); $testBaseClassName = $this->globalComputedConfig->getTestBaseClassName(); $headerStatements = <<<TAG <?php {$namespaceStatement} /** * Generated by TestScribe. */ class {$testClassName} extends {$testBaseClassName} TAG; return $headerStatements; }
/** * @param \Box\TestScribe\ClassInfo\PhpClassName $inPhpClassName * @param string $outSourcePath * * @return string */ public static function computeSpecFilePath(PhpClassName $inPhpClassName, $outSourcePath) { $inClassName = $inPhpClassName->getClassName(); $specFilePath = $outSourcePath . DIRECTORY_SEPARATOR . $inClassName . '_ts.yaml'; return $specFilePath; }
/** * (PHP 5 >= 5.4.0)<br/> * Specify data which should be serialized to JSON * @link http://php.net/manual/en/jsonserializable.jsonserialize.php * @return mixed data which can be serialized by <b>json_encode</b>, * which is a value of any type other than a resource. */ function jsonSerialize() { $data = ['file path' => $this->sourceFile, 'class name' => $this->phpClassName->getFullyQualifiedClassName(), 'method name' => $this->methodName]; return $data; }
/** * @return bool */ public function isTheTestRunAgainstTheToolItself() { $fullClassName = $this->inPhpClassName->getFullyQualifiedClassName(); $isTheTestRunAgainstTheToolItself = StringUtil::isStringStartWith($fullClassName, '\\Box\\TestScribe'); return $isTheTestRunAgainstTheToolItself; }