@@ -37,8 +37,9 @@ public function setUp(): void
3737
3838 public function testSetBearerTokenValidator (): void
3939 {
40- $ request = new ServerRequest ();
41- $ accessToken = 'abcdef ' ;
40+ $ request = (new ServerRequest ())->withParsedBody ([
41+ 'token ' => 'abcdef ' ,
42+ ]);
4243 $ client = new ClientEntity ();
4344 $ client ->setIdentifier ('client1 ' );
4445
@@ -52,24 +53,14 @@ public function testSetBearerTokenValidator(): void
5253 $ handler = $ this ->getAbstractTokenHandler ();
5354 $ handler ->setBearerTokenValidator ($ validator );
5455
55- $ result = (fn () => $ this ->validateAccessToken ($ request, $ accessToken , $ client ))->call ($ handler );
56+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
5657
5758 self ::assertSame (['access_token ' , ['foo ' => 'bar ' ]], $ result );
5859 }
5960
6061 public function testValidateToken (): void
6162 {
6263 $ client = new ClientEntity ();
63- $ request = new ServerRequest ();
64-
65- try {
66- (fn () => $ this ->validateToken ($ request , $ client ))->call ($ this ->getAbstractTokenHandlerWithToken ());
67-
68- self ::fail ('The expected exception was not thrown ' );
69- } catch (OAuthServerException $ e ) {
70- self ::assertSame ('invalid_request ' , $ e ->getErrorType ());
71- }
72-
7364 $ request = (new ServerRequest ())->withParsedBody (['token ' => 'token1 ' ]);
7465
7566 self ::assertSame (['access_token ' , ['foo ' => 'bar ' ]], (fn () => $ this ->validateToken ($ request , $ client ))->call (
@@ -99,9 +90,6 @@ public function testValidateToken(): void
9990
10091 $ request = (new ServerRequest ())->withParsedBody (['token ' => 'token1 ' , 'token_type_hint ' => 'refresh_token ' ]);
10192
102- self ::assertSame (['refresh_token ' , ['bar ' => 'foo ' ]], (fn () => $ this ->validateToken ($ request , $ client ))->call (
103- $ this ->getAbstractTokenHandlerWithToken (accessToken: ['foo ' => 'bar ' ], refreshToken: ['bar ' => 'foo ' ])
104- ));
10593 self ::assertSame (['access_token ' , ['foo ' => 'bar ' ]], (fn () => $ this ->validateToken ($ request , $ client ))->call (
10694 $ this ->getAbstractTokenHandlerWithToken (accessToken: ['foo ' => 'bar ' ])
10795 ));
@@ -122,19 +110,21 @@ public function testValidateAccessToken(): void
122110 $ handler = $ this ->getAbstractTokenHandler ();
123111 $ handler ->setAccessTokenRepository ($ accessTokenRepository );
124112
125- $ request = new ServerRequest ();
126113 $ expireTime = time () + 1000 ;
127114 $ accessToken = $ this ->getJwtToken (fn (Builder $ builder ) =>
128115 $ builder ->permittedFor ('client1 ' )
129116 ->relatedTo ('user1 ' )
130117 ->identifiedBy ('access1 ' )
131118 ->expiresAt ((new DateTimeImmutable ())->setTimestamp ($ expireTime ))
132119 ->withClaim ('foo ' , 'bar ' ));
120+ $ request = (new ServerRequest ())->withParsedBody ([
121+ 'token ' => $ accessToken ,
122+ ]);
133123 $ client = new ClientEntity ();
134124 $ client ->setIdentifier ('client1 ' );
135125
136126 /** @var array{0:non-empty-string, 1:array<non-empty-string, mixed>} $result */
137- $ result = (fn () => $ this ->validateAccessToken ($ request, $ accessToken , $ client ))->call ($ handler );
127+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
138128 $ result [1 ]['exp ' ] = $ result [1 ]['exp ' ]->getTimestamp ();
139129
140130 self ::assertSame (['access_token ' , [
@@ -158,19 +148,21 @@ public function testValidateAccessTokenIsRevoked(): void
158148 $ handler = $ this ->getAbstractTokenHandler ();
159149 $ handler ->setAccessTokenRepository ($ accessTokenRepository );
160150
161- $ request = new ServerRequest ();
162151 $ expireTime = time () + 1000 ;
163152 $ accessToken = $ this ->getJwtToken (fn (Builder $ builder ) =>
164- $ builder ->permittedFor ('client1 ' )
165- ->relatedTo ('user1 ' )
166- ->identifiedBy ('access1 ' )
167- ->expiresAt ((new DateTimeImmutable ())->setTimestamp ($ expireTime )));
153+ $ builder ->permittedFor ('client1 ' )
154+ ->relatedTo ('user1 ' )
155+ ->identifiedBy ('access1 ' )
156+ ->expiresAt ((new DateTimeImmutable ())->setTimestamp ($ expireTime )));
157+ $ request = (new ServerRequest ())->withParsedBody ([
158+ 'token ' => $ accessToken ,
159+ ]);
168160 $ client = new ClientEntity ();
169161 $ client ->setIdentifier ('client1 ' );
170162
171- $ result = (fn () => $ this ->validateAccessToken ($ request, $ accessToken , $ client ))->call ($ handler );
163+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
172164
173- self ::assertNull ( $ result );
165+ self ::assertSame ([ null , null ], $ result );
174166 }
175167
176168 public function testValidateAccessTokenIsExpired (): void
@@ -181,19 +173,21 @@ public function testValidateAccessTokenIsExpired(): void
181173 $ handler = $ this ->getAbstractTokenHandler ();
182174 $ handler ->setAccessTokenRepository ($ accessTokenRepository );
183175
184- $ request = new ServerRequest ();
185176 $ expireTime = time () - 1000 ;
186177 $ accessToken = $ this ->getJwtToken (fn (Builder $ builder ) =>
187- $ builder ->permittedFor ('client1 ' )
188- ->relatedTo ('user1 ' )
189- ->identifiedBy ('access1 ' )
190- ->expiresAt ((new DateTimeImmutable ())->setTimestamp ($ expireTime )));
178+ $ builder ->permittedFor ('client1 ' )
179+ ->relatedTo ('user1 ' )
180+ ->identifiedBy ('access1 ' )
181+ ->expiresAt ((new DateTimeImmutable ())->setTimestamp ($ expireTime )));
182+ $ request = (new ServerRequest ())->withParsedBody ([
183+ 'token ' => $ accessToken ,
184+ ]);
191185 $ client = new ClientEntity ();
192186 $ client ->setIdentifier ('client1 ' );
193187
194- $ result = (fn () => $ this ->validateAccessToken ($ request, $ accessToken , $ client ))->call ($ handler );
188+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
195189
196- self ::assertNull ( $ result );
190+ self ::assertSame ([ null , null ], $ result );
197191 }
198192
199193 public function testValidateAccessTokenWithMismatchClient (): void
@@ -204,19 +198,21 @@ public function testValidateAccessTokenWithMismatchClient(): void
204198 $ handler = $ this ->getAbstractTokenHandler ();
205199 $ handler ->setAccessTokenRepository ($ accessTokenRepository );
206200
207- $ request = new ServerRequest ();
208201 $ expireTime = time () + 1000 ;
209202 $ accessToken = $ this ->getJwtToken (fn (Builder $ builder ) =>
210- $ builder ->permittedFor ('client2 ' )
211- ->relatedTo ('user1 ' )
212- ->identifiedBy ('access1 ' )
213- ->expiresAt ((new DateTimeImmutable ())->setTimestamp ($ expireTime )));
203+ $ builder ->permittedFor ('client2 ' )
204+ ->relatedTo ('user1 ' )
205+ ->identifiedBy ('access1 ' )
206+ ->expiresAt ((new DateTimeImmutable ())->setTimestamp ($ expireTime )));
207+ $ request = (new ServerRequest ())->withParsedBody ([
208+ 'token ' => $ accessToken ,
209+ ]);
214210 $ client = new ClientEntity ();
215211 $ client ->setIdentifier ('client1 ' );
216212
217- $ result = (fn () => $ this ->validateAccessToken ($ request, $ accessToken , $ client ))->call ($ handler );
213+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
218214
219- self ::assertNull ( $ result );
215+ self ::assertSame ([ null , null ], $ result );
220216 }
221217
222218 public function testValidateAccessTokenWithInvalidToken (): void
@@ -227,14 +223,15 @@ public function testValidateAccessTokenWithInvalidToken(): void
227223 $ handler = $ this ->getAbstractTokenHandler ();
228224 $ handler ->setAccessTokenRepository ($ accessTokenRepository );
229225
230- $ request = new ServerRequest ();
231- $ accessToken = 'abcdef ' ;
226+ $ request = (new ServerRequest ())->withParsedBody ([
227+ 'token ' => 'abcdef ' ,
228+ ]);
232229 $ client = new ClientEntity ();
233230 $ client ->setIdentifier ('client1 ' );
234231
235- $ result = (fn () => $ this ->validateAccessToken ($ request, $ accessToken , $ client ))->call ($ handler );
232+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
236233
237- self ::assertNull ( $ result );
234+ self ::assertSame ([ null , null ], $ result );
238235 }
239236
240237 public function testValidateRefreshToken (): void
@@ -249,17 +246,19 @@ public function testValidateRefreshToken(): void
249246 $ handler = $ this ->getAbstractTokenHandler ();
250247 $ handler ->setRefreshTokenRepository ($ refreshTokenRepository );
251248
252- $ request = new ServerRequest ();
253249 $ refreshToken = $ this ->encrypt (json_encode ([
254250 'refresh_token_id ' => 'refresh1 ' ,
255251 'expire_time ' => $ expireTime = time () + 1000 ,
256252 'client_id ' => 'client1 ' ,
257253 'foo ' => 'bar ' ,
258254 ], flags: JSON_THROW_ON_ERROR ));
255+ $ request = (new ServerRequest ())->withParsedBody ([
256+ 'token ' => $ refreshToken ,
257+ ]);
259258 $ client = new ClientEntity ();
260259 $ client ->setIdentifier ('client1 ' );
261260
262- $ result = (fn () => $ this ->validateRefreshToken ($ request, $ refreshToken , $ client ))->call ($ handler );
261+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
263262
264263 self ::assertSame (['refresh_token ' , [
265264 'refresh_token_id ' => 'refresh1 ' ,
@@ -281,18 +280,20 @@ public function testValidateRefreshTokenIsRevoked(): void
281280 $ handler = $ this ->getAbstractTokenHandler ();
282281 $ handler ->setRefreshTokenRepository ($ refreshTokenRepository );
283282
284- $ request = new ServerRequest ();
285283 $ refreshToken = $ this ->encrypt (json_encode ([
286284 'refresh_token_id ' => 'refresh1 ' ,
287285 'expire_time ' => time () + 1000 ,
288286 'client_id ' => 'client1 ' ,
289287 ], flags: JSON_THROW_ON_ERROR ));
288+ $ request = (new ServerRequest ())->withParsedBody ([
289+ 'token ' => $ refreshToken ,
290+ ]);
290291 $ client = new ClientEntity ();
291292 $ client ->setIdentifier ('client1 ' );
292293
293- $ result = (fn () => $ this ->validateRefreshToken ($ request, $ refreshToken , $ client ))->call ($ handler );
294+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
294295
295- self ::assertNull ( $ result );
296+ self ::assertSame ([ null , null ], $ result );
296297 }
297298
298299 public function testValidateRefreshTokenIsExpired (): void
@@ -303,18 +304,20 @@ public function testValidateRefreshTokenIsExpired(): void
303304 $ handler = $ this ->getAbstractTokenHandler ();
304305 $ handler ->setRefreshTokenRepository ($ refreshTokenRepository );
305306
306- $ request = new ServerRequest ();
307307 $ refreshToken = $ this ->encrypt (json_encode ([
308308 'refresh_token_id ' => 'refresh1 ' ,
309309 'expire_time ' => time () - 1000 ,
310310 'client_id ' => 'client1 ' ,
311311 ], flags: JSON_THROW_ON_ERROR ));
312+ $ request = (new ServerRequest ())->withParsedBody ([
313+ 'token ' => $ refreshToken ,
314+ ]);
312315 $ client = new ClientEntity ();
313316 $ client ->setIdentifier ('client1 ' );
314317
315- $ result = (fn () => $ this ->validateRefreshToken ($ request, $ refreshToken , $ client ))->call ($ handler );
318+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
316319
317- self ::assertNull ( $ result );
320+ self ::assertSame ([ null , null ], $ result );
318321 }
319322
320323 public function testValidateRefreshTokenWithMismatchClient (): void
@@ -325,18 +328,20 @@ public function testValidateRefreshTokenWithMismatchClient(): void
325328 $ handler = $ this ->getAbstractTokenHandler ();
326329 $ handler ->setRefreshTokenRepository ($ refreshTokenRepository );
327330
328- $ request = new ServerRequest ();
329331 $ refreshToken = $ this ->encrypt (json_encode ([
330332 'refresh_token_id ' => 'refresh1 ' ,
331333 'expire_time ' => time () + 1000 ,
332334 'client_id ' => 'client2 ' ,
333335 ], flags: JSON_THROW_ON_ERROR ));
336+ $ request = (new ServerRequest ())->withParsedBody ([
337+ 'token ' => $ refreshToken ,
338+ ]);
334339 $ client = new ClientEntity ();
335340 $ client ->setIdentifier ('client1 ' );
336341
337- $ result = (fn () => $ this ->validateRefreshToken ($ request, $ refreshToken , $ client ))->call ($ handler );
342+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
338343
339- self ::assertNull ( $ result );
344+ self ::assertSame ([ null , null ], $ result );
340345 }
341346
342347 public function testValidateRefreshTokenWithInvalidToken (): void
@@ -347,14 +352,15 @@ public function testValidateRefreshTokenWithInvalidToken(): void
347352 $ handler = $ this ->getAbstractTokenHandler ();
348353 $ handler ->setRefreshTokenRepository ($ refreshTokenRepository );
349354
350- $ request = new ServerRequest ();
351- $ refreshToken = 'abcdef ' ;
355+ $ request = (new ServerRequest ())->withParsedBody ([
356+ 'token ' => 'abcdef ' ,
357+ ]);
352358 $ client = new ClientEntity ();
353359 $ client ->setIdentifier ('client1 ' );
354360
355- $ result = (fn () => $ this ->validateRefreshToken ($ request, $ refreshToken , $ client ))->call ($ handler );
361+ $ result = (fn () => $ this ->validateToken ($ request , $ client ))->call ($ handler );
356362
357- self ::assertNull ( $ result );
363+ self ::assertSame ([ null , null ], $ result );
358364 }
359365
360366 /**
@@ -379,14 +385,14 @@ private function getAbstractTokenHandler(): MockObject
379385 private function getAbstractTokenHandlerWithToken (?array $ accessToken = null , ?array $ refreshToken = null ): MockObject
380386 {
381387 $ handler = $ this ->getMockBuilder (AbstractTokenHandler::class)
382- ->onlyMethods (['respondToRequest ' , 'validateAccessToken ' , ' validateRefreshToken ' ])
388+ ->onlyMethods (['respondToRequest ' , 'validateToken ' ])
383389 ->getMock ();
384390
385- $ handler ->method ('validateAccessToken ' )
386- -> willReturn ( $ accessToken === null ? null : ['access_token ' , $ accessToken ]);
387-
388- $ handler -> method ( ' validateRefreshToken ' )
389- -> willReturn ( $ refreshToken === null ? null : [ ' refresh_token ' , $ refreshToken ] );
391+ $ handler ->method ('validateToken ' )-> willReturn ( match ( true ) {
392+ $ accessToken !== null => ['access_token ' , $ accessToken ],
393+ $ refreshToken !== null => [ ' refresh_token ' , $ refreshToken ],
394+ default => [ null , null ],
395+ } );
390396
391397 return $ handler ;
392398 }
0 commit comments