23
23
use Symfony \Component \EventDispatcher \EventDispatcher ;
24
24
use Symfony \Component \HttpKernel \DataCollector \DumpDataCollector ;
25
25
use Symfony \Component \HttpKernel \KernelInterface ;
26
+ use Symfony \Component \HttpKernel \Profiler \Profile ;
26
27
use Symfony \Component \HttpKernel \Profiler \Profiler ;
27
28
use Symfony \Component \HttpKernel \Profiler \ProfilerStorageInterface ;
29
+ use Symfony \Component \Routing \RequestContext ;
30
+ use Symfony \Component \Routing \RouteCollection ;
28
31
use Symfony \Component \Routing \RouterInterface ;
29
32
use Twig \Environment ;
30
33
use Twig \Loader \ArrayLoader ;
@@ -58,15 +61,11 @@ protected function setUp(): void
58
61
59
62
$ this ->kernel = $ this ->createMock (KernelInterface::class);
60
63
61
- $ profiler = $ this ->createMock (Profiler::class);
62
- $ profilerStorage = $ this ->createMock (ProfilerStorageInterface::class);
63
- $ router = $ this ->createMock (RouterInterface::class);
64
-
65
64
$ this ->container = new ContainerBuilder ();
66
65
$ this ->container ->register ('data_collector.dump ' , DumpDataCollector::class)->setPublic (true );
67
66
$ this ->container ->register ('error_handler.error_renderer.html ' , HtmlErrorRenderer::class)->setPublic (true );
68
67
$ this ->container ->register ('event_dispatcher ' , EventDispatcher::class)->setPublic (true );
69
- $ this ->container ->register ('router ' , $ router ::class)->setPublic (true );
68
+ $ this ->container ->register ('router ' , Router ::class)->setPublic (true );
70
69
$ this ->container ->register ('twig ' , Environment::class)->setPublic (true );
71
70
$ this ->container ->register ('twig_loader ' , ArrayLoader::class)->addArgument ([])->setPublic (true );
72
71
$ this ->container ->register ('twig ' , Environment::class)->addArgument (new Reference ('twig_loader ' ))->setPublic (true );
@@ -78,9 +77,9 @@ protected function setUp(): void
78
77
$ this ->container ->setParameter ('kernel.charset ' , 'UTF-8 ' );
79
78
$ this ->container ->setParameter ('debug.file_link_format ' , null );
80
79
$ this ->container ->setParameter ('profiler.class ' , [Profiler::class]);
81
- $ this ->container ->register ('profiler ' , $ profiler ::class)
80
+ $ this ->container ->register ('profiler ' , Profiler ::class)
82
81
->setPublic (true )
83
- ->addArgument (new Definition ($ profilerStorage ::class));
82
+ ->addArgument (new Definition (NullProfilerStorage ::class));
84
83
$ this ->container ->setParameter ('data_collector.templates ' , []);
85
84
$ this ->container ->set ('kernel ' , $ this ->kernel );
86
85
$ this ->container ->addCompilerPass (new RegisterListenersPass ());
@@ -211,3 +210,54 @@ private function getCompiledContainer()
211
210
return $ this ->container ;
212
211
}
213
212
}
213
+
214
+ class Router implements RouterInterface
215
+ {
216
+ private $ context ;
217
+
218
+ public function setContext (RequestContext $ context ): void
219
+ {
220
+ $ this ->context = $ context ;
221
+ }
222
+
223
+ public function getContext (): RequestContext
224
+ {
225
+ return $ this ->context ;
226
+ }
227
+
228
+ public function getRouteCollection (): RouteCollection
229
+ {
230
+ return new RouteCollection ();
231
+ }
232
+
233
+ public function generate (string $ name , array $ parameters = [], int $ referenceType = self ::ABSOLUTE_PATH ): string
234
+ {
235
+ }
236
+
237
+ public function match (string $ pathinfo ): array
238
+ {
239
+ return [];
240
+ }
241
+ }
242
+
243
+ class NullProfilerStorage implements ProfilerStorageInterface
244
+ {
245
+ public function find (?string $ ip , ?string $ url , ?int $ limit , ?string $ method , ?int $ start = null , ?int $ end = null ): array
246
+ {
247
+ return [];
248
+ }
249
+
250
+ public function read (string $ token ): ?Profile
251
+ {
252
+ return null ;
253
+ }
254
+
255
+ public function write (Profile $ profile ): bool
256
+ {
257
+ return true ;
258
+ }
259
+
260
+ public function purge ()
261
+ {
262
+ }
263
+ }
0 commit comments