|
13 | 13 |
|
14 | 14 | usePHPUnit\Framework\TestCase; |
15 | 15 | useSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddConstraintValidatorsPass; |
| 16 | +useSymfony\Component\DependencyInjection\ContainerBuilder; |
| 17 | +useSymfony\Component\DependencyInjection\Reference; |
16 | 18 |
|
17 | 19 | class AddConstraintValidatorsPassTestextends TestCase |
18 | 20 | { |
19 | 21 | publicfunctiontestThatConstraintValidatorServicesAreProcessed() |
20 | 22 | { |
21 | | -$services =array( |
22 | | -'my_constraint_validator_service1' =>array(0 =>array('alias' =>'my_constraint_validator_alias1')), |
23 | | -'my_constraint_validator_service2' =>array(), |
24 | | - ); |
25 | | - |
26 | | -$validatorFactoryDefinition =$this->getMockBuilder('Symfony\Component\DependencyInjection\Definition')->getMock(); |
27 | | -$container =$this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')->setMethods(array('findTaggedServiceIds','getDefinition','hasDefinition'))->getMock(); |
28 | | - |
29 | | -$validatorDefinition1 =$this->getMockBuilder('Symfony\Component\DependencyInjection\Definition')->setMethods(array('getClass'))->getMock(); |
30 | | -$validatorDefinition2 =$this->getMockBuilder('Symfony\Component\DependencyInjection\Definition')->setMethods(array('getClass'))->getMock(); |
31 | | - |
32 | | -$validatorDefinition1->expects($this->atLeastOnce()) |
33 | | - ->method('getClass') |
34 | | - ->willReturn('My\Fully\Qualified\Class\Named\Validator1'); |
35 | | -$validatorDefinition2->expects($this->atLeastOnce()) |
36 | | - ->method('getClass') |
37 | | - ->willReturn('My\Fully\Qualified\Class\Named\Validator2'); |
| 23 | +$container =newContainerBuilder(); |
| 24 | +$validatorFactoryDefinition =$container->register('validator.validator_factory') |
| 25 | + ->setArguments(array(newReference('service_container'),array())); |
38 | 26 |
|
39 | | -$container->expects($this->any()) |
40 | | - ->method('getDefinition') |
41 | | - ->with($this->anything()) |
42 | | - ->will($this->returnValueMap(array( |
43 | | -array('my_constraint_validator_service1',$validatorDefinition1), |
44 | | -array('my_constraint_validator_service2',$validatorDefinition2), |
45 | | -array('validator.validator_factory',$validatorFactoryDefinition), |
46 | | - ))); |
| 27 | +$container->register('my_constraint_validator_service1','My\Fully\Qualified\Class\Named\Validator1') |
| 28 | + ->addTag('validator.constraint_validator',array('alias' =>'my_constraint_validator_alias1')); |
| 29 | +$container->register('my_constraint_validator_service2','My\Fully\Qualified\Class\Named\Validator2') |
| 30 | + ->addTag('validator.constraint_validator'); |
47 | 31 |
|
48 | | -$container->expects($this->atLeastOnce()) |
49 | | - ->method('findTaggedServiceIds') |
50 | | - ->will($this->returnValue($services)); |
51 | | -$container->expects($this->atLeastOnce()) |
52 | | - ->method('hasDefinition') |
53 | | - ->with('validator.validator_factory') |
54 | | - ->will($this->returnValue(true)); |
| 32 | +$addConstraintValidatorsPass =newAddConstraintValidatorsPass(); |
| 33 | +$addConstraintValidatorsPass->process($container); |
55 | 34 |
|
56 | | -$validatorFactoryDefinition->expects($this->once()) |
57 | | - ->method('replaceArgument') |
58 | | - ->with(1,array( |
| 35 | +$this->assertEquals( |
| 36 | +array( |
59 | 37 | 'My\Fully\Qualified\Class\Named\Validator1' =>'my_constraint_validator_service1', |
60 | 38 | 'my_constraint_validator_alias1' =>'my_constraint_validator_service1', |
61 | 39 | 'My\Fully\Qualified\Class\Named\Validator2' =>'my_constraint_validator_service2', |
62 | | - )); |
63 | | - |
64 | | -$addConstraintValidatorsPass =newAddConstraintValidatorsPass(); |
65 | | -$addConstraintValidatorsPass->process($container); |
| 40 | + ), |
| 41 | +$validatorFactoryDefinition->getArgument(1) |
| 42 | + ); |
66 | 43 | } |
67 | 44 |
|
68 | 45 | publicfunctiontestThatCompilerPassIsIgnoredIfThereIsNoConstraintValidatorFactoryDefinition() |
|