/**
  * Validates object data
  *
  * @return boolean
  */
 public function validate()
 {
     $validators = $this->getValidators();
     foreach ($validators as $field => $validator) {
         $value = isset($this->_data[$field]) ? $this->_data[$field] : null;
         list($valid, $message) = Validator::validate($value, $validator);
         if (!$valid) {
             throw new InvalidFieldException($field, $message);
         }
     }
     return self::STATUS_VALID;
 }
 public function testDataModifiers()
 {
     // IP
     $value = 'not an ip';
     list($valid, $message) = Validator::validate($value, $this->modifierIp);
     $this->assertFalse($valid);
     $value = '127.0000';
     // Mallformed ip
     list($valid, $message) = Validator::validate($value, $this->modifierIp);
     $this->assertFalse($valid);
     $value = '127.0.0.1';
     list($valid, $message) = Validator::validate($value, $this->modifierIp);
     $this->assertTrue($valid);
     // URL
     $value = 'not a valid url';
     list($valid, $message) = Validator::validate($value, $this->modifierUrl);
     $this->assertFalse($valid);
     $value = 'http://testing.com';
     list($valid, $message) = Validator::validate($value, $this->modifierUrl);
     $this->assertTrue($valid);
 }