Skip to content

Instantly share code, notes, and snippets.

@cristianoc72
Created June 23, 2013 14:20

Revisions

  1. cristianoc72 created this gist Jun 23, 2013.
    52 changes: 52 additions & 0 deletions violationsToArrayFunctionTest.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,52 @@
    <?php

    require 'violations_to_array.php';

    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 testToArray()
    {
    $this->list = new ConstraintViolationList(array(
    $this->getViolation('Error 1', 'Root', 'foo'),
    $this->getViolation('Error 2', 'Root', 'foo'),
    $this->getViolation('Error 3', 'Root', 'bar'),
    $this->getViolation('Error 4', 'Root 2', 'foo'),
    $this->getViolation('Error 5', 'Root 3', 'baz'),
    ));

    $expectedNoFilters = array(
    'foo' => array('Error 1', 'Error 2', 'Error 4'),
    'bar' => array('Error 3'),
    'baz' => array('Error 5')
    );
    $this->assertEquals($expectedNoFilters, violations_to_array($this->list));

    $expectedFilterPropertyPath = array(
    'foo' => array('Error 1', 'Error 2', 'Error 4')
    );
    $this->assertEquals($expectedFilterPropertyPath, violations_to_array($this->list, 'foo'));

    //Wrong value causes to return empty array
    $this->assertEquals(array(), violations_to_array($this->list, 'wrong'));
    }

    protected function getViolation($message, $root = null, $propertyPath = null)
    {
    return new ConstraintViolation($message, $message, array(), $root, $propertyPath, null);
    }
    }