Skip to content

Commit a792228

Browse files
committed
chore(unit-tests): add unit tests to powertools-logging
1 parent 6f28cb6 commit a792228

7 files changed

+77
-47
lines changed

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/LoggingUtilsTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313
*/
1414
package software.amazon.lambda.powertools.logging;
1515

16-
import java.util.HashMap;
17-
import java.util.Map;
18-
1916
import org.apache.logging.log4j.ThreadContext;
2017
import org.junit.jupiter.api.BeforeEach;
2118
import org.junit.jupiter.api.Test;
2219

20+
import java.util.HashMap;
21+
import java.util.Map;
22+
2323
import static org.assertj.core.api.Assertions.assertThat;
2424

2525

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolAlbCorrelationId.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@
1818
import com.amazonaws.services.lambda.runtime.events.ApplicationLoadBalancerRequestEvent;
1919
import org.apache.logging.log4j.LogManager;
2020
import org.apache.logging.log4j.Logger;
21-
import software.amazon.lambda.powertools.logging.CorrelationIdPathConstants;
2221
import software.amazon.lambda.powertools.logging.Logging;
2322

24-
import static software.amazon.lambda.powertools.logging.CorrelationIdPathConstants.API_GATEWAY_REST;
2523
import static software.amazon.lambda.powertools.logging.CorrelationIdPathConstants.APPLICATION_LOAD_BALANCER;
2624

2725
public class PowerLogToolAlbCorrelationId implements RequestHandler<ApplicationLoadBalancerRequestEvent, Object> {

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledWithClearState.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@
2121
import software.amazon.lambda.powertools.logging.LoggingUtils;
2222

2323
public class PowerLogToolEnabledWithClearState implements RequestHandler<Object, Object> {
24-
private final Logger LOG = LogManager.getLogger(PowerLogToolEnabledWithClearState.class);
2524
public static int COUNT = 1;
25+
private final Logger LOG = LogManager.getLogger(PowerLogToolEnabledWithClearState.class);
26+
2627
@Override
2728
@Logging(clearState = true)
2829
public Object handleRequest(Object input, Context context) {
29-
if(COUNT == 1) {
30+
if (COUNT == 1) {
3031
LoggingUtils.appendKey("TestKey", "TestValue");
3132
}
3233
LOG.info("Test event");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Copyright 2023 Amazon.com, Inc. or its affiliates.
3+
* Licensed under the Apache License, Version 2.0 (the
4+
* "License"); you may not use this file except in compliance
5+
* with the License. You may obtain a copy of the License at
6+
* http://www.apache.org/licenses/LICENSE-2.0
7+
* Unless required by applicable law or agreed to in writing, software
8+
* distributed under the License is distributed on an "AS IS" BASIS,
9+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10+
* See the License for the specific language governing permissions and
11+
* limitations under the License.
12+
*
13+
*/
14+
package software.amazon.lambda.powertools.logging.handlers;
15+
16+
import com.amazonaws.services.lambda.runtime.Context;
17+
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
18+
import org.apache.logging.log4j.LogManager;
19+
import org.apache.logging.log4j.Logger;
20+
import software.amazon.lambda.powertools.logging.Logging;
21+
22+
import java.io.IOException;
23+
import java.io.InputStream;
24+
import java.io.OutputStream;
25+
26+
import static software.amazon.lambda.powertools.logging.CorrelationIdPathConstants.EVENT_BRIDGE;
27+
28+
public class PowerLogToolEventBridgeCorrelationId implements RequestStreamHandler {
29+
30+
private final Logger LOG = LogManager.getLogger(PowerLogToolEventBridgeCorrelationId.class);
31+
32+
@Override
33+
@Logging(correlationIdPath = EVENT_BRIDGE)
34+
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
35+
LOG.info("Test event");
36+
}
37+
}

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabledForStream.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
*/
1414
package software.amazon.lambda.powertools.logging.handlers;
1515

16-
import java.io.InputStream;
17-
import java.io.OutputStream;
18-
1916
import com.amazonaws.services.lambda.runtime.Context;
2017
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
2118

19+
import java.io.InputStream;
20+
import java.io.OutputStream;
21+
2222
public class PowerToolDisabledForStream implements RequestStreamHandler {
2323

2424
@Override

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledWithCustomMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package software.amazon.lambda.powertools.logging.handlers;
22

3-
import java.io.IOException;
4-
53
import com.amazonaws.services.lambda.runtime.Context;
64
import com.amazonaws.services.lambda.runtime.RequestHandler;
75
import com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification;
@@ -13,6 +11,8 @@
1311
import software.amazon.lambda.powertools.logging.Logging;
1412
import software.amazon.lambda.powertools.logging.LoggingUtils;
1513

14+
import java.io.IOException;
15+
1616
public class PowerToolLogEventEnabledWithCustomMapper implements RequestHandler<S3EventNotification, Object> {
1717

1818
static {

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspectTest.java

Lines changed: 29 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,6 @@
1313
*/
1414
package software.amazon.lambda.powertools.logging.internal;
1515

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-
3216
import com.amazonaws.services.lambda.runtime.Context;
3317
import com.amazonaws.services.lambda.runtime.RequestHandler;
3418
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
@@ -49,25 +33,21 @@
4933
import org.mockito.MockedStatic;
5034
import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor;
5135
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.*;
7151
import static java.util.Collections.emptyMap;
7252
import static java.util.Collections.singletonList;
7353
import static java.util.stream.Collectors.joining;
@@ -292,6 +272,20 @@ void shouldLogCorrelationIdOnALBEvent(ApplicationLoadBalancerRequestEvent event)
292272
.containsEntry("correlation_id", event.getHeaders().get("x-amzn-trace-id"));
293273
}
294274

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+
295289
@Test
296290
void shouldLogAndClearLogContextOnEachRequest() throws IOException {
297291
requestHandler = new PowerLogToolEnabledWithClearState();

0 commit comments

Comments
 (0)