forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			136 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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 Symfony\Component\Validator\Tests;
 | 
						|
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
use Symfony\Component\Validator\ConstraintViolation;
 | 
						|
use Symfony\Component\Validator\ConstraintViolationList;
 | 
						|
 | 
						|
class ConstraintViolationListTest extends 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->assertArrayHasKey(0, $this->list);
 | 
						|
 | 
						|
        unset($this->list[0]);
 | 
						|
 | 
						|
        $this->assertArrayNotHasKey(0, $this->list);
 | 
						|
 | 
						|
        $this->list[10] = $violation;
 | 
						|
 | 
						|
        $this->assertSame($violation, $this->list[10]);
 | 
						|
        $this->assertArrayHasKey(10, $this->list);
 | 
						|
    }
 | 
						|
 | 
						|
    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, $propertyPath, null);
 | 
						|
    }
 | 
						|
}
 |