|
15 | 15 |
|
16 | 16 | class ValidatorExtensionTest extends \PHPUnit_Framework_TestCase
|
17 | 17 | {
|
18 |
| - public function testValidatorInterfaceSinceSymfony25() |
| 18 | + public function test2Dot5ValidationApi() |
19 | 19 | {
|
20 |
| - $classMetaData = $this->createClassMetaDataMock(); |
21 |
| - |
22 |
| - // Mock of ValidatorInterface since apiVersion 2.5 |
23 | 20 | $validator = $this->getMock('Symfony\Component\Validator\Validator\ValidatorInterface');
|
| 21 | + $metadata = $this->getMockBuilder('Symfony\Component\Validator\Mapping\ClassMetadata') |
| 22 | + ->disableOriginalConstructor() |
| 23 | + ->getMock(); |
24 | 24 |
|
25 |
| - $validator |
26 |
| - ->expects($this->once()) |
| 25 | + $validator->expects($this->once()) |
27 | 26 | ->method('getMetadataFor')
|
28 | 27 | ->with($this->identicalTo('Symfony\Component\Form\Form'))
|
29 |
| - ->will($this->returnValue($classMetaData)) |
30 |
| - ; |
| 28 | + ->will($this->returnValue($metadata)); |
| 29 | + |
| 30 | + // Verify that the constraints are added |
| 31 | + $metadata->expects($this->once()) |
| 32 | + ->method('addConstraint') |
| 33 | + ->with($this->isInstanceOf('Symfony\Component\Form\Extension\Validator\Constraints\Form')); |
| 34 | + |
| 35 | + $metadata->expects($this->once()) |
| 36 | + ->method('addPropertyConstraint') |
| 37 | + ->with('children', $this->isInstanceOf('Symfony\Component\Validator\Constraints\Valid')); |
31 | 38 |
|
32 |
| - $validatorExtension = new ValidatorExtension($validator); |
33 |
| - $this->assertAttributeSame($validator, 'validator', $validatorExtension); |
| 39 | + $extension = new ValidatorExtension($validator); |
| 40 | + $guesser = $extension->loadTypeGuesser(); |
| 41 | + |
| 42 | + $this->assertInstanceOf('Symfony\Component\Form\Extension\Validator\ValidatorTypeGuesser', $guesser); |
34 | 43 | }
|
35 | 44 |
|
36 |
| - public function testValidatorInterfaceUntilSymfony24() |
| 45 | + public function test2Dot4ValidationApi() |
37 | 46 | {
|
38 |
| - $classMetaData = $this->createClassMetaDataMock(); |
| 47 | + $factory = $this->getMock('Symfony\Component\Validator\MetadataFactoryInterface'); |
| 48 | + $validator = $this->getMock('Symfony\Component\Validator\ValidatorInterface'); |
| 49 | + $metadata = $this->getMockBuilder('Symfony\Component\Validator\Mapping\ClassMetadata') |
| 50 | + ->disableOriginalConstructor() |
| 51 | + ->getMock(); |
39 | 52 |
|
40 |
| - $metaDataFactory = $this->getMock('Symfony\Component\Validator\MetadataFactoryInterface'); |
| 53 | + $validator->expects($this->any()) |
| 54 | + ->method('getMetadataFactory') |
| 55 | + ->will($this->returnValue($factory)); |
41 | 56 |
|
42 |
| - $metaDataFactory |
43 |
| - ->expects($this->once()) |
| 57 | + $factory->expects($this->once()) |
44 | 58 | ->method('getMetadataFor')
|
45 | 59 | ->with($this->identicalTo('Symfony\Component\Form\Form'))
|
46 |
| - ->will($this->returnValue($classMetaData)) |
47 |
| - ; |
| 60 | + ->will($this->returnValue($metadata)); |
48 | 61 |
|
49 |
| - // Mock of ValidatorInterface until apiVersion 2.4 |
50 |
| - $validator = $this->getMock('Symfony\Component\Validator\ValidatorInterface'); |
| 62 | + // Verify that the constraints are added |
| 63 | + $metadata->expects($this->once()) |
| 64 | + ->method('addConstraint') |
| 65 | + ->with($this->isInstanceOf('Symfony\Component\Form\Extension\Validator\Constraints\Form')); |
51 | 66 |
|
52 |
| - $validator |
53 |
| - ->expects($this->once()) |
54 |
| - ->method('getMetadataFactory') |
55 |
| - ->will($this->returnValue($metaDataFactory)) |
56 |
| - ; |
| 67 | + $metadata->expects($this->once()) |
| 68 | + ->method('addPropertyConstraint') |
| 69 | + ->with('children', $this->isInstanceOf('Symfony\Component\Validator\Constraints\Valid')); |
57 | 70 |
|
58 |
| - $validatorExtension = new ValidatorExtension($validator); |
59 |
| - $this->assertAttributeSame($validator, 'validator', $validatorExtension); |
| 71 | + $extension = new ValidatorExtension($validator); |
| 72 | + $guesser = $extension->loadTypeGuesser(); |
| 73 | + |
| 74 | + $this->assertInstanceOf('Symfony\Component\Form\Extension\Validator\ValidatorTypeGuesser', $guesser); |
60 | 75 | }
|
61 | 76 |
|
62 | 77 | /**
|
63 |
| - * @expectedException \InvalidArgumentException |
| 78 | + * @expectedException \Symfony\Component\Form\Exception\UnexpectedTypeException |
64 | 79 | */
|
65 | 80 | public function testInvalidValidatorInterface()
|
66 | 81 | {
|
67 | 82 | new ValidatorExtension(null);
|
68 | 83 | }
|
69 |
| - |
70 |
| - /** |
71 |
| - * @return mixed |
72 |
| - */ |
73 |
| - private function createClassMetaDataMock() |
74 |
| - { |
75 |
| - $classMetaData = $this->getMockBuilder('Symfony\Component\Validator\Mapping\ClassMetadata') |
76 |
| - ->disableOriginalConstructor() |
77 |
| - ->getMock(); |
78 |
| - |
79 |
| - $classMetaData |
80 |
| - ->expects($this->once()) |
81 |
| - ->method('addConstraint') |
82 |
| - ->with($this->isInstanceOf('Symfony\Component\Form\Extension\Validator\Constraints\Form')); |
83 |
| - $classMetaData |
84 |
| - ->expects($this->once()) |
85 |
| - ->method('addPropertyConstraint') |
86 |
| - ->with( |
87 |
| - $this->identicalTo('children'), |
88 |
| - $this->isInstanceOf('Symfony\Component\Validator\Constraints\Valid') |
89 |
| - ); |
90 |
| - |
91 |
| - return $classMetaData; |
92 |
| - } |
93 | 84 | }
|
0 commit comments