View source
<?php
namespace Symfony\Component\Validator\Tests;
use Symfony\Component\Validator\ConstraintViolation;
use Symfony\Component\Validator\ConstraintViolationList;
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);
$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, $propertyPath, null);
}
}