public function testErrors() { $form = Form::create()->add(Primitive::ternary('flag')->setFalseValue('0')->setTrueValue('1'))->add(Primitive::integer('old')->required())->addRule('someRule', Expression::between(FormField::create('old'), '18', '35')); //empty import $form->import(array())->checkRules(); //checking $expectingErrors = array('old' => Form::MISSING, 'someRule' => Form::WRONG); $this->assertEquals($expectingErrors, $form->getErrors()); $this->assertEquals(Form::MISSING, $form->getError('old')); $this->assertEquals(Form::WRONG, $form->getError('someRule')); $this->assertTrue($form->hasError('old')); $this->assertFalse($form->hasError('flag')); //drop errors $form->dropAllErrors(); $this->assertEquals(array(), $form->getErrors()); //import wrong data $form->clean()->importMore(array('flag' => '3', 'old' => '17'))->checkRules(); //checking $expectingErrors = array('flag' => Form::WRONG, 'someRule' => Form::WRONG); $this->assertEquals($expectingErrors, $form->getErrors()); $this->assertTrue($form->hasError('someRule')); //marking good and custom check errors $form->markGood('someRule')->markCustom('flag', 3); $this->assertEquals(array('flag' => 3), $form->getErrors()); $this->assertFalse($form->hasError('someRule')); $this->assertNull($form->getError('someRule')); $this->assertEquals(3, $form->getError('flag')); //import right data $form->dropAllErrors()->clean()->importMore(array('flag' => '1', 'old' => '35')); //checking $this->assertEquals(array(), $form->getErrors()); }