class TypeValidatorTest in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/symfony/validator/Tests/Constraints/TypeValidatorTest.php \Symfony\Component\Validator\Tests\Constraints\TypeValidatorTest
Hierarchy
- class \Symfony\Component\Validator\Tests\Constraints\AbstractConstraintValidatorTest extends \Symfony\Component\Validator\Tests\Constraints\PHPUnit_Framework_TestCase
- class \Symfony\Component\Validator\Tests\Constraints\TypeValidatorTest
Expanded class hierarchy of TypeValidatorTest
File
- vendor/
symfony/ validator/ Tests/ Constraints/ TypeValidatorTest.php, line 18
Namespace
Symfony\Component\Validator\Tests\ConstraintsView source
class TypeValidatorTest extends AbstractConstraintValidatorTest {
protected static $file;
protected function getApiVersion() {
return Validation::API_VERSION_2_5;
}
protected function createValidator() {
return new TypeValidator();
}
public function testNullIsValid() {
$constraint = new Type(array(
'type' => 'integer',
));
$this->validator
->validate(null, $constraint);
$this
->assertNoViolation();
}
public function testEmptyIsValidIfString() {
$constraint = new Type(array(
'type' => 'string',
));
$this->validator
->validate('', $constraint);
$this
->assertNoViolation();
}
public function testEmptyIsInvalidIfNoString() {
$constraint = new Type(array(
'type' => 'integer',
'message' => 'myMessage',
));
$this->validator
->validate('', $constraint);
$this
->buildViolation('myMessage')
->setParameter('{{ value }}', '""')
->setParameter('{{ type }}', 'integer')
->assertRaised();
}
/**
* @dataProvider getValidValues
*/
public function testValidValues($value, $type) {
$constraint = new Type(array(
'type' => $type,
));
$this->validator
->validate($value, $constraint);
$this
->assertNoViolation();
}
public function getValidValues() {
$object = new \stdClass();
$file = $this
->createFile();
return array(
array(
true,
'Boolean',
),
array(
false,
'Boolean',
),
array(
true,
'boolean',
),
array(
false,
'boolean',
),
array(
true,
'bool',
),
array(
false,
'bool',
),
array(
0,
'numeric',
),
array(
'0',
'numeric',
),
array(
1.5,
'numeric',
),
array(
'1.5',
'numeric',
),
array(
0,
'integer',
),
array(
1.5,
'float',
),
array(
'12345',
'string',
),
array(
array(),
'array',
),
array(
$object,
'object',
),
array(
$object,
'stdClass',
),
array(
$file,
'resource',
),
array(
'12345',
'digit',
),
array(
'12a34',
'alnum',
),
array(
'abcde',
'alpha',
),
array(
"\n\r\t",
'cntrl',
),
array(
'arf12',
'graph',
),
array(
'abcde',
'lower',
),
array(
'ABCDE',
'upper',
),
array(
'arf12',
'print',
),
array(
'*&$()',
'punct',
),
array(
"\n\r\t",
'space',
),
array(
'AB10BC99',
'xdigit',
),
);
}
/**
* @dataProvider getInvalidValues
*/
public function testInvalidValues($value, $type, $valueAsString) {
$constraint = new Type(array(
'type' => $type,
'message' => 'myMessage',
));
$this->validator
->validate($value, $constraint);
$this
->buildViolation('myMessage')
->setParameter('{{ value }}', $valueAsString)
->setParameter('{{ type }}', $type)
->assertRaised();
}
public function getInvalidValues() {
$object = new \stdClass();
$file = $this
->createFile();
return array(
array(
'foobar',
'numeric',
'"foobar"',
),
array(
'foobar',
'boolean',
'"foobar"',
),
array(
'0',
'integer',
'"0"',
),
array(
'1.5',
'float',
'"1.5"',
),
array(
12345,
'string',
'12345',
),
array(
$object,
'boolean',
'object',
),
array(
$object,
'numeric',
'object',
),
array(
$object,
'integer',
'object',
),
array(
$object,
'float',
'object',
),
array(
$object,
'string',
'object',
),
array(
$object,
'resource',
'object',
),
array(
$file,
'boolean',
'resource',
),
array(
$file,
'numeric',
'resource',
),
array(
$file,
'integer',
'resource',
),
array(
$file,
'float',
'resource',
),
array(
$file,
'string',
'resource',
),
array(
$file,
'object',
'resource',
),
array(
'12a34',
'digit',
'"12a34"',
),
array(
'1a#23',
'alnum',
'"1a#23"',
),
array(
'abcd1',
'alpha',
'"abcd1"',
),
array(
"\nabc",
'cntrl',
"\"\nabc\"",
),
array(
"abc\n",
'graph',
"\"abc\n\"",
),
array(
'abCDE',
'lower',
'"abCDE"',
),
array(
'ABcde',
'upper',
'"ABcde"',
),
array(
"\nabc",
'print',
"\"\nabc\"",
),
array(
'abc&$!',
'punct',
'"abc&$!"',
),
array(
"\nabc",
'space',
"\"\nabc\"",
),
array(
'AR1012',
'xdigit',
'"AR1012"',
),
);
}
protected function createFile() {
if (!static::$file) {
static::$file = fopen(__FILE__, 'r');
}
return static::$file;
}
public static function tearDownAfterClass() {
if (static::$file) {
fclose(static::$file);
static::$file = null;
}
}
}