function testModel_FormValid() { $request = new Model_FormTest_Request(); $model = new A_Model_Form(); // check not post $this->assertFalse($model->isValid($request)); // test post mode no fields or rules $request->setMethod('POST'); $this->assertTrue($model->isValid($request)); // test post mode with field and param value but no rules $request->set('foo', 'bar'); $field = $model->newField('foo'); $this->assertTrue($model->isValid($request)); $this->assertEqual($model->get('foo'), 'bar'); // add rule $field->addRule(new A_Rule_Notnull('foo', 'error')); // param not set $request->set('foo', null); $this->assertFalse($model->isValid($request)); $this->assertTrue($model->isError()); $this->assertEqual($model->getErrorMsg(), array('foo' => array('error'))); $this->assertEqual($model->getErrorMsg(' '), 'error'); // param not set $request->set('foo', 'bar'); $this->assertTrue($model->isValid($request)); }