class Groups
Same name in this branch
- 11.1.x vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Groups.php \PHPUnit\TextUI\XmlConfiguration\Groups
- 11.1.x vendor/symfony/serializer/Attribute/Groups.php \Symfony\Component\Serializer\Attribute\Groups
@no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
@internal This class is not covered by the backward compatibility promise for PHPUnit
Hierarchy
- class \PHPUnit\Metadata\Api\Groups
Expanded class hierarchy of Groups
5 files declare their use of Groups
- DataProviderTestSuite.php in vendor/
phpunit/ phpunit/ src/ Framework/ DataProviderTestSuite.php - PassedTests.php in vendor/
phpunit/ phpunit/ src/ Runner/ TestResult/ PassedTests.php - TestBuilder.php in vendor/
phpunit/ phpunit/ src/ Framework/ TestBuilder.php - TestCase.php in vendor/
phpunit/ phpunit/ src/ Framework/ TestCase.php - TestSuite.php in vendor/
phpunit/ phpunit/ src/ Framework/ TestSuite.php
15 string references to 'Groups'
- AttributeMetadata::__sleep in vendor/
symfony/ serializer/ Mapping/ AttributeMetadata.php - Returns the names of the properties that should be serialized.
- Cascade::__construct in vendor/
symfony/ validator/ Constraints/ Cascade.php - Constraint::addImplicitGroupName in vendor/
symfony/ validator/ Constraint.php - Adds the given group if this constraint is in the Default group.
- Constraint::__get in vendor/
symfony/ validator/ Constraint.php - Returns the value of a lazily initialized option.
- Constraint::__isset in vendor/
symfony/ validator/ Constraint.php
File
-
vendor/
phpunit/ phpunit/ src/ Metadata/ Api/ Groups.php, line 33
Namespace
PHPUnit\Metadata\ApiView source
final class Groups {
/**
* @var array<string, array<int, string>>
*/
private static array $groupCache = [];
/**
* @psalm-param class-string $className
* @psalm-param non-empty-string $methodName
*
* @psalm-return array<int, string>
*/
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);
}
/**
* @psalm-param class-string $className
* @psalm-param non-empty-string $methodName
*/
public function size(string $className, string $methodName) : TestSize {
$groups = array_flip($this->groups($className, $methodName));
if (isset($groups['large'])) {
return TestSize::large();
}
if (isset($groups['medium'])) {
return TestSize::medium();
}
if (isset($groups['small'])) {
return TestSize::small();
}
return TestSize::unknown();
}
private function canonicalizeName(string $name) : string {
return strtolower(trim($name, '\\'));
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
Groups::$groupCache | private static | property | |
Groups::canonicalizeName | private | function | |
Groups::groups | public | function | @psalm-param class-string $className @psalm-param non-empty-string $methodName |
Groups::size | public | function | @psalm-param class-string $className @psalm-param non-empty-string $methodName |