public function ValidatorTest::testValidateGroupSequenceProvider

File

drupal/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ValidatorTest.php, line 134

Class

ValidatorTest

Namespace

Symfony\Component\Validator\Tests

Code

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);
}