function Groups::groups
@psalm-param class-string $className @psalm-param non-empty-string $methodName
@psalm-return array<int, string>
1 call to Groups::groups()
- Groups::size in vendor/
phpunit/ phpunit/ src/ Metadata/ Api/ Groups.php - @psalm-param class-string $className @psalm-param non-empty-string $methodName
File
-
vendor/
phpunit/ phpunit/ src/ Metadata/ Api/ Groups.php, line 46
Class
- Groups
- @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
Namespace
PHPUnit\Metadata\ApiCode
public function groups(string $className, string $methodName, bool $includeVirtual = true) : array {
$key = $className . '::' . $methodName . '::' . $includeVirtual;
if (array_key_exists($key, self::$groupCache)) {
return self::$groupCache[$key];
}
$groups = [];
foreach (Registry::parser()->forClassAndMethod($className, $methodName)
->isGroup() as $group) {
assert($group instanceof Group);
$groups[] = $group->groupName();
}
if ($groups === []) {
$groups[] = 'default';
}
if (!$includeVirtual) {
return self::$groupCache[$key] = array_unique($groups);
}
foreach (Registry::parser()->forClassAndMethod($className, $methodName) as $metadata) {
if ($metadata->isCoversClass() || $metadata->isCoversFunction()) {
assert($metadata instanceof CoversClass || $metadata instanceof CoversFunction);
$groups[] = '__phpunit_covers_' . $this->canonicalizeName($metadata->asStringForCodeUnitMapper());
continue;
}
if ($metadata->isCovers()) {
assert($metadata instanceof Covers);
$groups[] = '__phpunit_covers_' . $this->canonicalizeName($metadata->target());
continue;
}
if ($metadata->isUsesClass() || $metadata->isUsesFunction()) {
assert($metadata instanceof UsesClass || $metadata instanceof UsesFunction);
$groups[] = '__phpunit_uses_' . $this->canonicalizeName($metadata->asStringForCodeUnitMapper());
continue;
}
if ($metadata->isUses()) {
assert($metadata instanceof Uses);
$groups[] = '__phpunit_uses_' . $this->canonicalizeName($metadata->target());
}
}
return self::$groupCache[$key] = array_unique($groups);
}