PHPUnit2
[ class tree: PHPUnit2 ] [ index: PHPUnit2 ] [ all elements ]

Source for file TestResult.php

Documentation is available at TestResult.php

  1. <?php
  2. //
  3. // +------------------------------------------------------------------------+
  4. // | PEAR :: PHPUnit2                                                       |
  5. // +------------------------------------------------------------------------+
  6. // | Copyright (c) 2002-2004 Sebastian Bergmann <sb@sebastian-bergmann.de>. |
  7. // +------------------------------------------------------------------------+
  8. // | This source file is subject to version 3.00 of the PHP License,        |
  9. // | that is available at http://www.php.net/license/3_0.txt.               |
  10. // | If you did not receive a copy of the PHP license and are unable to     |
  11. // | obtain it through the world-wide-web, please send a note to            |
  12. // | license@php.net so we can mail you a copy immediately.                 |
  13. // +------------------------------------------------------------------------+
  14. //
  15. // $Id: TestResult.php,v 1.5.2.1 2004/08/24 07:59:53 sebastian Exp $
  16. //
  17.  
  18. require_once 'PHPUnit2/Framework/AssertionFailedError.php';
  19. require_once 'PHPUnit2/Framework/IncompleteTest.php';
  20. require_once 'PHPUnit2/Framework/Test.php';
  21. require_once 'PHPUnit2/Framework/TestFailure.php';
  22. require_once 'PHPUnit2/Framework/TestListener.php';
  23.  
  24. /**
  25.  * A TestResult collects the results of executing a test case.
  26.  *
  27.  * @author      Sebastian Bergmann <sb@sebastian-bergmann.de>
  28.  * @copyright   Copyright &copy; 2002-2004 Sebastian Bergmann <sb@sebastian-bergmann.de>
  29.  * @license     http://www.php.net/license/3_0.txt The PHP License, Version 3.0
  30.  * @category    PHP
  31.  * @package     PHPUnit2
  32.  * @subpackage  Framework
  33.  */
  34.     // {{{ Members
  35.  
  36.     /**
  37.     * @var    array 
  38.     * @access protected
  39.     */
  40.     protected $errors = array();
  41.  
  42.     /**
  43.     * @var    array 
  44.     * @access protected
  45.     */
  46.     protected $failures = array();
  47.  
  48.     /**
  49.     * @var    array 
  50.     * @access protected
  51.     */
  52.     protected $notImplemented = array();
  53.  
  54.     /**
  55.     * @var    array 
  56.     * @access protected
  57.     */
  58.     protected $listeners = array();
  59.  
  60.     /**
  61.     * @var    integer 
  62.     * @access protected
  63.     */
  64.     protected $runTests = 0;
  65.  
  66.     /**
  67.     * @var    boolean 
  68.     * @access private
  69.     */
  70.     private $stop = false;
  71.  
  72.     // }}}
  73.     // {{{ public function addError(PHPUnit2_Framework_Test $test, Exception $e)
  74.  
  75.     /**
  76.     * Adds an error to the list of errors.
  77.     * The passed in exception caused the error.
  78.     *
  79.     * @param  PHPUnit2_Framework_Test $test 
  80.     * @param  Exception               $e 
  81.     * @access public
  82.     */
  83.     public function addError(PHPUnit2_Framework_Test $testException $e{
  84.         if ($e instanceof PHPUnit2_Framework_IncompleteTest{
  85.             $this->notImplemented[= new PHPUnit2_Framework_TestFailure($test$e);
  86.  
  87.             foreach ($this->listeners as $listener{
  88.                 $listener->addIncompleteTest($test$e);
  89.             }
  90.         else {
  91.             $this->errors[= new PHPUnit2_Framework_TestFailure($test$e);
  92.  
  93.             foreach ($this->listeners as $listener{
  94.                 $listener->addError($test$e);
  95.             }
  96.         }
  97.     }
  98.  
  99.     // }}}
  100.     // {{{ public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e)
  101.  
  102.     /**
  103.     * Adds a failure to the list of failures.
  104.     * The passed in exception caused the failure.
  105.     *
  106.     * @param  PHPUnit2_Framework_Test                  $test 
  107.     * @param  PHPUnit2_Framework_AssertionFailedError  $e 
  108.     * @access public
  109.     */
  110.     public function addFailure(PHPUnit2_Framework_Test $testPHPUnit2_Framework_AssertionFailedError $e{
  111.         if ($e instanceof PHPUnit2_Framework_IncompleteTest{
  112.             $this->notImplemented[= new PHPUnit2_Framework_TestFailure($test$e);
  113.  
  114.             foreach ($this->listeners as $listener{
  115.                 $listener->addIncompleteTest($test$e);
  116.             }
  117.         else {
  118.             $this->failures[= new PHPUnit2_Framework_TestFailure($test$e);
  119.  
  120.             foreach ($this->listeners as $listener{
  121.                 $listener->addFailure($test$e);
  122.             }
  123.         }
  124.     }
  125.  
  126.     // }}}
  127.     // {{{ public function addListener(PHPUnit2_Framework_TestListener $listener)
  128.  
  129.     /**
  130.     * Registers a TestListener.
  131.     *
  132.     * @param  PHPUnit2_Framework_TestListener 
  133.     * @access public
  134.     */
  135.     public function addListener(PHPUnit2_Framework_TestListener $listener{
  136.         $this->listeners[$listener;
  137.     }
  138.  
  139.     // }}}
  140.     // {{{ public function endTest(PHPUnit2_Framework_Test $test)
  141.  
  142.     /**
  143.     * Informs the result that a test was completed.
  144.     *
  145.     * @param  PHPUnit2_Framework_Test 
  146.     * @access public
  147.     */
  148.     public function endTest(PHPUnit2_Framework_Test $test{
  149.         foreach ($this->listeners as $listener{
  150.             $listener->endTest($test);
  151.         }
  152.     }
  153.  
  154.     // }}}
  155.     // {{{ public function allCompletlyImplemented()
  156.  
  157.     /**
  158.     * Returns true if no incomplete test occured.
  159.     *
  160.     * @return boolean 
  161.     * @access public
  162.     */
  163.     public function allCompletlyImplemented({
  164.         return $this->notImplementedCount(== 0;
  165.     }
  166.  
  167.     // }}}
  168.     // {{{ public function notImplementedCount()
  169.  
  170.     /**
  171.     * Gets the number of incomplete tests.
  172.     *
  173.     * @return integer 
  174.     * @access public
  175.     */
  176.     public function notImplementedCount({
  177.         return sizeof($this->notImplemented);
  178.     }
  179.  
  180.     // }}}
  181.     // {{{ public function notImplemented)
  182.  
  183.     /**
  184.     * Returns an Enumeration for the incomplete tests.
  185.     *
  186.     * @return array 
  187.     * @access public
  188.     */
  189.     public function notImplemented({
  190.         return $this->notImplemented;
  191.     }
  192.  
  193.     // }}}
  194.     // {{{ public function errorCount()
  195.  
  196.     /**
  197.     * Gets the number of detected errors.
  198.     *
  199.     * @return integer 
  200.     * @access public
  201.     */
  202.     public function errorCount({
  203.         return sizeof($this->errors);
  204.     }
  205.  
  206.     // }}}
  207.     // {{{ public function errors()
  208.  
  209.     /**
  210.     * Returns an Enumeration for the errors.
  211.     *
  212.     * @return array 
  213.     * @access public
  214.     */
  215.     public function errors({
  216.         return $this->errors;
  217.     }
  218.  
  219.     // }}}
  220.     // {{{ public function failureCount()
  221.  
  222.     /**
  223.     * Gets the number of detected failures.
  224.     *
  225.     * @return integer 
  226.     * @access public
  227.     */
  228.     public function failureCount({
  229.         return sizeof($this->failures);
  230.     }
  231.  
  232.     // }}}
  233.     // {{{ public function failures()
  234.  
  235.     /**
  236.     * Returns an Enumeration for the failures.
  237.     *
  238.     * @return array 
  239.     * @access public
  240.     */
  241.     public function failures({
  242.         return $this->failures;
  243.     }
  244.  
  245.     // }}}
  246.     // {{{ public function removeListener(PHPUnit2_Framework_TestListener $listener)
  247.  
  248.     /**
  249.     * Unregisters a TestListener.
  250.     *
  251.     * @param  PHPUnit2_Framework_TestListener $listener 
  252.     * @access public
  253.     */
  254.     public function removeListener(PHPUnit2_Framework_TestListener $listener{
  255.         for ($i = 0; $i sizeof($this->listeners)$i++{
  256.             if ($this->listeners[$i=== $listener{
  257.                 unset($this->listeners[$i]);
  258.             }
  259.         }
  260.     }
  261.  
  262.     // }}}
  263.     // {{{ public function run(PHPUnit2_Framework_Test $test)
  264.  
  265.     /**
  266.     * Runs a TestCase.
  267.     *
  268.     * @param  PHPUnit2_Framework_Test $test 
  269.     * @access public
  270.     */
  271.     public function run(PHPUnit2_Framework_Test $test{
  272.         $this->startTest($test);
  273.  
  274.         try {
  275.             $test->runBare();
  276.         }
  277.  
  278.         catch (PHPUnit2_Framework_AssertionFailedError $e{
  279.             $this->addFailure($test$e);
  280.         }
  281.  
  282.         catch (Exception $e{
  283.             $this->addError($test$e);
  284.         }
  285.  
  286.         $this->endTest($test);
  287.     }
  288.  
  289.     // }}}
  290.     // {{{ public function runCount()
  291.  
  292.     /**
  293.     * Gets the number of run tests.
  294.     *
  295.     * @return integer 
  296.     * @access public
  297.     */
  298.     public function runCount({
  299.         return $this->runTests;
  300.     }
  301.  
  302.     // }}}
  303.     // {{{ public function shouldStop()
  304.  
  305.     /**
  306.     * Checks whether the test run should stop.
  307.     *
  308.     * @access public
  309.     */
  310.     public function shouldStop({
  311.         return $this->stop;
  312.     }
  313.  
  314.     // }}}
  315.     // {{{ public function startTest(PHPUnit2_Framework_Test $test)
  316.  
  317.     /**
  318.     * Informs the result that a test will be started.
  319.     *
  320.     * @param  PHPUnit2_Framework_Test $test 
  321.     * @access public
  322.     */
  323.     public function startTest(PHPUnit2_Framework_Test $test{
  324.         $this->runTests += $test->countTestCases();
  325.  
  326.         foreach ($this->listeners as $listener{
  327.             $listener->startTest($test);
  328.         }
  329.     }
  330.  
  331.     // }}}
  332.     // {{{ public function stop()
  333.  
  334.     /**
  335.     * Marks that the test run should stop.
  336.     *
  337.     * @access public
  338.     */
  339.     public function stop({
  340.         $this->stop = true;
  341.     }
  342.  
  343.     // }}}
  344.     // {{{ public function wasSuccessful()
  345.  
  346.     /**
  347.     * Returns whether the entire test was successful or not.
  348.     *
  349.     * @return boolean 
  350.     * @access public
  351.     */
  352.     public function wasSuccessful({
  353.         if (empty($this->errors&& empty($this->failures)) {
  354.             return true;
  355.         else {
  356.             return false;
  357.         }
  358.     }
  359.  
  360.     // }}}
  361. }
  362.  
  363. /*
  364.  * vim600:  et sw=2 ts=2 fdm=marker
  365.  * vim<600: et sw=2 ts=2
  366.  */
  367. ?>

Documentation generated on Mon, 11 Mar 2019 13:55:58 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.