123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?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);
- }
- }
|