/**
  * @param array $errorFields
  */
 private function thenItShouldHaveMarkedUniqueErrorForFields(array $errorFields)
 {
     $expectedErrors = array();
     foreach ($errorFields as $errorField) {
         $expectedErrors[$errorField] = array('unique');
     }
     $this->assertEquals($expectedErrors, $this->record->getErrorStack()->toArray());
 }
Ejemplo n.º 2
0
 /**
  * @param  Record $record
  * @return bool
  */
 public function validate($record)
 {
     if (!$record instanceof Record) {
         throw new \InvalidArgumentException("Argument #1 should be an instance of \\Dive\\Record!");
     }
     $record->getErrorStack()->clear();
     $disabledChecks = $this->getDisabledChecks();
     foreach ($this->validators as $validator) {
         $validator->setDisabledChecks($disabledChecks);
         if (!$validator->validate($record)) {
             return false;
         }
     }
     return true;
 }
Ejemplo n.º 3
0
 /**
  * @param  Record $record
  * @return RecordInvalidException
  */
 public static function createByRecord(Record $record)
 {
     $errorStack = $record->getErrorStack();
     $message = "Record {$record} is invalid!\n";
     foreach ($errorStack as $fieldName => $errorCodes) {
         $value = $record->get($fieldName);
         $type = gettype($value);
         $valueAsString = "({$type})";
         if (is_string($value) || is_numeric($value)) {
             $valueAsString .= $value;
         } else {
             if (is_bool($value)) {
                 $valueAsString .= $value ? 'TRUE' : 'FALSE';
             }
         }
         $message .= "  {$fieldName}: {$valueAsString} [codes: " . implode(', ', $errorCodes) . "]\n";
     }
     return new self($message);
 }
Ejemplo n.º 4
0
 /**
  * @param Record $record
  * @param string $fieldName
  * @param string $errorCode
  */
 private function addErrorToStack(Record $record, $fieldName, $errorCode)
 {
     $record->getErrorStack()->add($fieldName, $errorCode);
 }