function AnnotationParser::forClass
@psalm-param class-string $className
Throws
AnnotationsAreNotSupportedForInternalClassesException
InvalidVersionOperatorException
Overrides Parser::forClass
File
-
vendor/
phpunit/ phpunit/ src/ Metadata/ Parser/ AnnotationParser.php, line 52
Class
- AnnotationParser
- @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
Namespace
PHPUnit\Metadata\ParserCode
public function forClass(string $className) : MetadataCollection {
assert(class_exists($className));
$result = [];
foreach (AnnotationRegistry::getInstance()->forClassName($className)
->symbolAnnotations() as $annotation => $values) {
switch ($annotation) {
case 'backupGlobals':
$result[] = Metadata::backupGlobalsOnClass($this->stringToBool($values[0]));
break;
case 'backupStaticAttributes':
case 'backupStaticProperties':
$result[] = Metadata::backupStaticPropertiesOnClass($this->stringToBool($values[0]));
break;
case 'covers':
foreach ($values as $value) {
$value = $this->cleanUpCoversOrUsesTarget($value);
$result[] = Metadata::coversOnClass($value);
}
break;
case 'coversDefaultClass':
foreach ($values as $value) {
$result[] = Metadata::coversDefaultClass($value);
}
break;
case 'coversNothing':
$result[] = Metadata::coversNothingOnClass();
break;
case 'doesNotPerformAssertions':
$result[] = Metadata::doesNotPerformAssertionsOnClass();
break;
case 'group':
case 'ticket':
foreach ($values as $value) {
$result[] = Metadata::groupOnClass($value);
}
break;
case 'large':
$result[] = Metadata::groupOnClass('large');
break;
case 'medium':
$result[] = Metadata::groupOnClass('medium');
break;
case 'preserveGlobalState':
$result[] = Metadata::preserveGlobalStateOnClass($this->stringToBool($values[0]));
break;
case 'runClassInSeparateProcess':
$result[] = Metadata::runClassInSeparateProcess();
break;
case 'runTestsInSeparateProcesses':
$result[] = Metadata::runTestsInSeparateProcesses();
break;
case 'small':
$result[] = Metadata::groupOnClass('small');
break;
case 'testdox':
$result[] = Metadata::testDoxOnClass($values[0]);
break;
case 'uses':
foreach ($values as $value) {
$value = $this->cleanUpCoversOrUsesTarget($value);
$result[] = Metadata::usesOnClass($value);
}
break;
case 'usesDefaultClass':
foreach ($values as $value) {
$result[] = Metadata::usesDefaultClass($value);
}
break;
}
}
try {
$result = array_merge($result, $this->parseRequirements(AnnotationRegistry::getInstance()->forClassName($className)
->requirements(), 'class'));
} catch (InvalidVersionRequirementException $e) {
EventFacade::emitter()->testRunnerTriggeredWarning(sprintf('Class %s is annotated using an invalid version requirement: %s', $className, $e->getMessage()));
}
return MetadataCollection::fromArray($result);
}