/**
  * @dataProvider providerIsValid
  */
 public function testIsValid($expected, $value)
 {
     $validator = new NumericValidator();
     $result = $validator->isValid($value);
     $this->assertEquals($expected, $result);
     if (!$expected) {
         $expectedParameters = array('value' => $value);
         $expectedError = new ValidationError(NumericValidator::CODE, NumericValidator::MESSAGE, $expectedParameters);
         $resultErrors = $validator->getErrors();
         $this->assertEquals(array($expectedError), $resultErrors);
     }
 }
 /**
  * Checks whether a value is a numeric value with a minimum and/or maximum
  * @param mixed $value
  * @return boolean true if the value is a valid value, false otherwise
  */
 public function isValid($value)
 {
     $result = parent::isValid($value);
     if (!$result) {
         return false;
     }
     if (!$this->isRequired && empty($value)) {
         return true;
     }
     if ($this->minimum !== null && $this->maximum !== null) {
         if ($value < $this->minimum || $value > $this->maximum) {
             $this->addMinMaxError($value);
             return false;
         }
     } elseif ($this->minimum !== null) {
         if ($value < $this->minimum) {
             $this->addMinimumError($value);
             return false;
         }
     } else {
         if ($this->maximum !== null) {
             if ($value > $this->maximum) {
                 $this->addMaximumError($value);
                 return false;
             }
         }
     }
     return true;
 }
Esempio n. 3
0
 /**
  * Construct a new size validator instance
  * @param array $options options for this instance
  * @return null
  * @throws zibo\ZiboException when no minimum or maximum option is provided
  * @throws zibo\ZiboException when no minimum or maximum is not a valid value
  */
 public function __construct(array $options = array())
 {
     if (!isset($options[self::OPTION_MINIMUM]) && !isset($options[self::OPTION_MAXIMUM])) {
         throw new ZiboException('No minimum nor maximum option provided');
     }
     if (isset($options[self::OPTION_MINIMUM])) {
         if (!parent::isValid($options[self::OPTION_MINIMUM])) {
             throw new ZiboException('Provided minimum is invalid');
         }
         $this->minimum = $options[self::OPTION_MINIMUM];
     }
     if (isset($options[self::OPTION_MAXIMUM])) {
         if (!parent::isValid($options[self::OPTION_MAXIMUM])) {
             throw new ZiboException('Provided maximum is invalid');
         }
         $this->maximum = $options[self::OPTION_MAXIMUM];
     }
 }