public static function getTestedClassNameFromTestClass($fullyQualifiedClassName, $testNamespace = null, analyzer $analyzer = null)
{
$analyzer = $analyzer ?: new analyzer();
if ($testNamespace === null) {
$testNamespace = self::getNamespace();
}
if ($analyzer->isRegex($testNamespace) === true) {
if (preg_match($testNamespace, $fullyQualifiedClassName) === 0) {
throw new exceptions\runtime('Test class \'' . $fullyQualifiedClassName . '\' is not in a namespace which match pattern \'' . $testNamespace . '\'');
}
$testedClassName = preg_replace($testNamespace, '\\', $fullyQualifiedClassName);
} else {
$position = strpos($fullyQualifiedClassName, $testNamespace);
if ($position === false) {
throw new exceptions\runtime('Test class \'' . $fullyQualifiedClassName . '\' is not in a namespace which contains \'' . $testNamespace . '\'');
}
$testedClassName = substr($fullyQualifiedClassName, 0, $position) . substr($fullyQualifiedClassName, $position + 1 + strlen($testNamespace));
}
return trim($testedClassName, '\\');
}