protected function _validateCollection($data, $ruleset) { foreach ($data as $field => $value) { if (is_array($value) && isset($ruleset["_{$field}"])) { $status &= $this->_validateCollection($data[$field], $ruleset["_{$field}"]); continue; } if (!isset($ruleset[$field])) { continue; } $obj = new CakeValidationSet($field, $ruleset[$field]); $obj->setMethods($this->_methods[$this->_Model->name]); $errors = $obj->validate($data); foreach ($errors as $error) { $this->_Model->invalidate($field, $error); } } }
/** * testValidate method * * @return void */ public function testValidate() { $Field = new CakeValidationSet('title', 'notEmpty'); $data = array('title' => '', 'body' => 'a body'); $result = $Field->validate($data); $expected = array('This field cannot be left blank'); $this->assertEquals($expected, $result); $Field = new CakeValidationSet('body', 'notEmpty'); $result = $Field->validate($data); $this->assertEmpty($result); $Field = new CakeValidationSet('nothere', array('notEmpty' => array('rule' => 'notEmpty', 'required' => true))); $result = $Field->validate($data); $expected = array('notEmpty'); $this->assertEquals($expected, $result); $Field = new CakeValidationSet('body', array('inList' => array('rule' => array('inList', array('test'))))); $result = $Field->validate($data); $expected = array('inList'); $this->assertEquals($expected, $result); }