/** * Test message detection and param insertion. */ public function testMessageDetection() { $this->object->addField('username', 'Username')->addRule('username', 'notEmpty', null)->addRule('username', 'between', '{field} may only be between {0} and {1} characters', array(10, 20))->addRule('username', 'alpha', null)->addMessages(array('notEmpty' => '{field} cannot be empty')); // No message for alphaNumeric try { $this->object->validate(); $this->assertTrue(false); } catch (Exception $e) { $this->assertTrue(true); } $this->object->addMessages(array('alpha' => '{title} may only be alpha')); // {field} insertion $this->object->validate(); $this->assertEquals(array('username' => 'username may only be between 10 and 20 characters'), $this->object->getErrors()); // {title} insertion $this->object->setData(array('username' => 'foo long name bar!')); $this->object->validate(); $this->assertEquals(array('username' => 'Username may only be alpha'), $this->object->getErrors()); }