21
21
use Symfony \Component \DependencyInjection \Definition ;
22
22
use Symfony \Component \DependencyInjection \Loader \XmlFileLoader ;
23
23
use Symfony \Component \DependencyInjection \Reference ;
24
+ use Symfony \Component \DependencyInjection \TypedReference ;
24
25
25
26
class AddProcessorsPassTest extends TestCase
26
27
{
@@ -31,19 +32,28 @@ public function testHandlerProcessors()
31
32
$ service = $ container ->getDefinition ('monolog.handler.test ' );
32
33
$ calls = $ service ->getMethodCalls ();
33
34
$ this ->assertCount (1 , $ calls );
34
- $ this ->assertEquals (['pushProcessor ' , [new Reference ('test ' )]], $ calls [0 ]);
35
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('test ' , ' TestClass ' )]], $ calls [0 ]);
35
36
36
37
$ service = $ container ->getDefinition ('handler_test ' );
37
38
$ calls = $ service ->getMethodCalls ();
38
39
$ this ->assertCount (1 , $ calls );
39
- $ this ->assertEquals (['pushProcessor ' , [new Reference ('test2 ' )]], $ calls [0 ]);
40
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('test2 ' , ' TestClass ' )]], $ calls [0 ]);
40
41
41
42
$ service = $ container ->getDefinition ('monolog.handler.priority_test ' );
42
43
$ calls = $ service ->getMethodCalls ();
43
- $ this ->assertCount (3 , $ calls );
44
- $ this ->assertEquals (['pushProcessor ' , [new Reference ('processor-10 ' )]], $ calls [0 ]);
45
- $ this ->assertEquals (['pushProcessor ' , [new Reference ('processor+10 ' )]], $ calls [1 ]);
46
- $ this ->assertEquals (['pushProcessor ' , [new Reference ('processor+20 ' )]], $ calls [2 ]);
44
+ $ this ->assertCount (5 , $ calls );
45
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('processor-10 ' , 'TestClass ' )]], $ calls [0 ]);
46
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('processor+10 ' , 'TestClass ' )]], $ calls [1 ]);
47
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('processor+20 ' , 'TestClass ' )]], $ calls [2 ]);
48
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('processor+20 ' , 'TestClass ' )]], $ calls [2 ]);
49
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('processor+25+35 ' , 'TestClass ' )]], $ calls [3 ]);
50
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('processor+35+25 ' , 'TestClass ' )]], $ calls [4 ]);
51
+
52
+ $ service = $ container ->getDefinition ('monolog.handler.priority_test_2 ' );
53
+ $ calls = $ service ->getMethodCalls ();
54
+ $ this ->assertCount (2 , $ calls );
55
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('processor+35+25 ' , 'TestClass ' )]], $ calls [0 ]);
56
+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('processor+25+35 ' , 'TestClass ' )]], $ calls [1 ]);
47
57
}
48
58
49
59
public function testFailureOnHandlerWithoutPushProcessor ()
@@ -83,10 +93,12 @@ protected function getContainer()
83
93
$ container ->setDefinition ('monolog.handler.test ' , new Definition ('%monolog.handler.console.class% ' , [100 , false ]));
84
94
$ container ->setDefinition ('handler_test ' , new Definition ('%monolog.handler.console.class% ' , [100 , false ]));
85
95
$ container ->setDefinition ('monolog.handler.priority_test ' , new Definition ('%monolog.handler.console.class% ' , [100 , false ]));
96
+ $ container ->setDefinition ('monolog.handler.priority_test_2 ' , new Definition ('%monolog.handler.console.class% ' , [100 , false ]));
86
97
$ container ->setAlias ('monolog.handler.test2 ' , 'handler_test ' );
87
98
$ definition ->addMethodCall ('pushHandler ' , [new Reference ('monolog.handler.test ' )]);
88
99
$ definition ->addMethodCall ('pushHandler ' , [new Reference ('monolog.handler.test2 ' )]);
89
100
$ definition ->addMethodCall ('pushHandler ' , [new Reference ('monolog.handler.priority_test ' )]);
101
+ $ definition ->addMethodCall ('pushHandler ' , [new Reference ('monolog.handler.priority_test_2 ' )]);
90
102
91
103
$ service = new Definition ('TestClass ' , ['false ' , new Reference ('logger ' )]);
92
104
$ service ->addTag ('monolog.processor ' , ['handler ' => 'test ' ]);
@@ -108,6 +120,16 @@ protected function getContainer()
108
120
$ service ->addTag ('monolog.processor ' , ['handler ' => 'priority_test ' , 'priority ' => 20 ]);
109
121
$ container ->setDefinition ('processor+20 ' , $ service );
110
122
123
+ $ service = new Definition ('TestClass ' , ['false ' , new Reference ('logger ' )]);
124
+ $ service ->addTag ('monolog.processor ' , ['handler ' => 'priority_test ' , 'priority ' => 35 ]);
125
+ $ service ->addTag ('monolog.processor ' , ['handler ' => 'priority_test_2 ' , 'priority ' => 25 ]);
126
+ $ container ->setDefinition ('processor+35+25 ' , $ service );
127
+
128
+ $ service = new Definition ('TestClass ' , ['false ' , new Reference ('logger ' )]);
129
+ $ service ->addTag ('monolog.processor ' , ['handler ' => 'priority_test ' , 'priority ' => 25 ]);
130
+ $ service ->addTag ('monolog.processor ' , ['handler ' => 'priority_test_2 ' , 'priority ' => 35 ]);
131
+ $ container ->setDefinition ('processor+25+35 ' , $ service );
132
+
111
133
$ container ->getCompilerPassConfig ()->setOptimizationPasses ([]);
112
134
$ container ->getCompilerPassConfig ()->setRemovingPasses ([]);
113
135
$ container ->addCompilerPass (new AddProcessorsPass ());
0 commit comments