Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/Validator/Tests/Constraints/AllValidatorTest.php
Строк: 124
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentValidatorTestsConstraints;

use 
SymfonyComponentValidatorConstraintsAll;
use 
SymfonyComponentValidatorConstraintsAllValidator;
use 
SymfonyComponentValidatorConstraintsNotNull;
use 
SymfonyComponentValidatorConstraintsRange;
use 
SymfonyComponentValidatorValidation;

class 
AllValidatorTest extends AbstractConstraintValidatorTest
{
    protected function 
getApiVersion()
    {
        return 
Validation::API_VERSION_2_5;
    }

    protected function 
createValidator()
    {
        return new 
AllValidator();
    }

    public function 
testNullIsValid()
    {
        
$this->validator->validate(null, new All(new Range(array('min' => 4))));

        
$this->assertNoViolation();
    }

    
/**
     * @expectedException SymfonyComponentValidatorExceptionUnexpectedTypeException
     */
    
public function testThrowsExceptionIfNotTraversable()
    {
        
$this->validator->validate('foo.barbar', new All(new Range(array('min' => 4))));
    }

    
/**
     * @dataProvider getValidArguments
     */
    
public function testWalkSingleConstraint($array)
    {
        
$constraint = new Range(array('min' => 4));

        
$i 0;

        foreach (
$array as $key => $value) {
            
$this->expectValidateValueAt($i++, '['.$key.']'$value, array($constraint));
        }

        
$this->validator->validate($array, new All($constraint));

        
$this->assertNoViolation();
    }

    
/**
     * @dataProvider getValidArguments
     */
    
public function testWalkMultipleConstraints($array)
    {
        
$constraint1 = new Range(array('min' => 4));
        
$constraint2 = new NotNull();

        
$constraints = array($constraint1$constraint2);

        
$i 0;

        foreach (
$array as $key => $value) {
            
$this->expectValidateValueAt($i++, '['.$key.']'$value, array($constraint1$constraint2));
        }

        
$this->validator->validate($array, new All($constraints));

        
$this->assertNoViolation();
    }

    public function 
getValidArguments()
    {
        return array(
            array(array(
567)),
            array(new 
ArrayObject(array(567))),
        );
    }
}
Онлайн: 0
Реклама