[Validator] Allow validating multiple groups in one GroupSequence step

This commit is contained in:
Jáchym Toušek 2016-09-19 21:26:49 +02:00
parent 3847badd47
commit 31b609e582
3 changed files with 16 additions and 2 deletions

View File

@ -57,7 +57,7 @@ class GroupSequence
/**
* The groups in the sequence.
*
* @var string[]|GroupSequence[]
* @var string[]|array[]|GroupSequence[]
*/
public $groups;

View File

@ -1212,6 +1212,20 @@ abstract class AbstractValidatorTest extends \PHPUnit_Framework_TestCase
'Violation in Group 2',
),
),
array(
'sequence' => new GroupSequence(array('Group 1', array('Group 2', 'Group 3'), 'Entity')),
'assertViolations' => array(
'Violation in Group 2',
'Violation in Group 3',
),
),
array(
'sequence' => array('Group 1', array('Group 2', 'Group 3'), 'Entity'),
'assertViolations' => array(
'Violation in Group 2',
'Violation in Group 3',
),
),
);
}
}

View File

@ -773,7 +773,7 @@ class RecursiveContextualValidator implements ContextualValidatorInterface
$cascadedGroups = $cascadedGroup ? array($cascadedGroup) : null;
foreach ($groupSequence->groups as $groupInSequence) {
$groups = array($groupInSequence);
$groups = (array) $groupInSequence;
if ($metadata instanceof ClassMetadataInterface) {
$this->validateClassNode(