Security update for Core, with self-updated composer
[yaffs-website] / vendor / symfony / validator / Tests / Validator / RecursiveValidatorTest.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\Validator\Tests\Validator;
13
14 use Symfony\Component\Translation\IdentityTranslator;
15 use Symfony\Component\Validator\ConstraintValidatorFactory;
16 use Symfony\Component\Validator\Context\ExecutionContextFactory;
17 use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface;
18 use Symfony\Component\Validator\Tests\Constraints\Fixtures\ChildA;
19 use Symfony\Component\Validator\Tests\Constraints\Fixtures\ChildB;
20 use Symfony\Component\Validator\Tests\Fixtures\Entity;
21 use Symfony\Component\Validator\Validator\RecursiveValidator;
22
23 class RecursiveValidatorTest extends AbstractTest
24 {
25     protected function createValidator(MetadataFactoryInterface $metadataFactory, array $objectInitializers = array())
26     {
27         $translator = new IdentityTranslator();
28         $translator->setLocale('en');
29
30         $contextFactory = new ExecutionContextFactory($translator);
31         $validatorFactory = new ConstraintValidatorFactory();
32
33         return new RecursiveValidator($contextFactory, $metadataFactory, $validatorFactory, $objectInitializers);
34     }
35
36     public function testEmptyGroupsArrayDoesNotTriggerDeprecation()
37     {
38         $entity = new Entity();
39         $childA = new ChildA();
40         $childB = new ChildB();
41         $childA->name = false;
42         $childB->name = 'fake';
43         $entity->childA = array($childA);
44         $entity->childB = array($childB);
45         $validatorContext = $this->getMockBuilder('Symfony\Component\Validator\Validator\ContextualValidatorInterface')->getMock();
46         $validatorContext
47             ->expects($this->once())
48             ->method('validate')
49             ->with($entity, null, array())
50             ->willReturnSelf();
51
52         $validator = $this
53             ->getMockBuilder('Symfony\Component\Validator\Validator\RecursiveValidator')
54             ->disableOriginalConstructor()
55             ->setMethods(array('startContext'))
56             ->getMock();
57         $validator
58             ->expects($this->once())
59             ->method('startContext')
60             ->willReturn($validatorContext);
61
62         $validator->validate($entity, null, array());
63     }
64
65     public function testRelationBetweenChildAAndChildB()
66     {
67         $entity = new Entity();
68         $childA = new ChildA();
69         $childB = new ChildB();
70
71         $childA->childB = $childB;
72         $childB->childA = $childA;
73
74         $childA->name = false;
75         $childB->name = 'fake';
76         $entity->childA = array($childA);
77         $entity->childB = array($childB);
78
79         $validatorContext = $this->getMockBuilder('Symfony\Component\Validator\Validator\ContextualValidatorInterface')->getMock();
80         $validatorContext
81             ->expects($this->once())
82             ->method('validate')
83             ->with($entity, null, array())
84             ->willReturnSelf();
85
86         $validator = $this
87             ->getMockBuilder('Symfony\Component\Validator\Validator\RecursiveValidator')
88             ->disableOriginalConstructor()
89             ->setMethods(array('startContext'))
90             ->getMock();
91         $validator
92             ->expects($this->once())
93             ->method('startContext')
94             ->willReturn($validatorContext);
95
96         $validator->validate($entity, null, array());
97     }
98 }