[ Index ]
 

Code source de LifeType 1.2.4

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/class/test/PHPUnit/ -> TestResult.php (source)

   1  <?php
   2  /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
   3  
   4  /**
   5   * PHP Version 4
   6   *
   7   * Copyright (c) 2002-2005, Sebastian Bergmann <sb@sebastian-bergmann.de>.
   8   * All rights reserved.
   9   *
  10   * Redistribution and use in source and binary forms, with or without
  11   * modification, are permitted provided that the following conditions
  12   * are met:
  13   *
  14   *   * Redistributions of source code must retain the above copyright
  15   *     notice, this list of conditions and the following disclaimer.
  16   * 
  17   *   * Redistributions in binary form must reproduce the above copyright
  18   *     notice, this list of conditions and the following disclaimer in
  19   *     the documentation and/or other materials provided with the
  20   *     distribution.
  21   *
  22   *   * Neither the name of Sebastian Bergmann nor the names of his
  23   *     contributors may be used to endorse or promote products derived
  24   *     from this software without specific prior written permission.
  25   *
  26   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  27   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  28   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  29   * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  30   * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  31   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  32   * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  33   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  34   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
  35   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  36   * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  37   * POSSIBILITY OF SUCH DAMAGE.
  38   *
  39   * @category   Testing
  40   * @package    PHPUnit
  41   * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
  42   * @copyright  2002-2005 Sebastian Bergmann <sb@sebastian-bergmann.de>
  43   * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License
  44   * @version    CVS: $Id: TestResult.php,v 1.18 2005/11/10 09:47:15 sebastian Exp $
  45   * @link       http://pear.php.net/package/PHPUnit
  46   * @since      File available since Release 1.0.0
  47   */
  48  
  49  lt_include(PHPUNIT_CLASS_PATH.'PHPUnit/TestFailure.php');
  50  lt_include(PHPUNIT_CLASS_PATH.'PHPUnit/TestListener.php');
  51  
  52  if (!function_exists('is_a')) {
  53      lt_include('PHP/Compat/Function/is_a.php');
  54  }
  55  
  56  /**
  57   * A TestResult collects the results of executing a test case.
  58   *
  59   * @category   Testing
  60   * @package    PHPUnit
  61   * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
  62   * @copyright  2002-2005 Sebastian Bergmann <sb@sebastian-bergmann.de>
  63   * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License
  64   * @version    Release: @package_version@
  65   * @link       http://pear.php.net/package/PHPUnit
  66   * @since      Class available since Release 1.0.0
  67   */
  68  class PHPUnit_TestResult {
  69      /**
  70       * @var    array
  71       * @access protected
  72       */
  73      var $_errors = array();
  74  
  75      /**
  76       * @var    array
  77       * @access protected
  78       */
  79      var $_failures = array();
  80  
  81       /**
  82       * @var    array
  83       * @access protected
  84       */
  85      var $_listeners = array();
  86  
  87      /**
  88       * @var    array
  89       * @access protected
  90       */
  91      var $_passedTests = array();
  92  
  93      /**
  94       * @var    integer
  95       * @access protected
  96       */
  97      var $_runTests = 0;
  98  
  99      /**
 100       * @var    boolean
 101       * @access private
 102       */
 103      var $_stop = FALSE;
 104  
 105      /**
 106       * Adds an error to the list of errors.
 107       * The passed in exception caused the error.
 108       *
 109       * @param  object
 110       * @param  object
 111       * @access public
 112       */
 113      function addError(&$test, &$t) {
 114          $this->_errors[] = new PHPUnit_TestFailure($test, $t);
 115  
 116          for ($i = 0; $i < sizeof($this->_listeners); $i++) {
 117              $this->_listeners[$i]->addError($test, $t);
 118          }
 119      }
 120  
 121      /**
 122       * Adds a failure to the list of failures.
 123       * The passed in exception caused the failure.
 124       *
 125       * @param  object
 126       * @param  object
 127       * @access public
 128       */
 129      function addFailure(&$test, &$t) {
 130          $this->_failures[] = new PHPUnit_TestFailure($test, $t);
 131  
 132          for ($i = 0; $i < sizeof($this->_listeners); $i++) {
 133              $this->_listeners[$i]->addFailure($test, $t);
 134          }
 135      }
 136  
 137      /**
 138       * Registers a TestListener.
 139       *
 140       * @param  object
 141       * @access public
 142       */
 143      function addListener(&$listener) {
 144          if (is_object($listener) &&
 145              is_a($listener, 'PHPUnit_TestListener')) {
 146              $this->_listeners[] = &$listener;
 147          }
 148      }
 149  
 150      /**
 151       * Adds a passed test to the list of passed tests.
 152       *
 153       * @param  object
 154       * @access public
 155       */
 156      function addPassedTest(&$test) {
 157          $this->_passedTests[] = &$test;
 158      }
 159  
 160      /**
 161       * Informs the result that a test was completed.
 162       *
 163       * @param  object
 164       * @access public
 165       */
 166      function endTest(&$test) {
 167          for ($i = 0; $i < sizeof($this->_listeners); $i++) {
 168              $this->_listeners[$i]->endTest($test);
 169          }
 170      }
 171  
 172      /**
 173       * Gets the number of detected errors.
 174       *
 175       * @return integer
 176       * @access public
 177       */
 178      function errorCount() {
 179          return sizeof($this->_errors);
 180      }
 181  
 182      /**
 183       * Returns an Enumeration for the errors.
 184       *
 185       * @return array
 186       * @access public
 187       */
 188      function &errors() {
 189          return $this->_errors;
 190      }
 191  
 192      /**
 193       * Gets the number of detected failures.
 194       *
 195       * @return integer
 196       * @access public
 197       */
 198      function failureCount() {
 199          return sizeof($this->_failures);
 200      }
 201  
 202      /**
 203       * Returns an Enumeration for the failures.
 204       *
 205       * @return array
 206       * @access public
 207       */
 208      function &failures() {
 209          return $this->_failures;
 210      }
 211  
 212      /**
 213       * Returns an Enumeration for the passed tests.
 214       *
 215       * @return array
 216       * @access public
 217       */
 218      function &passedTests() {
 219          return $this->_passedTests;
 220      }
 221  
 222      /**
 223       * Unregisters a TestListener.
 224       * This requires the Zend Engine 2 (to work properly).
 225       *
 226       * @param  object
 227       * @access public
 228       */
 229      function removeListener(&$listener) {
 230          for ($i = 0; $i < sizeof($this->_listeners); $i++) {
 231              if ($this->_listeners[$i] === $listener) {
 232                  unset($this->_listeners[$i]);
 233              }
 234          }
 235      }
 236  
 237      /**
 238       * Runs a TestCase.
 239       *
 240       * @param  object
 241       * @access public
 242       */
 243      function run(&$test) {
 244          $this->startTest($test);
 245          $this->_runTests++;
 246          $test->runBare();
 247          $this->endTest($test);
 248      }
 249  
 250      /**
 251       * Gets the number of run tests.
 252       *
 253       * @return integer
 254       * @access public
 255       */
 256      function runCount() {
 257          return $this->_runTests;
 258      }
 259  
 260      /**
 261       * Checks whether the test run should stop.
 262       *
 263       * @access public
 264       */
 265      function shouldStop() {
 266          return $this->_stop;
 267      }
 268  
 269      /**
 270       * Informs the result that a test will be started.
 271       *
 272       * @param  object
 273       * @access public
 274       */
 275      function startTest(&$test) {
 276          for ($i = 0; $i < sizeof($this->_listeners); $i++) {
 277              $this->_listeners[$i]->startTest($test);
 278          }
 279      }
 280  
 281      /**
 282       * Marks that the test run should stop.
 283       *
 284       * @access public
 285       */
 286      function stop() {
 287          $this->_stop = TRUE;
 288      }
 289  
 290      /**
 291       * Returns a HTML representation of the test result.
 292       *
 293       * @return string
 294       * @access public
 295       */
 296      function toHTML() {
 297          return '<pre>' . htmlspecialchars($this->toString()) . '</pre>';
 298      }
 299  
 300      /**
 301       * Returns a text representation of the test result.
 302       *
 303       * @return string
 304       * @access public
 305       */
 306      function toString() {
 307          $result = '';
 308  
 309          foreach ($this->_passedTests as $passedTest) {
 310              $result .= sprintf(
 311                "TestCase %s->%s() passed\n",
 312  
 313                get_class($passedTest),
 314                $passedTest->getName()
 315              );
 316          }
 317  
 318          foreach ($this->_failures as $failedTest) {
 319              $result .= $failedTest->toString();
 320          }
 321  
 322          return $result;
 323      }
 324  
 325      /**
 326       * Returns whether the entire test was successful or not.
 327       *
 328       * @return boolean
 329       * @access public
 330       */
 331      function wasSuccessful() {
 332          if (empty($this->_errors) && empty($this->_failures)) {
 333              return TRUE;
 334          } else {
 335              return FALSE;
 336          }
 337      }
 338  }
 339  
 340  /*
 341   * Local variables:
 342   * tab-width: 4
 343   * c-basic-offset: 4
 344   * c-hanging-comment-ender-p: nil
 345   * End:
 346   */
 347  ?>


Généré le : Mon Nov 26 21:04:15 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics