6
6
use Doctrine \Bundle \DoctrineBundle \DependencyInjection \Compiler \MiddlewaresPass ;
7
7
use Doctrine \Bundle \DoctrineBundle \DependencyInjection \DoctrineExtension ;
8
8
use Doctrine \Bundle \DoctrineBundle \Middleware \ConnectionNameAwareInterface ;
9
+ use Doctrine \Bundle \DoctrineBundle \Middleware \IdleConnectionMiddleware ;
9
10
use Doctrine \DBAL \Driver ;
10
11
use Doctrine \DBAL \Driver \Middleware ;
11
12
use PHPUnit \Framework \TestCase ;
12
13
use Psr \Log \NullLogger ;
14
+ use Symfony \Bridge \Doctrine \Middleware \IdleConnection \Listener ;
13
15
use Symfony \Component \DependencyInjection \ContainerBuilder ;
14
16
use Symfony \Component \DependencyInjection \Definition ;
15
17
use Symfony \Component \DependencyInjection \ParameterBag \ParameterBag ;
16
18
17
19
use function array_map ;
20
+ use function class_exists ;
18
21
use function implode ;
19
22
use function sprintf ;
20
23
@@ -170,7 +173,8 @@ public function testAddMiddlewareOrderingWithDefaultPriority(): void
170
173
171
174
$ this ->assertMiddlewareInjected ($ container , 'conn1 ' , PHP7Middleware::class);
172
175
$ this ->assertMiddlewareInjected ($ container , 'conn1 ' , ConnectionAwarePHP7Middleware::class, true );
173
- $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , [PHP7Middleware::class, ConnectionAwarePHP7Middleware::class]);
176
+ $ expectedMiddlewares = class_exists (Listener::class) ? [IdleConnectionMiddleware::class, PHP7Middleware::class, ConnectionAwarePHP7Middleware::class] : [PHP7Middleware::class, ConnectionAwarePHP7Middleware::class];
177
+ $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , $ expectedMiddlewares );
174
178
}
175
179
176
180
public function testAddMiddlewareOrderingWithExplicitPriority (): void
@@ -193,7 +197,8 @@ public function testAddMiddlewareOrderingWithExplicitPriority(): void
193
197
194
198
$ this ->assertMiddlewareInjected ($ container , 'conn1 ' , PHP7Middleware::class);
195
199
$ this ->assertMiddlewareInjected ($ container , 'conn1 ' , ConnectionAwarePHP7Middleware::class, true );
196
- $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , [ConnectionAwarePHP7Middleware::class, PHP7Middleware::class]);
200
+ $ expectedMiddlewares = class_exists (Listener::class) ? [IdleConnectionMiddleware::class, ConnectionAwarePHP7Middleware::class, PHP7Middleware::class] : [ConnectionAwarePHP7Middleware::class, PHP7Middleware::class];
201
+ $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , $ expectedMiddlewares );
197
202
}
198
203
199
204
public function testAddMiddlewareOrderingWithExplicitPriorityAndConnection (): void
@@ -222,7 +227,8 @@ public function testAddMiddlewareOrderingWithExplicitPriorityAndConnection(): vo
222
227
$ this ->assertMiddlewareInjected ($ container , 'conn1 ' , ConnectionAwarePHP7Middleware::class, true );
223
228
$ this ->assertMiddlewareInjected ($ container , 'conn2 ' , PHP7Middleware::class);
224
229
$ this ->assertMiddlewareNotInjected ($ container , 'conn2 ' , ConnectionAwarePHP7Middleware::class);
225
- $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , [ConnectionAwarePHP7Middleware::class, PHP7Middleware::class]);
230
+ $ expectedMiddlewares = class_exists (Listener::class) ? [IdleConnectionMiddleware::class, ConnectionAwarePHP7Middleware::class, PHP7Middleware::class] : [ConnectionAwarePHP7Middleware::class, PHP7Middleware::class];
231
+ $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , $ expectedMiddlewares );
226
232
}
227
233
228
234
public function testAddMiddlewareOrderingWithExplicitPriorityPerConnection (): void
@@ -252,8 +258,10 @@ public function testAddMiddlewareOrderingWithExplicitPriorityPerConnection(): vo
252
258
$ this ->assertMiddlewareInjected ($ container , 'conn1 ' , ConnectionAwarePHP7Middleware::class, true );
253
259
$ this ->assertMiddlewareInjected ($ container , 'conn2 ' , PHP7Middleware::class);
254
260
$ this ->assertMiddlewareInjected ($ container , 'conn2 ' , ConnectionAwarePHP7Middleware::class, true );
255
- $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , [ConnectionAwarePHP7Middleware::class, PHP7Middleware::class]);
256
- $ this ->assertMiddlewareOrdering ($ container , 'conn2 ' , [PHP7Middleware::class, ConnectionAwarePHP7Middleware::class]);
261
+ $ expectedMiddlewares = class_exists (Listener::class) ? [IdleConnectionMiddleware::class, ConnectionAwarePHP7Middleware::class, PHP7Middleware::class] : [ConnectionAwarePHP7Middleware::class, PHP7Middleware::class];
262
+ $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , $ expectedMiddlewares );
263
+ $ expectedMiddlewares = class_exists (Listener::class) ? [IdleConnectionMiddleware::class, PHP7Middleware::class, ConnectionAwarePHP7Middleware::class] : [PHP7Middleware::class, ConnectionAwarePHP7Middleware::class];
264
+ $ this ->assertMiddlewareOrdering ($ container , 'conn2 ' , $ expectedMiddlewares );
257
265
}
258
266
259
267
public function testAddMiddlewareOrderingWithInheritedPriorityPerConnection (): void
@@ -292,8 +300,10 @@ public function testAddMiddlewareOrderingWithInheritedPriorityPerConnection(): v
292
300
$ this ->assertMiddlewareInjected ($ container , 'conn2 ' , PHP7Middleware::class);
293
301
$ this ->assertMiddlewareNotInjected ($ container , 'conn2 ' , ConnectionAwarePHP7Middleware::class);
294
302
$ this ->assertMiddlewareInjected ($ container , 'conn2 ' , 'some_middleware_class ' );
295
- $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , [ConnectionAwarePHP7Middleware::class, 'some_middleware_class ' , PHP7Middleware::class]);
296
- $ this ->assertMiddlewareOrdering ($ container , 'conn2 ' , [PHP7Middleware::class, 'some_middleware_class ' ]);
303
+ $ expectedMiddlewares = class_exists (Listener::class) ? [IdleConnectionMiddleware::class, ConnectionAwarePHP7Middleware::class, 'some_middleware_class ' , PHP7Middleware::class] : [ConnectionAwarePHP7Middleware::class, 'some_middleware_class ' , PHP7Middleware::class];
304
+ $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , $ expectedMiddlewares );
305
+ $ expectedMiddlewares = class_exists (Listener::class) ? [IdleConnectionMiddleware::class, PHP7Middleware::class, 'some_middleware_class ' ] : [PHP7Middleware::class, 'some_middleware_class ' ];
306
+ $ this ->assertMiddlewareOrdering ($ container , 'conn2 ' , $ expectedMiddlewares );
297
307
}
298
308
299
309
/** @requires PHP 8 */
@@ -327,15 +337,28 @@ public function testAddMiddlewareOrderingWithAttributeForAutoconfiguration(): vo
327
337
$ this ->assertMiddlewareInjected ($ container , 'conn2 ' , AutoconfiguredMiddleware::class);
328
338
$ this ->assertMiddlewareInjected ($ container , 'conn2 ' , AutoconfiguredMiddlewareWithConnection::class);
329
339
$ this ->assertMiddlewareInjected ($ container , 'conn2 ' , AutoconfiguredMiddlewareWithPriority::class);
330
- $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , [
340
+ $ expectedMiddlewares = class_exists (Listener::class) ? [
341
+ IdleConnectionMiddleware::class,
331
342
AutoconfiguredMiddlewareWithPriority::class,
332
343
AutoconfiguredMiddleware::class,
333
- ]);
334
- $ this ->assertMiddlewareOrdering ($ container , 'conn2 ' , [
344
+ ] :
345
+ [
346
+ AutoconfiguredMiddlewareWithPriority::class,
347
+ AutoconfiguredMiddleware::class,
348
+ ];
349
+ $ this ->assertMiddlewareOrdering ($ container , 'conn1 ' , $ expectedMiddlewares );
350
+ $ expectedMiddlewares = class_exists (Listener::class) ? [
351
+ IdleConnectionMiddleware::class,
335
352
AutoconfiguredMiddlewareWithPriority::class,
336
353
AutoconfiguredMiddleware::class,
337
354
AutoconfiguredMiddlewareWithConnection::class,
338
- ]);
355
+ ] :
356
+ [
357
+ AutoconfiguredMiddlewareWithPriority::class,
358
+ AutoconfiguredMiddleware::class,
359
+ AutoconfiguredMiddlewareWithConnection::class,
360
+ ];
361
+ $ this ->assertMiddlewareOrdering ($ container , 'conn2 ' , $ expectedMiddlewares );
339
362
}
340
363
341
364
private function createContainer (callable $ func , bool $ addConnections = true ): ContainerBuilder
0 commit comments