[ Index ]

PHP Cross Reference of Web Application Component Toolkit

title

Body

[close]

/tests/cases/validation/rules/ -> numeric.test.php (source)

   1  <?php
   2  /**
   3  * @package WACT_TESTS
   4  * @version $Id: numeric.test.php,v 1.2 2004/11/12 21:25:20 jeffmoore Exp $
   5  */
   6  
   7  require_once  'singlefield.inc.php';
   8  require_once WACT_ROOT . 'validation/rules/numeric.inc.php';
   9   
  10   class NumericRuleTestCase extends SingleFieldRuleTestCase {
  11      function NumericRuleTestCase($name = 'NumericRuleTestCase') {
  12          $this->UnitTestCase($name);
  13      }
  14      function testNumericRule() {
  15          $this->validator->addRule(new NumericPrecisionRule('testfield', 3, 2));
  16          
  17          $Data =& new DataSpace();
  18          $Data->set('testfield', '111.22');
  19  
  20          $this->ErrorList->expectNever('addError');
  21          
  22          $this->validator->validate($Data);
  23          $this->assertTrue($this->validator->IsValid());
  24      }
  25      function testNumericRuleZero() {
  26          $this->validator->addRule(new NumericPrecisionRule('testfield', 3, 2));
  27          
  28          $Data =& new DataSpace();
  29          $Data->set('testfield', '0');
  30  
  31          $this->ErrorList->expectNever('addError');
  32          
  33          $this->validator->validate($Data);
  34          $this->assertTrue($this->validator->IsValid());
  35      }
  36      function testNumericRuleZeroInt() {
  37          $this->validator->addRule(new NumericPrecisionRule('testfield', 3, 2));
  38          
  39          $Data =& new DataSpace();
  40          $Data->set('testfield', 0);
  41  
  42          $this->ErrorList->expectNever('addError');
  43          
  44          $this->validator->validate($Data);
  45          $this->assertTrue($this->validator->IsValid());
  46      }
  47      function testNumericRuleFailure() {
  48          // I don't know why this fails?
  49          $this->validator->addRule(new NumericPrecisionRule('testfield', 3, 2));
  50          
  51          $Data =& new DataSpace();
  52          $Data->set('testfield', 'not a number');
  53  
  54          $this->ErrorList->expectOnce('addError', array('validation', 'NOT_NUMERIC', array('Field'=>'testfield'), NULL));
  55        
  56          $this->validator->validate($Data);
  57          $this->assertFalse($this->validator->IsValid());
  58      }
  59      function testNumericRuleTooManyWholeDigits() {
  60          // I don't know why this fails?
  61          $this->validator->addRule(new NumericPrecisionRule('testfield', 3, 2));
  62          
  63          $Data =& new DataSpace();
  64          $Data->set('testfield', '1111');
  65  
  66          $this->ErrorList->expectOnce('addError', array('validation', 'TOO_MANY_WHOLE_DIGITS', array('Field'=>'testfield'), array('maxdigits'=>3, 'digits'=>4)));
  67        
  68          $this->validator->validate($Data);
  69          $this->assertFalse($this->validator->IsValid());
  70      }
  71      function testNumericRuleTooManyDecimalDigits() {
  72          // I don't know why this fails?
  73          $this->validator->addRule(new NumericPrecisionRule('testfield', 3, 2));
  74          
  75          $Data =& new DataSpace();
  76          $Data->set('testfield', '111.222');
  77  
  78          $this->ErrorList->expectOnce('addError', array('validation', 'TOO_MANY_DECIMAL_DIGITS', array('Field'=>'testfield'), array('maxdigits'=>2, 'digits'=>3)));
  79        
  80          $this->validator->validate($Data);
  81          $this->assertFalse($this->validator->IsValid());
  82      }
  83  }
  84  
  85   class NumericRangeRuleTestCase extends SingleFieldRuleTestCase {
  86      function NumericRangeRuleTestCase($name = 'NumericRangeRuleTestCase') {
  87          $this->UnitTestCase($name);
  88      }
  89      function testNumericRangeRule() {
  90          $this->validator->addRule(new NumericRangeRule('testfield', 1, 100));
  91          
  92          $Data =& new DataSpace();
  93          $Data->set('testfield', '50');
  94  
  95          $this->ErrorList->expectNever('addError');
  96          
  97          $this->validator->validate($Data);
  98          $this->assertTrue($this->validator->IsValid());
  99      }
 100      function testNumericRangeRuleBlank() {
 101          $this->validator->addRule(new NumericRangeRule('testfield', 1, 100));
 102          
 103          $Data =& new DataSpace();
 104          $Data->set('testfield', '');
 105  
 106          $this->ErrorList->expectNever('addError');
 107          
 108          $this->validator->validate($Data);
 109          $this->assertTrue($this->validator->IsValid());
 110      }
 111      function testNumericRangeRuleTooBig() {
 112          $this->validator->addRule(new NumericRangeRule('testfield', 1, 100));
 113          
 114          $Data =& new DataSpace();
 115          $Data->set('testfield', '101');
 116  
 117          $this->ErrorList->expectOnce('addError', array('validation', 'RANGE_TOO_BIG', array('Field'=>'testfield'), array('max'=>100)));
 118          
 119          $this->validator->validate($Data);
 120          $this->assertFalse($this->validator->IsValid());
 121      }
 122      function testNumericRangeRuleTooSmall() {
 123          $this->validator->addRule(new NumericRangeRule('testfield', 1, 100));
 124          
 125          $Data =& new DataSpace();
 126          $Data->set('testfield', '0');
 127  
 128          $this->ErrorList->expectOnce('addError', array('validation', 'RANGE_TOO_SMALL', array('Field'=>'testfield'), array('min'=>1)));
 129          
 130          $this->validator->validate($Data);
 131          $this->assertFalse($this->validator->IsValid());
 132      }
 133      function testNumericRangeRuleTooSmallZero() {
 134          $this->validator->addRule(new NumericRangeRule('testfield', 1, 100));
 135          
 136          $Data =& new DataSpace();
 137          $Data->set('testfield', 0);
 138  
 139          $this->ErrorList->expectOnce('addError', array('validation', 'RANGE_TOO_SMALL', array('Field'=>'testfield'), array('min'=>1)));
 140          
 141          $this->validator->validate($Data);
 142          $this->assertFalse($this->validator->IsValid());
 143      }
 144      function testNumericRangeRuleFloat() {
 145          $this->validator->addRule(new NumericRangeRule('testfield', .25, .75));
 146          
 147          $Data =& new DataSpace();
 148          $Data->set('testfield', '.50');
 149  
 150          $this->ErrorList->expectNever('addError');
 151          
 152          $this->validator->validate($Data);
 153          $this->assertTrue($this->validator->IsValid());
 154      }
 155      function testNumericRangeRuleTooBigFloat() {
 156          $this->validator->addRule(new NumericRangeRule('testfield', .25, .75));
 157          
 158          $Data =& new DataSpace();
 159          $Data->set('testfield', '.90');
 160  
 161          $this->ErrorList->expectOnce('addError', array('validation', 'RANGE_TOO_BIG', array('Field'=>'testfield'), array('max'=>.75)));
 162          
 163          $this->validator->validate($Data);
 164          $this->assertFalse($this->validator->IsValid());
 165      }
 166      function testNumericRangeRuleTooSmallFloat() {
 167          $this->validator->addRule(new NumericRangeRule('testfield', .25, .75));
 168          
 169          $Data =& new DataSpace();
 170          $Data->set('testfield', '.10');
 171  
 172          $this->ErrorList->expectOnce('addError', array('validation', 'RANGE_TOO_SMALL', array('Field'=>'testfield'), array('min'=>.25)));
 173          
 174          $this->validator->validate($Data);
 175          $this->assertFalse($this->validator->IsValid());
 176      }
 177  }
 178  
 179  
 180  ?>


Generated: Sun Nov 28 19:36:09 2004 Cross-referenced by PHPXref 0.5