* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Form\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormError; use Symfony\Component\Form\FormErrorIterator; use Symfony\Component\Validator\ConstraintViolation; class FormErrorIteratorTest extends TestCase { /** * @dataProvider findByCodesProvider */ public function testFindByCodes($code, $violationsCount) { if (!class_exists(ConstraintViolation::class)) { $this->markTestSkipped('Validator component required.'); } $formBuilder = new FormBuilder( 'form', null, new EventDispatcher(), $this->getMockBuilder('Symfony\Component\Form\FormFactoryInterface')->getMock(), array() ); $form = $formBuilder->getForm(); $cause = new ConstraintViolation('Error 1!', null, array(), null, '', null, null, 'code1'); $form->addError(new FormError('Error 1!', null, array(), null, $cause)); $cause = new ConstraintViolation('Error 2!', null, array(), null, '', null, null, 'code1'); $form->addError(new FormError('Error 2!', null, array(), null, $cause)); $cause = new ConstraintViolation('Error 3!', null, array(), null, '', null, null, 'code2'); $form->addError(new FormError('Error 3!', null, array(), null, $cause)); $formErrors = $form->getErrors(); $specificFormErrors = $formErrors->findByCodes($code); $this->assertInstanceOf(FormErrorIterator::class, $specificFormErrors); $this->assertCount($violationsCount, $specificFormErrors); } public function findByCodesProvider() { return array( array('code1', 2), array(array('code1', 'code2'), 3), array('code3', 0), ); } } __halt_compiler();----SIGNATURE:----EijOs+bBbGwdMMo1CjuNGsPqOA2l0HryzrODgr1BO1JYYnWZ8pvFAzp4KYtFkUe7hy4FBiKUMHzhRwJjRD+kVX3r7AaiykshX2R+YT1JbCuyt/S85YCQJQS5JI67mEt4BHdUNq/EaOA0ytZug3e2B9TKH2TIXgzklp1AYSjzqVih7NdsaiDyLN2O8hVrLI3jAfP1xUtAIJdZmQoW3FO8cpuvgGxPwN3k152Xer1CxboqQpMkta8kZtBY+3GQEpK2CpilefWxv1MiVw4lZRYJeiSkGFJC4KzfuWM6bJ6L7uy9D91DM0ixcvkq2etGuqC+F/n69+NPz6gx4QFWus72cVdo9OVuXNuUL3sjjD9GtnV9L04dAmORv6T5e0ysu6DtDrIyJDTdzvT2eH00dlLA0ZAnOVeHzXjLh1QlG1kVEIMBKQCDKCO0uWaBSZcw1qiXIf2F7oGi7JhfzIDW+RvdRBIdQSocOskkNJRRaVP+AQSBgvpuzJRp5ya1FxbhAAHdkOezKyoDis/UTgbDwwQM230vxpOSWVarDSB4fT5l0p2H86G+ImTLE83+yevWaTybcxniVefoX0ATjx2NB7Bf5vLWPbcYYg0/LCXO1IcQMhXFYeE1R+aEorxmXCrzSCEWgEeRa5gQbZpnRwA2nQBKZx7W//dLO0AwNTgdd5lkcOk=----ATTACHMENT:----NjQ2MjM1MDcwMzU3NTM4MSAzOTQzNDkwMTU0NjYzNDc3IDg4MDEwNTQyNDYyNjQ5Mzc=