protected function PHPUnit_Framework_TestCase::handleDependencies

@since Method available since Release 3.5.4

1 call to PHPUnit_Framework_TestCase::handleDependencies()
PHPUnit_Framework_TestCase::run in drupal/core/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php
Runs the test case and collects the results in a TestResult object. If no TestResult object is passed a new one will be created.

File

drupal/core/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php, line 1748

Class

PHPUnit_Framework_TestCase
A TestCase defines the fixture to run multiple tests.

Code

protected function handleDependencies() {
  if (!empty($this->dependencies) && !$this->inIsolation) {
    $className = get_class($this);
    $passed = $this->result
      ->passed();
    $passedKeys = array_keys($passed);
    $numKeys = count($passedKeys);
    for ($i = 0; $i < $numKeys; $i++) {
      $pos = strpos($passedKeys[$i], ' with data set');
      if ($pos !== FALSE) {
        $passedKeys[$i] = substr($passedKeys[$i], 0, $pos);
      }
    }
    $passedKeys = array_flip(array_unique($passedKeys));
    foreach ($this->dependencies as $dependency) {
      if (strpos($dependency, '::') === FALSE) {
        $dependency = $className . '::' . $dependency;
      }
      if (!isset($passedKeys[$dependency])) {
        $this->result
          ->addError($this, new PHPUnit_Framework_SkippedTestError(sprintf('This test depends on "%s" to pass.', $dependency)), 0);
        return FALSE;
      }
      if (isset($passed[$dependency])) {
        if ($passed[$dependency]['size'] > $this
          ->getSize()) {
          $this->result
            ->addError($this, new PHPUnit_Framework_SkippedTestError('This test depends on a test that is larger than itself.'), 0);
          return FALSE;
        }
        $this->dependencyInput[] = $passed[$dependency]['result'];
      }
      else {
        $this->dependencyInput[] = NULL;
      }
    }
  }
  return TRUE;
}