+ @Test
+ void testAuthHeader() throws Exception {
+ final String AUTH_TOKEN = "testToken";
+ Path authFile = Files.createTempFile("icsTestAuthToken", ".txt");
+ Files.write(authFile, AUTH_TOKEN.getBytes());
+ this.securityContext.setAuthTokenFilePath(authFile);
+ putInfoProducerWithOneType(PRODUCER_ID, TYPE_ID);
+ putInfoJob(TYPE_ID, "jobId");
+
+ // Test that authorization header is sent to the producer.
+ await().untilAsserted(() -> assertThat(this.producerSimulator.getTestResults().receivedHeaders).hasSize(1));
+ Map<String, String> headers = this.producerSimulator.getTestResults().receivedHeaders.get(0);
+ assertThat(headers).containsEntry("authorization", "Bearer " + AUTH_TOKEN);
+
+ Files.delete(authFile);
+
+ // Test that it works. The cached header is used
+ putInfoJob(TYPE_ID, "jobId2");
+ await().untilAsserted(() -> assertThat(this.infoJobs.size()).isEqualByComparingTo(2));
+ headers = this.producerSimulator.getTestResults().receivedHeaders.get(1);
+ assertThat(headers).containsEntry("authorization", "Bearer " + AUTH_TOKEN);
+
+ }
+