3 class MultiValidaitonMockModel extends CakeTestModel {
\r
5 var $useTable = false;
\r
6 var $validate = array(
\r
9 'rule' => array('email'),
\r
13 'notempty' => array(
\r
14 'rule' => array('notempty'),
\r
19 var $validateBestAnswer = array(
\r
20 'best_answer_id' => array(
\r
21 'notempty' => array(
\r
22 'rule' => array('notempty'),
\r
27 var $validateEdit = array(
\r
30 'rule' => array('email', true),
\r
37 class MultiValidationBehaviorTestCase extends CakeTestCase {
\r
40 'MultiValidaitonMockModel' => array(
\r
41 'nickname' => '0123456789012',
\r
45 function startTest() {
\r
49 function endTest() {
\r
53 function _attach($settings = array()) {
\r
55 $this->Model = ClassRegistry::init('MultiValidaitonMockModel');
\r
56 $this->Model->Behaviors->detach('Collectionable.MultiValidation');
\r
57 $this->Model->Behaviors->attach('Collectionable.MultiValidation', $settings);
\r
63 unset($this->Model);
\r
64 ClassRegistry::flush();
\r
68 function _reattach($settings = array()) {
\r
71 $this->_attach($settings);
\r
75 function testUseValidationSet() {
\r
77 $this->Model->useValidationSet('BestAnswer');
\r
78 $result = $this->Model->validate;
\r
82 'rule' => array('email'),
\r
86 'notempty' => array(
\r
87 'rule' => array('notempty'),
\r
90 'best_answer_id' => array(
\r
91 'notempty' => array(
\r
92 'rule' => array('notempty'),
\r
96 $this->assertIdentical($result, $expected);
\r
98 $this->Model->restoreValidate();
\r
99 $this->Model->useValidationSet('bestAnswer');
\r
100 $result = $this->Model->validate;
\r
101 $this->assertIdentical($result, $expected);
\r
103 $this->Model->restoreValidate();
\r
104 $this->Model->useValidationSet('BestAnswer', false);
\r
105 $result = $this->Model->validate;
\r
107 'best_answer_id' => array(
\r
108 'notempty' => array(
\r
109 'rule' => array('notempty'),
\r
113 $this->assertIdentical($result, $expected);
\r
115 $this->Model->restoreValidate();
\r
116 $this->Model->useValidationSet(array('bestAnswer', 'edit'));
\r
117 $result = $this->Model->validate;
\r
121 'rule' => array('email', true),
\r
125 'notempty' => array(
\r
126 'rule' => array('notempty'),
\r
129 'best_answer_id' => array(
\r
130 'notempty' => array(
\r
131 'rule' => array('notempty'),
\r
135 $this->assertIdentical($result, $expected);
\r
137 $this->expectError();
\r
138 $this->assertFalse($this->Model->useValidationSet('invalidPropertyName'));
\r
142 function testAfterSave() {
\r
144 $this->Model->useValidationSet('bestAnswer', false);
\r
145 $this->Model->Behaviors->MultiValidation->afterSave($this->Model);
\r
149 'rule' => array('email'),
\r
153 'notempty' => array(
\r
154 'rule' => array('notempty'),
\r
158 $this->assertIdentical($this->Model->validate, $expected);
\r
160 $this->_reattach(array('restore' => false));
\r
162 $this->Model->useValidationSet('bestAnswer', false);
\r
163 $this->Model->Behaviors->MultiValidation->afterSave($this->Model);
\r
165 'best_answer_id' => array(
\r
166 'notempty' => array(
\r
167 'rule' => array('notempty'),
\r
171 $this->assertIdentical($this->Model->validate, $expected);
\r