diff --git a/src/Symfony/Component/Validator/Tests/Validator/AbstractValidatorTest.php b/src/Symfony/Component/Validator/Tests/Validator/AbstractValidatorTest.php index a205d3a210..7316d99f2f 100644 --- a/src/Symfony/Component/Validator/Tests/Validator/AbstractValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Validator/AbstractValidatorTest.php @@ -1157,9 +1157,11 @@ abstract class AbstractValidatorTest extends \PHPUnit_Framework_TestCase $this->assertSame('Violation in other group', $violations[0]->getMessage()); } - public function testReplaceDefaultGroupWithObjectFromGroupSequenceProvider() + /** + * @dataProvider getTestReplaceDefaultGroup + */ + public function testReplaceDefaultGroup($sequence, array $assertViolations) { - $sequence = new GroupSequence(array('Group 1', 'Group 2', 'Group 3', 'Entity')); $entity = new GroupSequenceProviderEntity($sequence); $callback1 = function ($value, ExecutionContextInterface $context) { @@ -1189,43 +1191,27 @@ abstract class AbstractValidatorTest extends \PHPUnit_Framework_TestCase $violations = $this->validate($entity, null, 'Default'); /* @var ConstraintViolationInterface[] $violations */ - $this->assertCount(1, $violations); - $this->assertSame('Violation in Group 2', $violations[0]->getMessage()); + $this->assertCount(count($assertViolations), $violations); + foreach ($assertViolations as $key => $message) { + $this->assertSame($message, $violations[$key]->getMessage()); + } } - public function testReplaceDefaultGroupWithArrayFromGroupSequenceProvider() + public function getTestReplaceDefaultGroup() { - $sequence = array('Group 1', 'Group 2', 'Group 3', 'Entity'); - $entity = new GroupSequenceProviderEntity($sequence); - - $callback1 = function ($value, ExecutionContextInterface $context) { - $context->addViolation('Violation in Group 2'); - }; - $callback2 = function ($value, ExecutionContextInterface $context) { - $context->addViolation('Violation in Group 3'); - }; - - $metadata = new ClassMetadata(get_class($entity)); - $metadata->addConstraint(new Callback(array( - 'callback' => function () {}, - 'groups' => 'Group 1', - ))); - $metadata->addConstraint(new Callback(array( - 'callback' => $callback1, - 'groups' => 'Group 2', - ))); - $metadata->addConstraint(new Callback(array( - 'callback' => $callback2, - 'groups' => 'Group 3', - ))); - $metadata->setGroupSequenceProvider(true); - - $this->metadataFactory->addMetadata($metadata); - - $violations = $this->validate($entity, null, 'Default'); - - /* @var ConstraintViolationInterface[] $violations */ - $this->assertCount(1, $violations); - $this->assertSame('Violation in Group 2', $violations[0]->getMessage()); + return array( + array( + 'sequence' => new GroupSequence(array('Group 1', 'Group 2', 'Group 3', 'Entity')), + 'assertViolations' => array( + 'Violation in Group 2', + ), + ), + array( + 'sequence' => array('Group 1', 'Group 2', 'Group 3', 'Entity'), + 'assertViolations' => array( + 'Violation in Group 2', + ), + ), + ); } }