Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/Validator/Tests/ConstraintViolationListTest.php
Строк: 128
<?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 SymfonyComponentValidatorTests;

use 
SymfonyComponentValidatorConstraintViolation;
use 
SymfonyComponentValidatorConstraintViolationList;

class 
ConstraintViolationListTest extends PHPUnit_Framework_TestCase
{
    protected 
$list;

    protected function 
setUp()
    {
        
$this->list = new ConstraintViolationList();
    }

    protected function 
tearDown()
    {
        
$this->list null;
    }

    public function 
testInit()
    {
        
$this->assertCount(0$this->list);
    }

    public function 
testInitWithViolations()
    {
        
$violation $this->getViolation('Error');
        
$this->list = new ConstraintViolationList(array($violation));

        
$this->assertCount(1$this->list);
        
$this->assertSame($violation$this->list[0]);
    }

    public function 
testAdd()
    {
        
$violation $this->getViolation('Error');
        
$this->list->add($violation);

        
$this->assertCount(1$this->list);
        
$this->assertSame($violation$this->list[0]);
    }

    public function 
testAddAll()
    {
        
$violations = array(
            
10 => $this->getViolation('Error 1'),
            
20 => $this->getViolation('Error 2'),
            
30 => $this->getViolation('Error 3'),
        );
        
$otherList = new ConstraintViolationList($violations);
        
$this->list->addAll($otherList);

        
$this->assertCount(3$this->list);

        
$this->assertSame($violations[10], $this->list[0]);
        
$this->assertSame($violations[20], $this->list[1]);
        
$this->assertSame($violations[30], $this->list[2]);
    }

    public function 
testIterator()
    {
        
$violations = array(
            
10 => $this->getViolation('Error 1'),
            
20 => $this->getViolation('Error 2'),
            
30 => $this->getViolation('Error 3'),
        );

        
$this->list = new ConstraintViolationList($violations);

        
// indices are reset upon adding -> array_values()
        
$this->assertSame(array_values($violations), iterator_to_array($this->list));
    }

    public function 
testArrayAccess()
    {
        
$violation $this->getViolation('Error');
        
$this->list[] = $violation;

        
$this->assertSame($violation$this->list[0]);
        
$this->assertTrue(isset($this->list[0]));

        unset(
$this->list[0]);

        
$this->assertFalse(isset($this->list[0]));

        
$this->list[10] = $violation;

        
$this->assertSame($violation$this->list[10]);
        
$this->assertTrue(isset($this->list[10]));
    }

    public function 
testToString()
    {
        
$this->list = new ConstraintViolationList(array(
            
$this->getViolation('Error 1''Root'),
            
$this->getViolation('Error 2''Root''foo.bar'),
            
$this->getViolation('Error 3''Root''[baz]'),
            
$this->getViolation('Error 4''''foo.bar'),
            
$this->getViolation('Error 5''''[baz]'),
        ));

        
$expected = <<<EOF
Root:
    Error 1
Root.foo.bar:
    Error 2
Root[baz]:
    Error 3
foo.bar:
    Error 4
[baz]:
    Error 5

EOF;

        
$this->assertEquals($expected, (string) $this->list);
    }

    protected function 
getViolation($message$root null$propertyPath null)
    {
        return new 
ConstraintViolation($message$message, array(), $root$propertyPathnull);
    }
}
Онлайн: 0
Реклама