BooleanValidatorTest.php 1.68 KB
Newer Older
Suralc committed
1 2
<?php
namespace yiiunit\framework\validators;
3

Suralc committed
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use yiiunit\framework\validators\FakedValidationModel;
use yii\validators\BooleanValidator;
use yiiunit\TestCase;

require_once __DIR__ . '/FakedValidationModel.php';
/**
 * BooleanValidatorTest
 */
class BooleanValidatorTest extends TestCase
{
	public function testValidateValue()
	{
		$val = new BooleanValidator;
		$this->assertTrue($val->validateValue(true));
		$this->assertTrue($val->validateValue(false));
		$this->assertTrue($val->validateValue('0'));
		$this->assertTrue($val->validateValue('1'));
Suralc committed
21 22
		$this->assertFalse($val->validateValue(null));
		$this->assertFalse($val->validateValue(array()));
Suralc committed
23 24 25 26 27 28 29 30 31 32 33 34
		$val->strict = true;
		$this->assertTrue($val->validateValue('0'));
		$this->assertTrue($val->validateValue('1'));
		$this->assertFalse($val->validateValue(true));
		$this->assertFalse($val->validateValue(false));
		$val->trueValue = true;
		$val->falseValue = false;
		$this->assertFalse($val->validateValue('0'));
		$this->assertFalse($val->validateValue(array()));
		$this->assertTrue($val->validateValue(true));
		$this->assertTrue($val->validateValue(false));
	}
35

Suralc committed
36 37 38 39 40 41 42 43 44
	public function testValidateAttributeAndError()
	{
		$obj = new FakedValidationModel;
		$obj->attrA = true;
		$obj->attrB = '1';
		$obj->attrC = '0';
		$obj->attrD = array();
		$val = new BooleanValidator;
		$val->validateAttribute($obj, 'attrA');
45
		$this->assertFalse($obj->hasErrors('attrA'));
Suralc committed
46
		$val->validateAttribute($obj, 'attrC');
47
		$this->assertFalse($obj->hasErrors('attrC'));
Suralc committed
48 49
		$val->strict = true;
		$val->validateAttribute($obj, 'attrB');
50
		$this->assertFalse($obj->hasErrors('attrB'));
Suralc committed
51
		$val->validateAttribute($obj, 'attrD');
52
		$this->assertTrue($obj->hasErrors('attrD'));
Suralc committed
53 54
	}
}