|
13 | 13 | */
|
14 | 14 | package software.amazon.lambda.powertools.logging.internal;
|
15 | 15 |
|
16 |
| -import java.io.BufferedReader; |
17 |
| -import java.io.ByteArrayInputStream; |
18 |
| -import java.io.ByteArrayOutputStream; |
19 |
| -import java.io.IOException; |
20 |
| -import java.io.InputStreamReader; |
21 |
| -import java.lang.reflect.InvocationTargetException; |
22 |
| -import java.lang.reflect.Method; |
23 |
| -import java.nio.channels.FileChannel; |
24 |
| -import java.nio.charset.StandardCharsets; |
25 |
| -import java.nio.file.Files; |
26 |
| -import java.nio.file.Paths; |
27 |
| -import java.nio.file.StandardOpenOption; |
28 |
| -import java.util.List; |
29 |
| -import java.util.Map; |
30 |
| -import java.util.stream.Collectors; |
31 |
| - |
32 | 16 | import com.amazonaws.services.lambda.runtime.Context;
|
33 | 17 | import com.amazonaws.services.lambda.runtime.RequestHandler;
|
34 | 18 | import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
|
|
49 | 33 | import org.mockito.MockedStatic;
|
50 | 34 | import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor;
|
51 | 35 | import software.amazon.lambda.powertools.core.internal.SystemWrapper;
|
52 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerLogToolAlbCorrelationId; |
53 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerLogToolApiGatewayHttpApiCorrelationId; |
54 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerLogToolApiGatewayRestApiCorrelationId; |
55 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerLogToolEnabled; |
56 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerLogToolEnabledForStream; |
57 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerLogToolEnabledWithClearState; |
58 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerToolDisabled; |
59 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerToolDisabledForStream; |
60 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerToolLogEventEnabled; |
61 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerToolLogEventEnabledForStream; |
62 |
| -import software.amazon.lambda.powertools.logging.handlers.PowerToolLogEventEnabledWithCustomMapper; |
63 |
| - |
64 |
| -import static com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.RequestParametersEntity; |
65 |
| -import static com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.ResponseElementsEntity; |
66 |
| -import static com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.S3BucketEntity; |
67 |
| -import static com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.S3Entity; |
68 |
| -import static com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.S3EventNotificationRecord; |
69 |
| -import static com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.S3ObjectEntity; |
70 |
| -import static com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.UserIdentityEntity; |
| 36 | +import software.amazon.lambda.powertools.logging.handlers.*; |
| 37 | + |
| 38 | +import java.io.*; |
| 39 | +import java.lang.reflect.InvocationTargetException; |
| 40 | +import java.lang.reflect.Method; |
| 41 | +import java.nio.channels.FileChannel; |
| 42 | +import java.nio.charset.StandardCharsets; |
| 43 | +import java.nio.file.Files; |
| 44 | +import java.nio.file.Paths; |
| 45 | +import java.nio.file.StandardOpenOption; |
| 46 | +import java.util.List; |
| 47 | +import java.util.Map; |
| 48 | +import java.util.stream.Collectors; |
| 49 | + |
| 50 | +import static com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.*; |
71 | 51 | import static java.util.Collections.emptyMap;
|
72 | 52 | import static java.util.Collections.singletonList;
|
73 | 53 | import static java.util.stream.Collectors.joining;
|
@@ -292,6 +272,20 @@ void shouldLogCorrelationIdOnALBEvent(ApplicationLoadBalancerRequestEvent event)
|
292 | 272 | .containsEntry("correlation_id", event.getHeaders().get("x-amzn-trace-id"));
|
293 | 273 | }
|
294 | 274 |
|
| 275 | + @Test |
| 276 | + void shouldLogCorrelationIdOnStreamHandler() throws IOException { |
| 277 | + RequestStreamHandler handler = new PowerLogToolEventBridgeCorrelationId(); |
| 278 | + String eventId = "3"; |
| 279 | + String event = "{\"id\":" + eventId + "}"; |
| 280 | + ByteArrayInputStream inputStream = new ByteArrayInputStream(event.getBytes()); |
| 281 | + handler.handleRequest(inputStream, new ByteArrayOutputStream(), context); |
| 282 | + |
| 283 | + |
| 284 | + assertThat(ThreadContext.getImmutableContext()) |
| 285 | + .hasSize(EXPECTED_CONTEXT_SIZE + 1) |
| 286 | + .containsEntry("correlation_id", eventId); |
| 287 | + } |
| 288 | + |
295 | 289 | @Test
|
296 | 290 | void shouldLogAndClearLogContextOnEachRequest() throws IOException {
|
297 | 291 | requestHandler = new PowerLogToolEnabledWithClearState();
|
|
0 commit comments