function TestCase::handleDependencies
1 call to TestCase::handleDependencies()
- TestCase::run in vendor/
phpunit/ phpunit/ src/ Framework/ TestCase.php - @internal This method is not covered by the backward compatibility promise for PHPUnit
File
-
vendor/
phpunit/ phpunit/ src/ Framework/ TestCase.php, line 1601
Class
- TestCase
- @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
Namespace
PHPUnit\FrameworkCode
private function handleDependencies() : bool {
if ([] === $this->dependencies || $this->inIsolation) {
return true;
}
$passedTests = PassedTests::instance();
foreach ($this->dependencies as $dependency) {
if (!$dependency->isValid()) {
$this->markErrorForInvalidDependency();
return false;
}
if ($dependency->targetIsClass()) {
$dependencyClassName = $dependency->getTargetClassName();
if (!class_exists($dependencyClassName)) {
$this->markErrorForInvalidDependency($dependency);
return false;
}
if (!$passedTests->hasTestClassPassed($dependencyClassName)) {
$this->markSkippedForMissingDependency($dependency);
return false;
}
continue;
}
$dependencyTarget = $dependency->getTarget();
if (!$passedTests->hasTestMethodPassed($dependencyTarget)) {
if (!$this->isCallableTestMethod($dependencyTarget)) {
$this->markErrorForInvalidDependency($dependency);
}
else {
$this->markSkippedForMissingDependency($dependency);
}
return false;
}
if ($passedTests->isGreaterThan($dependencyTarget, $this->size())) {
Event\Facade::emitter()->testConsideredRisky($this->valueObjectForEvents(), 'This test depends on a test that is larger than itself');
return false;
}
$returnValue = $passedTests->returnValue($dependencyTarget);
if ($dependency->deepClone()) {
$deepCopy = new DeepCopy();
$deepCopy->skipUncloneable(false);
$this->dependencyInput[$dependencyTarget] = $deepCopy->copy($returnValue);
}
elseif ($dependency->shallowClone()) {
$this->dependencyInput[$dependencyTarget] = clone $returnValue;
}
else {
$this->dependencyInput[$dependencyTarget] = $returnValue;
}
}
$this->testValueObjectForEvents = null;
return true;
}