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);
 }