[ Index ]
 

Code source de PRADO 3.0.6

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/tests/test_tools/simpletest/ -> unit_tester.php (source)

   1  <?php
   2      /**
   3       *    base include file for SimpleTest
   4       *    @package    SimpleTest
   5       *    @subpackage    UnitTester
   6       *    @version    $Id: unit_tester.php 1397 2006-09-07 07:55:53Z wei $
   7       */
   8  
   9      /**#@+
  10       *    include other SimpleTest class files
  11       */
  12      require_once(dirname(__FILE__) . '/test_case.php');
  13      require_once(dirname(__FILE__) . '/dumper.php');
  14      /**#@-*/
  15  
  16      /**
  17       *    Standard unit test class for day to day testing
  18       *    of PHP code XP style. Adds some useful standard
  19       *    assertions.
  20       *      @package    SimpleTest
  21       *      @subpackage    UnitTester
  22       */
  23      class UnitTestCase extends SimpleTestCase {
  24  
  25          /**
  26           *    Creates an empty test case. Should be subclassed
  27           *    with test methods for a functional test case.
  28           *    @param string $label     Name of test case. Will use
  29           *                             the class name if none specified.
  30           *    @access public
  31           */
  32          function UnitTestCase($label = false) {
  33              if (! $label) {
  34                  $label = get_class($this);
  35              }
  36              $this->SimpleTestCase($label);
  37          }
  38  
  39          /**
  40           *    Will be true if the value is null.
  41           *    @param null $value       Supposedly null value.
  42           *    @param string $message   Message to display.
  43           *    @return boolean                        True on pass
  44           *    @access public
  45           */
  46          function assertNull($value, $message = "%s") {
  47              $dumper = new SimpleDumper();
  48              $message = sprintf(
  49                      $message,
  50                      "[" . $dumper->describeValue($value) . "] should be null");
  51              return $this->assertTrue(! isset($value), $message);
  52          }
  53  
  54          /**
  55           *    Will be true if the value is set.
  56           *    @param mixed $value           Supposedly set value.
  57           *    @param string $message        Message to display.
  58           *    @return boolean               True on pass.
  59           *    @access public
  60           */
  61          function assertNotNull($value, $message = "%s") {
  62              $dumper = new SimpleDumper();
  63              $message = sprintf(
  64                      $message,
  65                      "[" . $dumper->describeValue($value) . "] should not be null");
  66              return $this->assertTrue(isset($value), $message);
  67          }
  68  
  69          /**
  70           *    Type and class test. Will pass if class
  71           *    matches the type name or is a subclass or
  72           *    if not an object, but the type is correct.
  73           *    @param mixed $object         Object to test.
  74           *    @param string $type          Type name as string.
  75           *    @param string $message       Message to display.
  76           *    @return boolean              True on pass.
  77           *    @access public
  78           */
  79          function assertIsA($object, $type, $message = "%s") {
  80              return $this->assert(
  81                      new IsAExpectation($type),
  82                      $object,
  83                      $message);
  84          }
  85  
  86          /**
  87           *    Type and class mismatch test. Will pass if class
  88           *    name or underling type does not match the one
  89           *    specified.
  90           *    @param mixed $object         Object to test.
  91           *    @param string $type          Type name as string.
  92           *    @param string $message       Message to display.
  93           *    @return boolean              True on pass.
  94           *    @access public
  95           */
  96          function assertNotA($object, $type, $message = "%s") {
  97              return $this->assert(
  98                      new NotAExpectation($type),
  99                      $object,
 100                      $message);
 101          }
 102  
 103          /**
 104           *    Will trigger a pass if the two parameters have
 105           *    the same value only. Otherwise a fail.
 106           *    @param mixed $first          Value to compare.
 107           *    @param mixed $second         Value to compare.
 108           *    @param string $message       Message to display.
 109           *    @return boolean              True on pass
 110           *    @access public
 111           */
 112          function assertEqual($first, $second, $message = "%s") {
 113              return $this->assert(
 114                      new EqualExpectation($first),
 115                      $second,
 116                      $message);
 117          }
 118  
 119          /**
 120           *    Will trigger a pass if the two parameters have
 121           *    a different value. Otherwise a fail.
 122           *    @param mixed $first           Value to compare.
 123           *    @param mixed $second          Value to compare.
 124           *    @param string $message        Message to display.
 125           *    @return boolean               True on pass
 126           *    @access public
 127           */
 128          function assertNotEqual($first, $second, $message = "%s") {
 129              return $this->assert(
 130                      new NotEqualExpectation($first),
 131                      $second,
 132                      $message);
 133          }
 134  
 135          /**
 136           *    Will trigger a pass if the if the first parameter
 137           *    is near enough to the second by the margin.
 138           *    @param mixed $first          Value to compare.
 139           *    @param mixed $second         Value to compare.
 140           *    @param mixed $margin         Fuzziness of match.
 141           *    @param string $message       Message to display.
 142           *    @return boolean              True on pass
 143           *    @access public
 144           */
 145          function assertWithinMargin($first, $second, $margin, $message = "%s") {
 146              return $this->assert(
 147                      new WithinMarginExpectation($first, $margin),
 148                      $second,
 149                      $message);
 150          }
 151  
 152          /**
 153           *    Will trigger a pass if the two parameters differ
 154           *    by more than the margin.
 155           *    @param mixed $first          Value to compare.
 156           *    @param mixed $second         Value to compare.
 157           *    @param mixed $margin         Fuzziness of match.
 158           *    @param string $message       Message to display.
 159           *    @return boolean              True on pass
 160           *    @access public
 161           */
 162          function assertOutsideMargin($first, $second, $margin, $message = "%s") {
 163              return $this->assert(
 164                      new OutsideMarginExpectation($first, $margin),
 165                      $second,
 166                      $message);
 167          }
 168  
 169          /**
 170           *    Will trigger a pass if the two parameters have
 171           *    the same value and same type. Otherwise a fail.
 172           *    @param mixed $first           Value to compare.
 173           *    @param mixed $second          Value to compare.
 174           *    @param string $message        Message to display.
 175           *    @return boolean               True on pass
 176           *    @access public
 177           */
 178          function assertIdentical($first, $second, $message = "%s") {
 179              return $this->assert(
 180                      new IdenticalExpectation($first),
 181                      $second,
 182                      $message);
 183          }
 184  
 185          /**
 186           *    Will trigger a pass if the two parameters have
 187           *    the different value or different type.
 188           *    @param mixed $first           Value to compare.
 189           *    @param mixed $second          Value to compare.
 190           *    @param string $message        Message to display.
 191           *    @return boolean               True on pass
 192           *    @access public
 193           */
 194          function assertNotIdentical($first, $second, $message = "%s") {
 195              return $this->assert(
 196                      new NotIdenticalExpectation($first),
 197                      $second,
 198                      $message);
 199          }
 200  
 201          /**
 202           *    Will trigger a pass if both parameters refer
 203           *    to the same object. Fail otherwise.
 204           *    @param mixed $first           Object reference to check.
 205           *    @param mixed $second          Hopefully the same object.
 206           *    @param string $message        Message to display.
 207           *    @return boolean               True on pass
 208           *    @access public
 209           */
 210          function assertReference($first, $second, $message = "%s") {
 211              $dumper = new SimpleDumper();
 212              $message = sprintf(
 213                      $message,
 214                      "[" . $dumper->describeValue($first) .
 215                              "] and [" . $dumper->describeValue($second) .
 216                              "] should reference the same object");
 217              return $this->assertTrue(
 218                      SimpleTestCompatibility::isReference($first, $second),
 219                      $message);
 220          }
 221  
 222          /**
 223           *    Will trigger a pass if both parameters refer
 224           *    to different objects. Fail otherwise. The objects
 225           *    have to be identical though.
 226           *    @param mixed $first           Object reference to check.
 227           *    @param mixed $second          Hopefully not the same object.
 228           *    @param string $message        Message to display.
 229           *    @return boolean               True on pass
 230           *    @access public
 231           */
 232          function assertClone($first, $second, $message = "%s") {
 233              $dumper = new SimpleDumper();
 234              $message = sprintf(
 235                      $message,
 236                      "[" . $dumper->describeValue($first) .
 237                              "] and [" . $dumper->describeValue($second) .
 238                              "] should not be the same object");
 239              $identical = new IdenticalExpectation($first);
 240              return $this->assertTrue(
 241                      $identical->test($second) &&
 242                              ! SimpleTestCompatibility::isReference($first, $second),
 243                      $message);
 244          }
 245  
 246          /**
 247           *    @deprecated
 248           */
 249          function assertCopy($first, $second, $message = "%s") {
 250              $dumper = new SimpleDumper();
 251              $message = sprintf(
 252                      $message,
 253                      "[" . $dumper->describeValue($first) .
 254                              "] and [" . $dumper->describeValue($second) .
 255                              "] should not be the same object");
 256              return $this->assertFalse(
 257                      SimpleTestCompatibility::isReference($first, $second),
 258                      $message);
 259          }
 260  
 261          /**
 262           *    Will trigger a pass if the Perl regex pattern
 263           *    is found in the subject. Fail otherwise.
 264           *    @param string $pattern    Perl regex to look for including
 265           *                              the regex delimiters.
 266           *    @param string $subject    String to search in.
 267           *    @param string $message    Message to display.
 268           *    @return boolean           True on pass
 269           *    @access public
 270           */
 271          function assertPattern($pattern, $subject, $message = "%s") {
 272              return $this->assert(
 273                      new PatternExpectation($pattern),
 274                      $subject,
 275                      $message);
 276          }
 277  
 278          /**
 279           *      @deprecated
 280           */
 281          function assertWantedPattern($pattern, $subject, $message = "%s") {
 282              return $this->assertPattern($pattern, $subject, $message);
 283          }
 284  
 285          /**
 286           *    Will trigger a pass if the perl regex pattern
 287           *    is not present in subject. Fail if found.
 288           *    @param string $pattern    Perl regex to look for including
 289           *                              the regex delimiters.
 290           *    @param string $subject    String to search in.
 291           *    @param string $message    Message to display.
 292           *    @return boolean           True on pass
 293           *    @access public
 294           */
 295          function assertNoPattern($pattern, $subject, $message = "%s") {
 296              return $this->assert(
 297                      new NoPatternExpectation($pattern),
 298                      $subject,
 299                      $message);
 300          }
 301  
 302          /**
 303           *      @deprecated
 304           */
 305          function assertNoUnwantedPattern($pattern, $subject, $message = "%s") {
 306              return $this->assertNoPattern($pattern, $subject, $message);
 307          }
 308  
 309          /**
 310           *    Confirms that no errors have occoured so
 311           *    far in the test method.
 312           *    @param string $message    Message to display.
 313           *    @return boolean           True on pass
 314           *    @access public
 315           */
 316          function assertNoErrors($message = "%s") {
 317              $queue = &SimpleErrorQueue::instance();
 318              return $this->assertTrue(
 319                      $queue->isEmpty(),
 320                      sprintf($message, "Should be no errors"));
 321          }
 322  
 323          /**
 324           *    Confirms that an error has occoured and
 325           *    optionally that the error text matches exactly.
 326           *    @param string $expected   Expected error text or
 327           *                              false for no check.
 328           *    @param string $message    Message to display.
 329           *    @return boolean           True on pass
 330           *    @access public
 331           */
 332          function assertError($expected = false, $message = "%s") {
 333              $queue = &SimpleErrorQueue::instance();
 334              if ($queue->isEmpty()) {
 335                  $this->fail(sprintf($message, "Expected error not found"));
 336                  return;
 337              }
 338              list($severity, $content, $file, $line, $globals) = $queue->extract();
 339              $severity = SimpleErrorQueue::getSeverityAsString($severity);
 340              if (! $expected) {
 341                  return $this->pass(
 342                          "Captured a PHP error of [$content] severity [$severity] in [$file] line [$line] -> %s");
 343              }
 344              $expected = $this->_coerceToExpectation($expected);
 345              return $this->assert(
 346                      $expected,
 347                      $content,
 348                      "Expected PHP error [$content] severity [$severity] in [$file] line [$line] -> %s");
 349          }
 350  
 351          /**
 352           *    Creates an equality expectation if the
 353           *    object/value is not already some type
 354           *    of expectation.
 355           *    @param mixed $expected      Expected value.
 356           *    @return SimpleExpectation   Expectation object.
 357           *    @access private
 358           */
 359          function _coerceToExpectation($expected) {
 360              if (SimpleTestCompatibility::isA($expected, 'SimpleExpectation')) {
 361                  return $expected;
 362              }
 363              return new EqualExpectation($expected);
 364          }
 365  
 366          /**
 367           *    @deprecated
 368           */
 369          function assertErrorPattern($pattern, $message = "%s") {
 370              return $this->assertError(new PatternExpectation($pattern), $message);
 371          }
 372      }
 373  ?>


Généré le : Sun Feb 25 21:07:04 2007 par Balluche grâce à PHPXref 0.7