1414use PHPUnit \Framework \TestCase ;
1515use Symfony \Bridge \Monolog \Processor \RouteProcessor ;
1616use Symfony \Component \HttpFoundation \ParameterBag ;
17+ use Symfony \Component \HttpFoundation \Request ;
1718use Symfony \Component \HttpKernel \Event \FinishRequestEvent ;
1819use Symfony \Component \HttpKernel \Event \GetResponseEvent ;
1920
2021class RouteProcessorTest extends TestCase
2122{
22- const TEST_CONTROLLER = 'App\Controller\SomeController::someMethod ' ;
23- const TEST_ROUTE = 'someRouteName ' ;
24- const TEST_PARAMS = array ('param1 ' => 'value1 ' );
23+ private const TEST_CONTROLLER = 'App\Controller\SomeController::someMethod ' ;
24+ private const TEST_ROUTE = 'someRouteName ' ;
25+ private const TEST_PARAMS = array ('param1 ' => 'value1 ' );
2526
2627 public function testProcessor ()
2728 {
29+ $ request = $ this ->mockFilledRequest ();
2830 $ processor = new RouteProcessor ();
29- $ processor ->onKernelRequest ($ this ->getFilledRequestEvent ( ));
31+ $ processor ->addRouteData ($ this ->mockGetResponseEvent ( $ request ));
3032
3133 $ record = $ processor (array ('extra ' => array ()));
3234
@@ -40,8 +42,9 @@ public function testProcessor()
4042
4143 public function testProcessorWithoutParams ()
4244 {
45+ $ request = $ this ->mockFilledRequest ();
4346 $ processor = new RouteProcessor (false );
44- $ processor ->onKernelRequest ($ this ->getFilledRequestEvent ( ));
47+ $ processor ->addRouteData ($ this ->mockGetResponseEvent ( $ request ));
4548
4649 $ record = $ processor (array ('extra ' => array ()));
4750
@@ -56,10 +59,12 @@ public function testProcessorWithoutParams()
5659 public function testProcessorWithSubRequests ()
5760 {
5861 $ controllerFromSubRequest = 'OtherController::otherMethod ' ;
62+ $ mainRequest = $ this ->mockFilledRequest ();
63+ $ subRequest = $ this ->mockFilledRequest ($ controllerFromSubRequest );
5964
6065 $ processor = new RouteProcessor (false );
61- $ processor ->onKernelRequest ($ this ->getFilledRequestEvent ( ));
62- $ processor ->onKernelRequest ($ this ->getFilledRequestEvent ( $ controllerFromSubRequest ));
66+ $ processor ->addRouteData ($ this ->mockGetResponseEvent ( $ mainRequest ));
67+ $ processor ->addRouteData ($ this ->mockGetResponseEvent ( $ subRequest ));
6368
6469 $ record = $ processor (array ('extra ' => array ()));
6570
@@ -75,14 +80,15 @@ public function testProcessorWithSubRequests()
7580 );
7681 }
7782
78- public function testFinishRequestRemovesLastEntry ()
83+ public function testFinishRequestRemovesRelatedEntry ()
7984 {
80- $ controllerFromSubRequest = 'OtherController::otherMethod ' ;
85+ $ mainRequest = $ this ->mockFilledRequest ();
86+ $ subRequest = $ this ->mockFilledRequest ('OtherController::otherMethod ' );
8187
8288 $ processor = new RouteProcessor (false );
83- $ processor ->onKernelRequest ($ this ->getFilledRequestEvent ( ));
84- $ processor ->onKernelRequest ($ this ->getFilledRequestEvent ( $ controllerFromSubRequest ));
85- $ processor ->onKernelFinishRequest ($ this ->getFinishRequestEvent ( ));
89+ $ processor ->addRouteData ($ this ->mockGetResponseEvent ( $ mainRequest ));
90+ $ processor ->addRouteData ($ this ->mockGetResponseEvent ( $ subRequest ));
91+ $ processor ->removeRouteData ($ this ->mockFinishRequestEvent ( $ subRequest ));
8692 $ record = $ processor (array ('extra ' => array ()));
8793
8894 $ this ->assertArrayHasKey ('requests ' , $ record ['extra ' ]);
@@ -92,16 +98,17 @@ public function testFinishRequestRemovesLastEntry()
9298 $ record ['extra ' ]['requests ' ][0 ]
9399 );
94100
95- $ processor ->onKernelFinishRequest ($ this ->getFinishRequestEvent ( ));
101+ $ processor ->removeRouteData ($ this ->mockFinishRequestEvent ( $ mainRequest ));
96102 $ record = $ processor (array ('extra ' => array ()));
97103
98104 $ this ->assertArrayNotHasKey ('requests ' , $ record ['extra ' ]);
99105 }
100106
101107 public function testProcessorWithEmptyRequest ()
102108 {
109+ $ request = $ this ->mockEmptyRequest ();
103110 $ processor = new RouteProcessor ();
104- $ processor ->onKernelRequest ($ this ->getEmptyRequestEvent ( ));
111+ $ processor ->addRouteData ($ this ->mockGetResponseEvent ( $ request ));
105112
106113 $ record = $ processor (array ('extra ' => array ()));
107114 $ this ->assertEquals (array ('extra ' => array ()), $ record );
@@ -115,41 +122,41 @@ public function testProcessorDoesNothingWhenNoRequest()
115122 $ this ->assertEquals (array ('extra ' => array ()), $ record );
116123 }
117124
118- private function getFinishRequestEvent ( array $ attributes = array ( ' _controller ' => ' test::test ' )): FinishRequestEvent
125+ private function mockGetResponseEvent ( Request $ request ): GetResponseEvent
119126 {
120- $ request = new \stdClass ();
121- $ request ->attributes = new ParameterBag ($ attributes );
122-
123- $ event = $ this ->getMockBuilder (FinishRequestEvent::class)->disableOriginalConstructor ()->getMock ();
127+ $ event = $ this ->getMockBuilder (GetResponseEvent::class)->disableOriginalConstructor ()->getMock ();
124128 $ event ->method ('getRequest ' )->willReturn ($ request );
125129
126130 return $ event ;
127131 }
128132
129- private function getRequestEvent ( array $ attributes ): GetResponseEvent
133+ private function mockFinishRequestEvent ( Request $ request ): FinishRequestEvent
130134 {
131- $ request = new \stdClass ();
132- $ request ->attributes = new ParameterBag ($ attributes );
133-
134- $ event = $ this ->getMockBuilder (GetResponseEvent::class)->disableOriginalConstructor ()->getMock ();
135+ $ event = $ this ->getMockBuilder (FinishRequestEvent::class)->disableOriginalConstructor ()->getMock ();
135136 $ event ->method ('getRequest ' )->willReturn ($ request );
136137
137138 return $ event ;
138139 }
139140
140- private function getEmptyRequestEvent (): GetResponseEvent
141+ private function mockEmptyRequest (): Request
141142 {
142- return $ this ->getRequestEvent (array ());
143+ return $ this ->mockRequest (array ());
143144 }
144145
145- private function getFilledRequestEvent (string $ controller = self ::TEST_CONTROLLER ): GetResponseEvent
146+ private function mockFilledRequest (string $ controller = self ::TEST_CONTROLLER ): Request
146147 {
147- return $ this ->getRequestEvent (
148- array (
149- '_controller ' => $ controller ,
150- '_route ' => self ::TEST_ROUTE ,
151- '_route_params ' => self ::TEST_PARAMS ,
152- )
153- );
148+ return $ this ->mockRequest (array (
149+ '_controller ' => $ controller ,
150+ '_route ' => self ::TEST_ROUTE ,
151+ '_route_params ' => self ::TEST_PARAMS ,
152+ ));
153+ }
154+
155+ private function mockRequest (array $ attributes ): Request
156+ {
157+ $ request = $ this ->getMockBuilder (Request::class)->disableOriginalConstructor ()->getMock ();
158+ $ request ->attributes = new ParameterBag ($ attributes );
159+
160+ return $ request ;
154161 }
155162}
0 commit comments