99use Symfony \Component \HttpFoundation \Request ;
1010use Symfony \Component \HttpFoundation \RequestStack ;
1111use Symfony \Component \HttpFoundation \Session \Session ;
12- use Symfony \Component \HttpFoundation \Session \SessionFactory ;
12+ use Symfony \Component \HttpFoundation \Session \Storage \ MockFileSessionStorage ;
1313use Symfony \Component \Routing \Router ;
1414use function var_dump ;
1515
1616class SessionRequestProcessorTest extends TestCase
1717{
18+ protected function setUp (): void
19+ {
20+ parent ::setUp ();
21+
22+ $ _SERVER ['SERVER_NAME ' ] = 'test ' ;
23+ }
24+
1825 public function testProcessor ()
1926 {
20- $ session = new Session ();
27+ $ request = Request::create ('/ ' , 'GET ' );
28+ $ request ->setSession (new Session (new MockFileSessionStorage ()));
29+
2130 $ requestStack = new RequestStack ();
22- $ requestStack ->push (Request:: create ( ' / ' , ' GET ' ) );
31+ $ requestStack ->push ($ request );
2332 $ router = $ this ->createPartialMock (Router::class, ['matchRequest ' ]);
2433 $ router ->expects ($ this ->once ())
2534 ->method ('matchRequest ' )
2635 ->willReturn (['_route ' => 'test ' ]);
2736
28- $ processor = new SessionRequestProcessor ($ session , $ requestStack , $ router );
37+ $ processor = new SessionRequestProcessor ($ requestStack , $ router );
2938
3039 $ handler = new TestHandler ();
3140
@@ -39,5 +48,84 @@ public function testProcessor()
3948 $ record = $ records [0 ];
4049 $ this ->assertEquals ('test ' , $ record ['context ' ]['route ' ]);
4150 $ this ->assertEquals ('test ' , $ record ['context ' ]['route_parameters ' ]['_route ' ]);
51+ $ this ->assertArrayHasKey ('http.session_id ' , $ record );
52+ }
53+
54+ public function testProcessorCli ()
55+ {
56+ unset($ _SERVER ['SERVER_NAME ' ]);
57+
58+ $ requestStack = new RequestStack ();
59+ $ router = $ this ->createPartialMock (Router::class, ['matchRequest ' ]);
60+
61+ $ processor = new SessionRequestProcessor ($ requestStack , $ router );
62+
63+ $ handler = new TestHandler ();
64+
65+ $ logger = new Logger ('test ' , [$ handler ], [$ processor ]);
66+
67+ $ logger ->info ('test ' );
68+
69+ $ records = $ handler ->getRecords ();
70+
71+ $ this ->assertCount (1 , $ records );
72+ $ record = $ records [0 ];
73+ $ this ->assertArrayHasKey ('http.session_id ' , $ record );
74+ $ this ->assertEquals ($ record ['http.session_id ' ], getmypid ());
75+
76+ }
77+
78+ public function testProcessorNoRequest ()
79+ {
80+ $ requestStack = new RequestStack ();
81+ $ router = $ this ->createPartialMock (Router::class, ['matchRequest ' ]);
82+
83+ $ processor = new SessionRequestProcessor ($ requestStack , $ router );
84+
85+ $ handler = new TestHandler ();
86+
87+ $ logger = new Logger ('test ' , [$ handler ], [$ processor ]);
88+
89+ $ logger ->info ('test ' );
90+
91+ $ records = $ handler ->getRecords ();
92+
93+ $ this ->assertCount (1 , $ records );
94+ $ record = $ records [0 ];
95+ $ this ->assertArrayNotHasKey ('route ' , $ record ['context ' ]);
96+ $ this ->assertNull ($ record ['http.session_id ' ]);
97+ }
98+
99+
100+ public function testProcessorRequestAddedLater ()
101+ {
102+ $ requestStack = new RequestStack ();
103+ $ router = $ this ->createPartialMock (Router::class, ['matchRequest ' ]);
104+
105+ $ processor = new SessionRequestProcessor ($ requestStack , $ router );
106+
107+ $ handler = new TestHandler ();
108+
109+ $ logger = new Logger ('test ' , [$ handler ], [$ processor ]);
110+
111+ $ logger ->info ('test ' );
112+
113+ $ request = Request::create ('/ ' , 'GET ' );
114+ $ request ->setSession (new Session (new MockFileSessionStorage ()));
115+ $ requestStack ->push ($ request );
116+
117+ $ logger ->info ('test with session ' );
118+
119+ $ records = $ handler ->getRecords ();
120+
121+ $ this ->assertCount (2 , $ records );
122+ $ record = $ records [0 ];
123+ $ this ->assertArrayNotHasKey ('route ' , $ record ['context ' ]);
124+ $ this ->assertNull ($ record ['http.session_id ' ]);
125+
126+ $ record2 = $ records [1 ];
127+ $ this ->assertArrayHasKey ('route ' , $ record2 ['context ' ]);
128+ $ this ->assertNotNull ($ record2 ['http.session_id ' ]);
129+ $ this ->assertEquals ($ record ['http.request_id ' ], $ record2 ['http.request_id ' ]);
42130 }
43131}
0 commit comments