/** * Test that shorthand splitting works. */ public function testSplitShorthand() { // only a rule $this->assertEquals(array('rule' => 'boolean', 'message' => '', 'options' => array()), $this->object->splitShorthand('boolean')); // rule with 1 param $this->assertEquals(array('rule' => 'decimal', 'message' => '', 'options' => array(1)), $this->object->splitShorthand('decimal:1')); // rule with 2 params $this->assertEquals(array('rule' => 'between', 'message' => '', 'options' => array(1, 10)), $this->object->splitShorthand('between:1,10')); // only a rule and message $this->assertEquals(array('rule' => 'boolean', 'message' => 'Must be a boolean!', 'options' => array()), $this->object->splitShorthand('boolean::Must be a boolean!')); // rule with 2 params and message $this->assertEquals(array('rule' => 'between', 'message' => 'Must be between 1:10!', 'options' => array(1, 10)), $this->object->splitShorthand('between:1,10:Must be between 1:10!')); }
/** * Return the validator instance. * * @return \Titon\Utility\Validator */ public function getValidator() { if (!$this->_validator) { $this->setValidator(Validator::makeFromShorthand([], $this->validate)); } return $this->_validator; }
/** * Test that shorthand validation rules get parsed correctly. */ public function testMakeFromShorthand() { // simple rule $obj = Validator::makeFromShorthand(array(), array('field' => 'alphaNumeric')); $this->assertEquals(array('field' => array('alphaNumeric' => array('message' => '', 'options' => array()))), $obj->getRules()); // simple 2 rules $obj = Validator::makeFromShorthand(array(), array('field' => 'alphaNumeric|boolean')); $this->assertEquals(array('field' => array('alphaNumeric' => array('message' => '', 'options' => array()), 'boolean' => array('message' => '', 'options' => array()))), $obj->getRules()); // simple 2 rules with options $obj = Validator::makeFromShorthand(array(), array('field' => 'between:5,10|equal:7')); $this->assertEquals(array('field' => array('between' => array('message' => '', 'options' => array(5, 10)), 'equal' => array('message' => '', 'options' => array(7)))), $obj->getRules()); // split 2 rules $obj = Validator::makeFromShorthand(array(), array('field' => array('between:5,10', 'equal:7'))); $this->assertEquals(array('field' => array('between' => array('message' => '', 'options' => array(5, 10)), 'equal' => array('message' => '', 'options' => array(7)))), $obj->getRules()); // nested 2 rules $obj = Validator::makeFromShorthand(array(), array('field' => array('title' => 'Field', 'rules' => 'between:5,10|equal:7'))); $this->assertEquals(array('field' => array('between' => array('message' => '', 'options' => array(5, 10)), 'equal' => array('message' => '', 'options' => array(7)))), $obj->getRules()); // nested split 2 rules $obj = Validator::makeFromShorthand(array(), array('field' => array('title' => 'Field', 'rules' => array('between:5,10', 'equal:7')))); $this->assertEquals(array('field' => array('between' => array('message' => '', 'options' => array(5, 10)), 'equal' => array('message' => '', 'options' => array(7)))), $obj->getRules()); // advanced multiple rules $obj = Validator::makeFromShorthand(array(), array('field' => array('rules' => array('phone::Invalid phone number', 'email::Please provide an email', 'ext:txt:Valid extensions are txt, pdf', 'ip:' . Validate::IPV4 . ':Please provide an IPv4')))); $this->assertEquals(array('field' => array('phone' => array('message' => 'Invalid phone number', 'options' => array()), 'email' => array('message' => 'Please provide an email', 'options' => array()), 'ext' => array('message' => 'Valid extensions are txt, pdf', 'options' => array('txt')), 'ip' => array('message' => 'Please provide an IPv4', 'options' => array(Validate::IPV4)))), $obj->getRules()); }
public function testGetValidator() { $validator = new Validator(); $validator->addField('username', 'username', ['between' => [5, 25], 'alphaNumeric']); $validator->addField('firstName', 'firstName', ['alpha']); $validator->addField('lastName', 'lastName', ['numeric']); $this->assertEquals($validator, $this->object->getValidator()); }