You are here

class ConstraintViolationListTest in Plug 7

Hierarchy

  • class \Symfony\Component\Validator\Tests\ConstraintViolationListTest extends \Symfony\Component\Validator\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of ConstraintViolationListTest

File

lib/Symfony/validator/Symfony/Component/Validator/Tests/ConstraintViolationListTest.php, line 17

Namespace

Symfony\Component\Validator\Tests
View source
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, $propertyPath, null);
  }

}

Members