You are here

public function Abstract2Dot5ApiTest::testReferenceTraversalEnabledOnReferenceDisabledOnClass in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 vendor/symfony/validator/Tests/Validator/Abstract2Dot5ApiTest.php \Symfony\Component\Validator\Tests\Validator\Abstract2Dot5ApiTest::testReferenceTraversalEnabledOnReferenceDisabledOnClass()

File

vendor/symfony/validator/Tests/Validator/Abstract2Dot5ApiTest.php, line 460

Class

Abstract2Dot5ApiTest
Verifies that a validator satisfies the API of Symfony 2.5+.

Namespace

Symfony\Component\Validator\Tests\Validator

Code

public function testReferenceTraversalEnabledOnReferenceDisabledOnClass() {
  $test = $this;
  $entity = new Entity();
  $entity->reference = new \ArrayIterator(array(
    'key' => new Reference(),
  ));
  $callback = function ($value, ExecutionContextInterface $context) use ($test) {
    $test
      ->fail('Should not be called');
  };
  $traversableMetadata = new ClassMetadata('ArrayIterator');
  $traversableMetadata
    ->addConstraint(new Traverse(false));
  $this->metadataFactory
    ->addMetadata($traversableMetadata);
  $this->referenceMetadata
    ->addConstraint(new Callback(array(
    'callback' => $callback,
    'groups' => 'Group',
  )));
  $this->metadata
    ->addPropertyConstraint('reference', new Valid(array(
    'traverse' => true,
  )));
  $violations = $this
    ->validate($entity, new Valid(), 'Group');

  /* @var ConstraintViolationInterface[] $violations */
  $this
    ->assertCount(0, $violations);
}