public function testNoOkMsisdnLessFalse()
 {
     self::initAuthUser(self::MASTER_USER_ID);
     $this->assertFalse($this->_validator->isValid('0'));
     $messages = $this->_validator->getMessages();
     $this->assertArrayHasKey(App_Validate_Msisdn::INVALID_MSISDN, $messages);
 }
Example #2
0
 /**
  * Validate element value
  *
  * @param  array   $data
  * @param  mixed   $context
  * @return boolean
  */
 public function isValid($value, $context = array())
 {
     $countValidator = new App_Validate_ArrayCount(array('min' => 0, 'max' => 10));
     if (!$countValidator->isValid($value)) {
         $this->_messages = $countValidator->getMessages();
         return false;
     }
     $arrayValidator = new App_Validate_Array(array('distinct' => true, 'ignoreEmpties' => true, 'validators' => array('Apn' => array('breakChainOnFailure' => true, 'optional' => true))));
     if (!$arrayValidator->isValid($value, $context)) {
         $this->_messages = $arrayValidator->getMessages();
         return false;
     }
     return true;
 }
 /**
  * Validate element value
  *
  * @param  array   $value
  * @return boolean
  */
 public function isValid($value, $context = null, $removeNotPresentFields = false)
 {
     if (!($value instanceof $this->_model || $this->_acceptArrayAsModel && is_array($value))) {
         $this->_error(self::NOT_MODEL);
         return false;
     }
     if ($value instanceof ModelAbstract) {
         $valueKeys = array_keys($value->exportData());
     } else {
         $valueKeys = array_keys($value);
     }
     $keyValidator = new \App_Validate_Array($this->_keysSpec);
     if (!$keyValidator->isValid($valueKeys)) {
         $this->_messages = $keyValidator->getMessages();
         return false;
     }
     $validator = new \App_Validate_ArrayCount(array('max' => $this->_maxFields));
     if (!$validator->isValid($value, $context, $removeNotPresentFields)) {
         $this->_messages = $validator->getMessages();
         return false;
     }
     $validator = new \App_Validate_Array($this->_spec);
     if (!$validator->isValid($value, $context, $removeNotPresentFields)) {
         $this->_messages = $validator->getMessages();
         return false;
     }
     $chContext = $context;
     $limit = 5;
     while (isset($chContext['__parent'])) {
         $chContext = $chContext['__parent'];
         $limit--;
     }
     if ($limit < 0) {
         $this->_error(self::TOO_MUCH_DEPTH);
         return false;
     }
     return true;
 }
 public function testIsNotAnArray()
 {
     $this->assertFalse($this->_validator->isValid(4));
     $messages = $this->_validator->getMessages();
     $this->assertArrayHasKey(App_Validate_ArrayCount::INVALID, $messages);
 }
 /**
  * Validate element value
  *
  * @param  array   $value
  * @return boolean
  */
 public function isValid($value, $context = null, $removeNotPresentFields = false)
 {
     if (!($value instanceof $this->_model || $this->_acceptArrayAsModel && is_array($value))) {
         $this->_error(self::NOT_MODEL);
         return false;
     }
     if ($value instanceof ModelAbstract) {
         $valueKeys = array_keys($value->exportData());
     } else {
         $valueKeys = array_keys($value);
     }
     $keyValidator = new \App_Validate_Array($this->_keysSpec);
     if (!$keyValidator->isValid($valueKeys)) {
         $this->_messages = $keyValidator->getMessages();
         return false;
     }
     $chContext = $context;
     $limit = 5;
     while (isset($chContext['__parent'])) {
         $chContext = $chContext['__parent'];
         $limit--;
     }
     if ($limit < 0) {
         $this->_error(self::TOO_MUCH_DEPTH);
         return false;
     }
     if (!empty($value)) {
         $itemValidator = $this->_getValidator($value[0]);
         if (!$itemValidator) {
             $this->_error(self::INVALID_ITEM_TYPE);
             return false;
         }
         $countVal = new \App_Validate_ArrayCount();
         $countVal->setMax($this->_maxFields);
         //             if ($itemValidator instanceof ModelAbstractValidate) {
         //                 $countVal->setMax(10);
         //             }
         if (!$countVal->isValid($value)) {
             $this->_messages = $countVal->getMessages();
             return false;
         }
         foreach ($value as $item) {
             if (!$itemValidator->isValid($item, $context, $removeNotPresentFields)) {
                 $this->_error(self::NOT_HOMOGENUOUS_ARRAY);
                 return false;
             }
         }
     }
     return true;
 }