You are here

TestFailure.php in Zircon Profile 8

Same filename and directory in other branches
  1. 8.0 vendor/phpunit/phpunit/src/Framework/TestFailure.php

File

vendor/phpunit/phpunit/src/Framework/TestFailure.php
View source
<?php

/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * A TestFailure collects a failed test together with the caught exception.
 *
 * @since Class available since Release 2.0.0
 */
class PHPUnit_Framework_TestFailure {

  /**
   * @var string
   */
  private $testName;

  /**
   * @var PHPUnit_Framework_Test|null
   */
  protected $failedTest;

  /**
   * @var Exception
   */
  protected $thrownException;

  /**
   * Constructs a TestFailure with the given test and exception.
   *
   * @param PHPUnit_Framework_Test $failedTest
   * @param Exception              $thrownException
   */
  public function __construct(PHPUnit_Framework_Test $failedTest, Exception $thrownException) {
    if ($failedTest instanceof PHPUnit_Framework_SelfDescribing) {
      $this->testName = $failedTest
        ->toString();
    }
    else {
      $this->testName = get_class($failedTest);
    }
    if (!$failedTest instanceof PHPUnit_Framework_TestCase || !$failedTest
      ->isInIsolation()) {
      $this->failedTest = $failedTest;
    }
    $this->thrownException = $thrownException;
  }

  /**
   * Returns a short description of the failure.
   *
   * @return string
   */
  public function toString() {
    return sprintf('%s: %s', $this->testName, $this->thrownException
      ->getMessage());
  }

  /**
   * Returns a description for the thrown exception.
   *
   * @return string
   * @since  Method available since Release 3.4.0
   */
  public function getExceptionAsString() {
    return self::exceptionToString($this->thrownException);
  }

  /**
   * Returns a description for an exception.
   *
   * @param  Exception $e
   * @return string
   * @since  Method available since Release 3.2.0
   */
  public static function exceptionToString(Exception $e) {
    if ($e instanceof PHPUnit_Framework_SelfDescribing) {
      $buffer = $e
        ->toString();
      if ($e instanceof PHPUnit_Framework_ExpectationFailedException && $e
        ->getComparisonFailure()) {
        $buffer = $buffer . $e
          ->getComparisonFailure()
          ->getDiff();
      }
      if (!empty($buffer)) {
        $buffer = trim($buffer) . "\n";
      }
    }
    elseif ($e instanceof PHPUnit_Framework_Error) {
      $buffer = $e
        ->getMessage() . "\n";
    }
    elseif ($e instanceof PHPUnit_Framework_ExceptionWrapper) {
      $buffer = $e
        ->getClassname() . ': ' . $e
        ->getMessage() . "\n";
    }
    else {
      $buffer = get_class($e) . ': ' . $e
        ->getMessage() . "\n";
    }
    return $buffer;
  }

  /**
   * Returns the name of the failing test (including data set, if any).
   *
   * @return string
   * @since  Method available since Release 4.3.0
   */
  public function getTestName() {
    return $this->testName;
  }

  /**
   * Returns the failing test.
   *
   * Note: The test object is not set when the test is executed in process
   * isolation.
   *
   * @see PHPUnit_Framework_Exception
   *
   * @return PHPUnit_Framework_Test|null
   */
  public function failedTest() {
    return $this->failedTest;
  }

  /**
   * Gets the thrown exception.
   *
   * @return Exception
   */
  public function thrownException() {
    return $this->thrownException;
  }

  /**
   * Returns the exception's message.
   *
   * @return string
   */
  public function exceptionMessage() {
    return $this
      ->thrownException()
      ->getMessage();
  }

  /**
   * Returns true if the thrown exception
   * is of type AssertionFailedError.
   *
   * @return bool
   */
  public function isFailure() {
    return $this
      ->thrownException() instanceof PHPUnit_Framework_AssertionFailedError;
  }

}

Classes

Namesort descending Description
PHPUnit_Framework_TestFailure A TestFailure collects a failed test together with the caught exception.