for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Tests\Fiv\Form\Validator;
use Fiv\Form\Form;
use Fiv\Form\Validator\CallBackValidator;
/**
*
*/
class CallBackValidatorTest extends \PHPUnit_Framework_TestCase {
public function testLen() {
$lengthValidator = new CallBackValidator(function ($value) {
return strlen($value) > 3 and strlen($value) < 10;
});
$form = new Form();
$form->input('login')
->addValidator($lengthValidator);
$form->setData([
$form->getUid() => 1,
'login' => 'testLogin',
]);
$this->assertTrue($form->isValid());
$this->assertFalse($lengthValidator->hasErrors());
'login' => 'tes',
$this->assertFalse($form->isValid());
$this->assertTrue($lengthValidator->hasErrors());
'login' => 'testtesttesttesttesttesttesttest',
}
public function testEmailVirtualDbValidation() {
$existEmailList = [
'[email protected]',
];
$callBackValidator = (new CallBackValidator(function ($value) use ($existEmailList) {
if (empty($value)) {
return true;
if (in_array($value, $existEmailList)) {
return false;
}))->setErrorMessage('Email already exist!');
$input = $form->input('email');
$input->addValidator($callBackValidator);
'email' => '[email protected]',
$this->assertEquals('Email already exist!', $callBackValidator->getFirstError());