2121use Symfony \Component \DependencyInjection \Definition ;
2222use Symfony \Component \DependencyInjection \Loader \XmlFileLoader ;
2323use Symfony \Component \DependencyInjection \Reference ;
24+ use Symfony \Component \DependencyInjection \TypedReference ;
2425
2526class AddProcessorsPassTest extends TestCase
2627{
@@ -31,19 +32,28 @@ public function testHandlerProcessors()
3132 $ service = $ container ->getDefinition ('monolog.handler.test ' );
3233 $ calls = $ service ->getMethodCalls ();
3334 $ this ->assertCount (1 , $ calls );
34- $ this ->assertEquals (['pushProcessor ' , [new Reference ('test ' )]], $ calls [0 ]);
35+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('test ' , ' TestClass ' )]], $ calls [0 ]);
3536
3637 $ service = $ container ->getDefinition ('handler_test ' );
3738 $ calls = $ service ->getMethodCalls ();
3839 $ this ->assertCount (1 , $ calls );
39- $ this ->assertEquals (['pushProcessor ' , [new Reference ('test2 ' )]], $ calls [0 ]);
40+ $ this ->assertEquals (['pushProcessor ' , [new TypedReference ('test2 ' , ' TestClass ' )]], $ calls [0 ]);
4041
4142 $ service = $ container ->getDefinition ('monolog.handler.priority_test ' );
4243 $ 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 ]);
4757 }
4858
4959 public function testFailureOnHandlerWithoutPushProcessor ()
@@ -83,10 +93,12 @@ protected function getContainer()
8393 $ container ->setDefinition ('monolog.handler.test ' , new Definition ('%monolog.handler.console.class% ' , [100 , false ]));
8494 $ container ->setDefinition ('handler_test ' , new Definition ('%monolog.handler.console.class% ' , [100 , false ]));
8595 $ 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 ]));
8697 $ container ->setAlias ('monolog.handler.test2 ' , 'handler_test ' );
8798 $ definition ->addMethodCall ('pushHandler ' , [new Reference ('monolog.handler.test ' )]);
8899 $ definition ->addMethodCall ('pushHandler ' , [new Reference ('monolog.handler.test2 ' )]);
89100 $ definition ->addMethodCall ('pushHandler ' , [new Reference ('monolog.handler.priority_test ' )]);
101+ $ definition ->addMethodCall ('pushHandler ' , [new Reference ('monolog.handler.priority_test_2 ' )]);
90102
91103 $ service = new Definition ('TestClass ' , ['false ' , new Reference ('logger ' )]);
92104 $ service ->addTag ('monolog.processor ' , ['handler ' => 'test ' ]);
@@ -108,6 +120,16 @@ protected function getContainer()
108120 $ service ->addTag ('monolog.processor ' , ['handler ' => 'priority_test ' , 'priority ' => 20 ]);
109121 $ container ->setDefinition ('processor+20 ' , $ service );
110122
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+
111133 $ container ->getCompilerPassConfig ()->setOptimizationPasses ([]);
112134 $ container ->getCompilerPassConfig ()->setRemovingPasses ([]);
113135 $ container ->addCompilerPass (new AddProcessorsPass ());
0 commit comments