public function testValidateGroupSequenceProvider() {
$entity = new GroupSequenceProviderEntity();
$metadata = new ClassMetadata(get_class($entity));
$metadata
->addPropertyConstraint('firstName', new FailingConstraint(array(
'groups' => 'First',
)));
$metadata
->addPropertyConstraint('lastName', new FailingConstraint(array(
'groups' => 'Second',
)));
$metadata
->setGroupSequenceProvider(true);
$this->metadataFactory
->addMetadata($metadata);
$violations = new ConstraintViolationList();
$violations
->add(new ConstraintViolation('Failed', 'Failed', array(), $entity, 'firstName', ''));
$entity
->setGroups(array(
'First',
));
$result = $this->validator
->validate($entity);
$this
->assertEquals($violations, $result);
$violations = new ConstraintViolationList();
$violations
->add(new ConstraintViolation('Failed', 'Failed', array(), $entity, 'lastName', ''));
$entity
->setGroups(array(
'Second',
));
$result = $this->validator
->validate($entity);
$this
->assertEquals($violations, $result);
$entity
->setGroups(array());
$result = $this->validator
->validate($entity);
$this
->assertEquals(new ConstraintViolationList(), $result);
}