/** * Test that addRule() will add a single rule, or addField() will add multiple rules, and getRules() will return all rules. */ public function testAddGetRules() { $this->assertEquals(array(), $this->object->getRules()); // via addRule() $this->object->addField('basicRule', 'Basic Rule')->addRule('basicRule', 'alphaNumeric', 'Custom alpha-numeric message')->addRule('basicRule', 'between', 'May only be between 0 and 100 characters', array(0, 100)); // use default message $this->assertEquals(array('basicRule' => array('alphaNumeric' => array('message' => 'Custom alpha-numeric message', 'options' => array()), 'between' => array('message' => 'May only be between 0 and 100 characters', 'options' => array(0, 100)))), $this->object->getRules()); // via third argument in addField() $this->object->addMessages(array('phone' => 'Invalid phone number', 'email' => 'Please provide an email', 'ext' => 'Valid extensions are {0}', 'ip' => 'Please provide an IPv4')); $this->object->addField('advRule', 'Advanced Rule', array('phone', 'email', 'ext' => array(array('txt', 'pdf')), 'ip' => Validate::IPV4)); $this->assertEquals(array('basicRule' => array('alphaNumeric' => array('message' => 'Custom alpha-numeric message', 'options' => array()), 'between' => array('message' => 'May only be between 0 and 100 characters', 'options' => array(0, 100))), 'advRule' => array('phone' => array('message' => 'Invalid phone number', 'options' => array()), 'email' => array('message' => 'Please provide an email', 'options' => array()), 'ext' => array('message' => 'Valid extensions are {0}', 'options' => array(array('txt', 'pdf'))), 'ip' => array('message' => 'Please provide an IPv4', 'options' => array(Validate::IPV4)))), $this->object->getRules()); }