Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/lib/simpletestlib/unit_tester.php
Go to the documentation of this file.
00001 <?php
00012 require_once(dirname(__FILE__) . '/test_case.php');
00013 require_once(dirname(__FILE__) . '/dumper.php');
00023 class UnitTestCase extends SimpleTestCase {
00024 
00032     function UnitTestCase($label = false) {
00033         if (! $label) {
00034             $label = get_class($this);
00035         }
00036         $this->SimpleTestCase($label);
00037     }
00038 
00048     function assertTrue($result, $message = false) {
00049         return $this->assert(new TrueExpectation(), $result, $message);
00050     }
00051 
00062     function assertFalse($result, $message = '%s') {
00063         return $this->assert(new FalseExpectation(), $result, $message);
00064     }
00065 
00073     function assertNull($value, $message = '%s') {
00074         $dumper = new SimpleDumper();
00075         $message = sprintf(
00076                 $message,
00077                 '[' . $dumper->describeValue($value) . '] should be null');
00078         return $this->assertTrue(! isset($value), $message);
00079     }
00080 
00088     function assertNotNull($value, $message = '%s') {
00089         $dumper = new SimpleDumper();
00090         $message = sprintf(
00091                 $message,
00092                 '[' . $dumper->describeValue($value) . '] should not be null');
00093         return $this->assertTrue(isset($value), $message);
00094     }
00095 
00106     function assertIsA($object, $type, $message = '%s') {
00107         return $this->assert(
00108                 new IsAExpectation($type),
00109                 $object,
00110                 $message);
00111     }
00112 
00123     function assertNotA($object, $type, $message = '%s') {
00124         return $this->assert(
00125                 new NotAExpectation($type),
00126                 $object,
00127                 $message);
00128     }
00129 
00139     function assertEqual($first, $second, $message = '%s') {
00140         return $this->assert(
00141                 new EqualExpectation($first),
00142                 $second,
00143                 $message);
00144     }
00145 
00155     function assertNotEqual($first, $second, $message = '%s') {
00156         return $this->assert(
00157                 new NotEqualExpectation($first),
00158                 $second,
00159                 $message);
00160     }
00161 
00172     function assertWithinMargin($first, $second, $margin, $message = '%s') {
00173         return $this->assert(
00174                 new WithinMarginExpectation($first, $margin),
00175                 $second,
00176                 $message);
00177     }
00178 
00189     function assertOutsideMargin($first, $second, $margin, $message = '%s') {
00190         return $this->assert(
00191                 new OutsideMarginExpectation($first, $margin),
00192                 $second,
00193                 $message);
00194     }
00195 
00205     function assertIdentical($first, $second, $message = '%s') {
00206         return $this->assert(
00207                 new IdenticalExpectation($first),
00208                 $second,
00209                 $message);
00210     }
00211 
00221     function assertNotIdentical($first, $second, $message = '%s') {
00222         return $this->assert(
00223                 new NotIdenticalExpectation($first),
00224                 $second,
00225                 $message);
00226     }
00227 
00237     function assertReference(&$first, &$second, $message = '%s') {
00238         $dumper = new SimpleDumper();
00239         $message = sprintf(
00240                 $message,
00241                 '[' . $dumper->describeValue($first) .
00242                         '] and [' . $dumper->describeValue($second) .
00243                         '] should reference the same object');
00244         return $this->assertTrue(
00245                 SimpleTestCompatibility::isReference($first, $second),
00246                 $message);
00247     }
00248 
00259     function assertClone(&$first, &$second, $message = '%s') {
00260         $dumper = new SimpleDumper();
00261         $message = sprintf(
00262                 $message,
00263                 '[' . $dumper->describeValue($first) .
00264                         '] and [' . $dumper->describeValue($second) .
00265                         '] should not be the same object');
00266         $identical = new IdenticalExpectation($first);
00267         return $this->assertTrue(
00268                 $identical->test($second) &&
00269                         ! SimpleTestCompatibility::isReference($first, $second),
00270                 $message);
00271     }
00272 
00276     function assertCopy(&$first, &$second, $message = "%s") {
00277         $dumper = new SimpleDumper();
00278         $message = sprintf(
00279                 $message,
00280                 "[" . $dumper->describeValue($first) .
00281                         "] and [" . $dumper->describeValue($second) .
00282                         "] should not be the same object");
00283         return $this->assertFalse(
00284                 SimpleTestCompatibility::isReference($first, $second),
00285                 $message);
00286     }
00287 
00298     function assertPattern($pattern, $subject, $message = '%s') {
00299         return $this->assert(
00300                 new PatternExpectation($pattern),
00301                 $subject,
00302                 $message);
00303     }
00304 
00308     function assertWantedPattern($pattern, $subject, $message = '%s') {
00309         return $this->assertPattern($pattern, $subject, $message);
00310     }
00311 
00322     function assertNoPattern($pattern, $subject, $message = '%s') {
00323         return $this->assert(
00324                 new NoPatternExpectation($pattern),
00325                 $subject,
00326                 $message);
00327     }
00328 
00332     function assertNoUnwantedPattern($pattern, $subject, $message = '%s') {
00333         return $this->assertNoPattern($pattern, $subject, $message);
00334     }
00335 
00339     function swallowErrors() {
00340         $context = &SimpleTest::getContext();
00341         $queue = &$context->get('SimpleErrorQueue');
00342         $queue->clear();
00343     }
00344 
00348     function assertNoErrors($message = '%s') {
00349         $context = &SimpleTest::getContext();
00350         $queue = &$context->get('SimpleErrorQueue');
00351         return $queue->assertNoErrors($message);
00352     }
00353 
00357     function assertError($expected = false, $message = '%s') {
00358         $context = &SimpleTest::getContext();
00359         $queue = &$context->get('SimpleErrorQueue');
00360         return $queue->assertError($this->_coerceExpectation($expected), $message);
00361     }
00362 
00371     function expectError($expected = false, $message = '%s') {
00372         $context = &SimpleTest::getContext();
00373         $queue = &$context->get('SimpleErrorQueue');
00374         $queue->expectError($this->_coerceExpectation($expected), $message);
00375     }
00376 
00385     function expectException($expected = false, $message = '%s') {
00386         $context = &SimpleTest::getContext();
00387         $queue = &$context->get('SimpleExceptionTrap');
00388         // :HACK: Directly substituting in seems to cause a segfault with
00389         // Zend Optimizer on some systems
00390         $line = $this->getAssertionLine();
00391         $queue->expectException($expected, $message . $line);
00392     }
00393 
00402     function _coerceExpectation($expected) {
00403         if ($expected == false) {
00404             return new TrueExpectation();
00405         }
00406         if (SimpleTestCompatibility::isA($expected, 'SimpleExpectation')) {
00407             return $expected;
00408         }
00409         return new EqualExpectation(
00410                 is_string($expected) ? str_replace('%', '%%', $expected) : $expected);
00411     }
00412 
00416     function assertErrorPattern($pattern, $message = '%s') {
00417         return $this->assertError(new PatternExpectation($pattern), $message);
00418     }
00419 }
00420 ?>
 All Data Structures Namespaces Files Functions Variables Enumerations