Exemplo n.º 1
0
 /**
  * Constructor.
  *
  * Available options:
  *
  *  * left_field:         The left field name
  *  * operator:           The comparison operator
  *                          * self::EQUAL
  *                          * self::NOT_EQUAL
  *                          * self::IDENTICAL
  *                          * self::NOT_IDENTICAL
  *                          * self::LESS_THAN
  *                          * self::LESS_THAN_EQUAL
  *                          * self::GREATER_THAN
  *                          * self::GREATER_THAN_EQUAL
  *  * right_field:        The right field name
  *  * throw_global_error: Whether to throw a global error (false by default) or an error tied to the left field
  *
  * @param string $leftField   The left field name
  * @param string $operator    The operator to apply
  * @param string $rightField  The right field name
  * @param array  $options     An array of options
  * @param array  $messages    An array of error messages
  *
  * @see Base
  */
 public function __construct($leftField, $operator, $rightField, $options = array(), $messages = array())
 {
     $this->addOption('left_field', $leftField);
     $this->addOption('operator', $operator);
     $this->addOption('right_field', $rightField);
     $this->addOption('throw_global_error', false);
     parent::__construct(null, $options, $messages);
 }
Exemplo n.º 2
0
$v->setPostValidator(new AndOperator(array($comparator, $comparator1)));
try {
    $v->clean(array('left' => 'foo', 'right' => 'bar', 'password' => 'oof', 'password_bis' => 'rab', 'user' => array('left' => 'foo', 'right' => 'bar', 'password' => 'oof', 'password_bis' => 'rab')));
    $t->skip('', 7);
} catch (ErrorSchema $e) {
    $t->is(count($e->getNamedErrors()), 2, '->clean() throws an exception with all error messages');
    $t->is(count($e->getGlobalErrors()), 1, '->clean() throws an exception with all error messages');
    $t->is(count($e['user']->getNamedErrors()), 1, '->clean() throws an exception with all error messages');
    $t->is(count($e['user']->getGlobalErrors()), 1, '->clean() throws an exception with all error messages');
    $t->is(isset($e['user']) ? $e['user']->getCode() : '', 'invalid password [invalid]', '->clean() throws an exception with all error messages');
    $t->is(isset($e['user']['password']) ? $e['user']['password']->getCode() : '', 'invalid', '->clean() throws an exception with all error messages');
    $t->is($e->getCode(), 'invalid user [invalid password [invalid]] password [invalid]', '->clean() throws an exception with all error messages');
}
// __clone()
$t->diag('__clone()');
$v = new Schema(array('v1' => $v1, 'v2' => $v2));
$v1 = clone $v;
$f1 = $v1->getFields();
$f = $v->getFields();
$t->is(array_keys($f1), array_keys($f), '__clone() clones embedded validators');
foreach ($f1 as $name => $validator) {
    $t->ok($validator !== $f[$name], '__clone() clones embedded validators');
    $t->ok($validator == $f[$name], '__clone() clones embedded validators');
}
$t->is($v1->getPreValidator(), null, '__clone() clones the pre validator');
$t->is($v1->getPostValidator(), null, '__clone() clones the post validator');
$v->setPreValidator(new String(array('min_length' => 4)));
$v->setPostValidator(new String(array('min_length' => 4)));
$v1 = clone $v;
$t->ok($v1->getPreValidator() !== $v->getPreValidator(), '__clone() clones the pre validator');
$t->ok($v1->getPreValidator() == $v->getPreValidator(), '__clone() clones the pre validator');