@@ -63,16 +63,16 @@ public function testInvokeAuthorizationRequiredError()
6363
6464 $ request = (new ServerRequest ())->withAttribute ('identity ' , ['id ' => 1 ]);
6565 $ response = new Response ();
66- $ next = function ($ request ) {
66+ $ next = function ($ request, $ response ) {
6767 // Don't call any auth methods.
68- return $ request ;
68+ return $ response ;
6969 };
7070
7171 $ middleware = new AuthorizationMiddleware ($ service , ['requireAuthorizationCheck ' => true ]);
7272 $ result = $ middleware ($ request , $ response , $ next );
7373
74- $ this ->assertInstanceOf (RequestInterface ::class, $ result );
75- $ this ->assertSame ($ service , $ result ->getAttribute ('authorization ' ));
74+ $ this ->assertInstanceOf (ResponseInterface ::class, $ result );
75+ $ this ->assertSame ($ service , $ request ->getAttribute ('authorization ' ));
7676 }
7777
7878 public function testInvokeApp ()
@@ -343,4 +343,22 @@ public function testUnauthorizedHandlerSuppress()
343343 $ result = $ middleware ($ request , $ response , $ next );
344344 $ this ->assertSame ($ response , $ result );
345345 }
346+
347+ public function testUnauthorizedHandlerRequireAuthz ()
348+ {
349+ $ service = $ this ->createMock (AuthorizationServiceInterface::class);
350+ $ request = new ServerRequest ();
351+ $ response = new Response ();
352+ $ next = function () {
353+ throw new Exception ();
354+ };
355+
356+ $ middleware = new AuthorizationMiddleware ($ service , [
357+ 'requireAuthorizationCheck ' => true ,
358+ 'unauthorizedHandler ' => 'Suppress ' ,
359+ ]);
360+
361+ $ result = $ middleware ($ request , $ response , $ next );
362+ $ this ->assertSame ($ response , $ result );
363+ }
346364}
0 commit comments