|
24 | 24 | import java.util.concurrent.LinkedBlockingDeque; |
25 | 25 | import java.util.concurrent.LinkedBlockingQueue; |
26 | 26 | import java.util.concurrent.TimeUnit; |
| 27 | +import java.util.concurrent.atomic.AtomicInteger; |
27 | 28 | import java.util.function.Consumer; |
28 | 29 |
|
29 | 30 | import org.junit.jupiter.api.AfterEach; |
@@ -207,6 +208,24 @@ void withAccessTokenSupplierAuthentication() { |
207 | 208 | .isEqualTo("{ workerId: 'test' }"); |
208 | 209 | } |
209 | 210 |
|
| 211 | + @Test |
| 212 | + void withAccessTokenDynamicSupplierAuthentication() { |
| 213 | + AtomicInteger counter = new AtomicInteger(0); |
| 214 | + handler.addJsonResponse(200, "{}"); |
| 215 | + handler.addJsonResponse(200, "{}"); |
| 216 | + RestInvoker restInvoker = JavaHttpClientRestInvoker.withAccessToken(baseUrl + "/work", () -> "SomeToken" + counter.incrementAndGet()); |
| 217 | + ObjectNode request = objectMapper.createObjectNode() |
| 218 | + .put("workerId", "test"); |
| 219 | + restInvoker.post("/jobs", request); |
| 220 | + restInvoker.post("/jobs", request); |
| 221 | + |
| 222 | + Request receivedRequest = handler.takeRequest(); |
| 223 | + assertThat(receivedRequest.header("Authorization")).isEqualTo("Bearer SomeToken1"); |
| 224 | + |
| 225 | + receivedRequest = handler.takeRequest(); |
| 226 | + assertThat(receivedRequest.header("Authorization")).isEqualTo("Bearer SomeToken2"); |
| 227 | + } |
| 228 | + |
210 | 229 | @ParameterizedTest |
211 | 230 | @ValueSource(ints = { 200, 201, 400, 404, 505 }) |
212 | 231 | void responseWithDifferentStatusCodes(int statusCode) { |
|
0 commit comments