Suralc
12 years ago
3 changed files with 105 additions and 0 deletions
@ -0,0 +1,53 @@
|
||||
<?php |
||||
namespace yiiunit\framework\validators; |
||||
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')); |
||||
$this->assertTrue($val->validateValue(null)); |
||||
$this->assertTrue($val->validateValue(array())); |
||||
$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)); |
||||
} |
||||
|
||||
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'); |
||||
$this->assertFalse(isset($obj->errors['attrA'])); |
||||
$val->validateAttribute($obj, 'attrC'); |
||||
$this->assertFalse(isset($obj->errors['attrC'])); |
||||
$val->strict = true; |
||||
$val->validateAttribute($obj, 'attrB'); |
||||
$this->assertFalse(isset($obj->errors['attrB'])); |
||||
$val->validateAttribute($obj, 'attrD'); |
||||
$this->assertTrue(isset($obj->errors['attrD'])); |
||||
} |
||||
} |
@ -0,0 +1,32 @@
|
||||
<?php |
||||
namespace yiiunit\framework\validators; |
||||
use yii\validators\DefaultValueValidator; |
||||
use yiiunit\TestCase; |
||||
|
||||
/** |
||||
* DefaultValueValidatorTest |
||||
*/ |
||||
class DefaultValueValidatorTest extends TestCase |
||||
{ |
||||
public function testValidateAttribute() |
||||
{ |
||||
$val = new DefaultValueValidator; |
||||
$val->value = 'test_value'; |
||||
$obj = new \stdclass; |
||||
$obj->attrA = 'attrA'; |
||||
$obj->attrB = null; |
||||
$obj->attrC = ''; |
||||
// original values to chek which attritubes where modified |
||||
$objB = clone $obj; |
||||
$val->validateAttribute($obj, 'attrB'); |
||||
$this->assertEquals($val->value, $obj->attrB); |
||||
$this->assertEquals($objB->attrA, $obj->attrA); |
||||
$val->value = 'new_test_value'; |
||||
$obj = clone $objB; // get clean object |
||||
$val->validateAttribute($obj, 'attrC'); |
||||
$this->assertEquals('new_test_value', $obj->attrC); |
||||
$this->assertEquals($objB->attrA, $obj->attrA); |
||||
$val->validateAttribute($obj, 'attrA'); |
||||
$this->assertEquals($objB->attrA, $obj->attrA); |
||||
} |
||||
} |
@ -0,0 +1,20 @@
|
||||
<?php |
||||
|
||||
namespace yiiunit\framework\validators; |
||||
|
||||
/** |
||||
* @codeCoverageIgnore |
||||
*/ |
||||
class FakedValidationModel |
||||
{ |
||||
public $errors = array(); |
||||
public function getAttributeLabel($attr) |
||||
{ |
||||
return 'Attr-Label: '.$attr; |
||||
} |
||||
|
||||
public function addError($attribute, $message) |
||||
{ |
||||
$this->errors[$attribute] = $message; |
||||
} |
||||
} |
Loading…
Reference in new issue