17
17
use Yiisoft \Middleware \Dispatcher \MiddlewareDispatcher ;
18
18
use Yiisoft \Middleware \Dispatcher \MiddlewareFactory ;
19
19
use Yiisoft \Middleware \Dispatcher \Tests \Support \FailMiddleware ;
20
+ use Yiisoft \Middleware \Dispatcher \Tests \Support \InvokeableAction ;
21
+ use Yiisoft \Middleware \Dispatcher \Tests \Support \SimpleRequestHandler ;
20
22
use Yiisoft \Middleware \Dispatcher \Tests \Support \TestController ;
21
23
use Yiisoft \Middleware \Dispatcher \Tests \Support \TestMiddleware ;
22
24
use Yiisoft \Test \Support \Container \SimpleContainer ;
@@ -31,14 +33,48 @@ public function testCallableMiddlewareCalled(): void
31
33
$ dispatcher = $ this
32
34
->createDispatcher ()
33
35
->withMiddlewares ([
34
- static fn (): ResponseInterface => new Response (418 ),
36
+ static fn (): ResponseInterface => new Response (418 ),
35
37
]);
36
38
37
39
$ response = $ dispatcher ->dispatch ($ request , $ this ->getRequestHandler ());
38
40
$ this ->assertSame (418 , $ response ->getStatusCode ());
39
41
}
40
42
41
- public function testArrayMiddlewareCall (): void
43
+ public function testInvokableMiddlewareCalled (): void
44
+ {
45
+ $ request = new ServerRequest ('GET ' , '/ ' );
46
+ $ container = $ this ->createContainer ([InvokeableAction::class => new InvokeableAction ()]);
47
+
48
+ $ dispatcher = $ this
49
+ ->createDispatcher ($ container )
50
+ ->withMiddlewares ([
51
+ InvokeableAction::class,
52
+ ]);
53
+
54
+ $ response = $ dispatcher ->dispatch ($ request , $ this ->getRequestHandler ());
55
+ $ this ->assertSame (200 , $ response ->getStatusCode ());
56
+ }
57
+
58
+ public function testRequestHandlerCalled (): void
59
+ {
60
+ $ request = new ServerRequest ('GET ' , '/ ' );
61
+ $ container = $ this ->createContainer (
62
+ [
63
+ SimpleRequestHandler::class => new SimpleRequestHandler (),
64
+ ]
65
+ );
66
+
67
+ $ dispatcher = $ this
68
+ ->createDispatcher ($ container )
69
+ ->withMiddlewares ([
70
+ SimpleRequestHandler::class,
71
+ ]);
72
+
73
+ $ response = $ dispatcher ->dispatch ($ request , $ this ->getRequestHandler ());
74
+ $ this ->assertSame (200 , $ response ->getStatusCode ());
75
+ }
76
+
77
+ public function testArrayMiddlewareCalled (): void
42
78
{
43
79
$ request = new ServerRequest ('GET ' , '/ ' );
44
80
$ container = $ this ->createContainer ([
@@ -60,7 +96,13 @@ public function testMiddlewareFullStackCalled(): void
60
96
$ request = $ request ->withAttribute ('middleware ' , 'middleware1 ' );
61
97
return $ handler ->handle ($ request );
62
98
};
63
- $ middleware2 = static fn (ServerRequestInterface $ request ) => new Response (200 , [], null , '1.1 ' , implode ($ request ->getAttributes ()));
99
+ $ middleware2 = static fn (ServerRequestInterface $ request ) => new Response (
100
+ 200 ,
101
+ [],
102
+ null ,
103
+ '1.1 ' ,
104
+ implode ($ request ->getAttributes ())
105
+ );
64
106
65
107
$ dispatcher = $ this
66
108
->createDispatcher ()
@@ -75,8 +117,8 @@ public function testMiddlewareStackInterrupted(): void
75
117
{
76
118
$ request = new ServerRequest ('GET ' , '/ ' );
77
119
78
- $ middleware1 = static fn () => new Response (403 );
79
- $ middleware2 = static fn () => new Response (200 );
120
+ $ middleware1 = static fn () => new Response (403 );
121
+ $ middleware2 = static fn () => new Response (200 );
80
122
81
123
$ dispatcher = $ this
82
124
->createDispatcher ()
@@ -92,8 +134,10 @@ public function testEventsAreDispatched(): void
92
134
93
135
$ request = new ServerRequest ('GET ' , '/ ' );
94
136
95
- $ middleware1 = static fn (ServerRequestInterface $ request , RequestHandlerInterface $ handler ) => $ handler ->handle ($ request );
96
- $ middleware2 = static fn () => new Response ();
137
+ $ middleware1 = static fn (ServerRequestInterface $ request , RequestHandlerInterface $ handler ) => $ handler ->handle (
138
+ $ request
139
+ );
140
+ $ middleware2 = static fn () => new Response ();
97
141
98
142
$ dispatcher = $ this
99
143
->createDispatcher (null , $ eventDispatcher )
@@ -118,7 +162,7 @@ public function testEventsAreDispatchedWhenMiddlewareFailedWithException(): void
118
162
119
163
$ request = new ServerRequest ('GET ' , '/ ' );
120
164
$ eventDispatcher = new SimpleEventDispatcher ();
121
- $ middleware = fn () => new FailMiddleware ();
165
+ $ middleware = fn () => new FailMiddleware ();
122
166
$ dispatcher = $ this
123
167
->createDispatcher (null , $ eventDispatcher )
124
168
->withMiddlewares ([$ middleware ]);
@@ -151,10 +195,7 @@ public function testHasMiddlewares(array $definitions, bool $expected): void
151
195
{
152
196
self ::assertSame (
153
197
$ expected ,
154
- $ this
155
- ->createDispatcher ()
156
- ->withMiddlewares ($ definitions )
157
- ->hasMiddlewares ()
198
+ $ this ->createDispatcher ()->withMiddlewares ($ definitions )->hasMiddlewares ()
158
199
);
159
200
}
160
201
@@ -194,8 +235,10 @@ public function handle(ServerRequestInterface $request): ResponseInterface
194
235
};
195
236
}
196
237
197
- private function createDispatcher (ContainerInterface $ container = null , ?EventDispatcherInterface $ eventDispatcher = null ): MiddlewareDispatcher
198
- {
238
+ private function createDispatcher (
239
+ ContainerInterface $ container = null ,
240
+ ?EventDispatcherInterface $ eventDispatcher = null
241
+ ): MiddlewareDispatcher {
199
242
if ($ container === null ) {
200
243
$ container = $ this ->createContainer ();
201
244
}
0 commit comments