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

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

/**
 * 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
20
		$this->assertFalse($val->validateValue(null));
Alexander Makarov committed
21
		$this->assertFalse($val->validateValue([]));
Suralc committed
22 23 24 25 26 27 28 29
		$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'));
Alexander Makarov committed
30
		$this->assertFalse($val->validateValue([]));
Suralc committed
31 32 33
		$this->assertTrue($val->validateValue(true));
		$this->assertTrue($val->validateValue(false));
	}
34

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