@@ -263,6 +263,42 @@ public void LongPollingTransportSetsAuthorizationHeader() {
263
263
close .onComplete ();
264
264
}
265
265
266
+ @ Test
267
+ public void LongPollingTransportRunsAccessTokenProviderEveryRequest () {
268
+ AtomicInteger requestCount = new AtomicInteger ();
269
+ AtomicReference <String > headerValue = new AtomicReference <>();
270
+ CompletableSubject secondGet = CompletableSubject .create ();
271
+ CompletableSubject close = CompletableSubject .create ();
272
+ TestHttpClient client = new TestHttpClient ()
273
+ .on ("GET" , (req ) -> {
274
+ if (requestCount .get () == 0 ) {
275
+ requestCount .incrementAndGet ();
276
+ return Single .just (new HttpResponse (200 , "" , "" ));
277
+ }
278
+ assertEquals ("Bearer TOKEN1" , req .getHeaders ().get ("Authorization" ));
279
+ secondGet .onComplete ();
280
+ assertTrue (close .blockingAwait (1 , TimeUnit .SECONDS ));
281
+ return Single .just (new HttpResponse (204 , "" , "" ));
282
+ })
283
+ .on ("POST" , (req ) -> {
284
+ assertFalse (req .getHeaders ().isEmpty ());
285
+ headerValue .set (req .getHeaders ().get ("Authorization" ));
286
+ return Single .just (new HttpResponse (200 , "" , "" ));
287
+ });
288
+
289
+ AtomicInteger i = new AtomicInteger (0 );
290
+ Map <String , String > headers = new HashMap <>();
291
+ Single <String > tokenProvider = Single .defer (() -> Single .just ("TOKEN" + i .getAndIncrement ()));
292
+ LongPollingTransport transport = new LongPollingTransport (headers , client , tokenProvider );
293
+ transport .setOnClose ((error ) -> {});
294
+
295
+ transport .start ("http://example.com" ).timeout (1 , TimeUnit .SECONDS ).blockingAwait ();
296
+ secondGet .blockingAwait (1 , TimeUnit .SECONDS );
297
+ assertTrue (transport .send ("TEST" ).blockingAwait (1 , TimeUnit .SECONDS ));
298
+ assertEquals ("Bearer TOKEN2" , headerValue .get ());
299
+ close .onComplete ();
300
+ }
301
+
266
302
@ Test
267
303
public void After204StopDoesNotTriggerOnClose () {
268
304
AtomicBoolean firstPoll = new AtomicBoolean (true );
0 commit comments