Skip to content

Commit 95393ab

Browse files
pankajagrawal16Pankaj Agrawal
and
Pankaj Agrawal
authored
test: Tracer tests (#21)
* Test cases for tracers * Move all test handlers to a package * test cases for the aspect and utils Co-authored-by: Pankaj Agrawal <[email protected]>
1 parent 6cfe73a commit 95393ab

16 files changed

+464
-21
lines changed

src/main/java/software/aws/lambda/tracing/PowerTracer.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,21 @@ public static void putMetadata(String namespace, String key, Object value) {
2929

3030
public static void withEntitySubsegment(String name, Entity entity, Consumer<Subsegment> subsegment) {
3131
AWSXRay.setTraceEntity(entity);
32-
withSubsegment(name, subsegment);
32+
withEntitySubsegment(SERVICE_NAME, name, entity, subsegment);
33+
}
34+
35+
public static void withEntitySubsegment(String namespace, String name, Entity entity, Consumer<Subsegment> subsegment) {
36+
AWSXRay.setTraceEntity(entity);
37+
withSubsegment(namespace, name, subsegment);
3338
}
3439

3540
public static void withSubsegment(String name, Consumer<Subsegment> subsegment) {
41+
withSubsegment(SERVICE_NAME, name, subsegment);
42+
}
43+
44+
public static void withSubsegment(String namespace, String name, Consumer<Subsegment> subsegment) {
3645
Subsegment segment = AWSXRay.beginSubsegment("## " + name);
46+
segment.setNamespace(namespace);
3747
try {
3848
subsegment.accept(segment);
3949
} finally {

src/main/java/software/aws/lambda/tracing/internal/LambdaTracingAspect.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public Object around(ProceedingJoinPoint pjp,
4242
try {
4343
Object methodReturn = pjp.proceed(proceedArgs);
4444
if (powerToolsTracing.captureResponse()) {
45-
segment.putMetadata(namespace(powerToolsTracing), pjp.getSignature().getName() + " response", response(pjp, methodReturn));
45+
segment.putMetadata(namespace(powerToolsTracing), pjp.getSignature().getName() + " response", methodReturn);
4646
}
4747

4848
IS_COLD_START = false;
@@ -58,15 +58,6 @@ public Object around(ProceedingJoinPoint pjp,
5858
}
5959
}
6060

61-
private Object response(ProceedingJoinPoint pjp, Object methodReturn) {
62-
// TODO should we try to parse output stream? or just not support it?
63-
if (placedOnStreamHandler(pjp)) {
64-
65-
}
66-
67-
return methodReturn;
68-
}
69-
7061
private String namespace(PowerToolTracing powerToolsTracing) {
7162
return powerToolsTracing.namespace().isEmpty() ? SERVICE_NAME : powerToolsTracing.namespace();
7263
}

src/test/java/software/aws/lambda/logging/internal/PowerLogToolEnabled.java renamed to src/test/java/software/aws/lambda/handlers/PowerLogToolEnabled.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package software.aws.lambda.logging.internal;
1+
package software.aws.lambda.handlers;
22

33
import com.amazonaws.services.lambda.runtime.Context;
44
import com.amazonaws.services.lambda.runtime.RequestHandler;

src/test/java/software/aws/lambda/logging/internal/PowerLogToolEnabledForStream.java renamed to src/test/java/software/aws/lambda/handlers/PowerLogToolEnabledForStream.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package software.aws.lambda.logging.internal;
1+
package software.aws.lambda.handlers;
22

33
import java.io.InputStream;
44
import java.io.OutputStream;

src/test/java/software/aws/lambda/logging/internal/PowerLogToolDisabled.java renamed to src/test/java/software/aws/lambda/handlers/PowerToolDisabled.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package software.aws.lambda.logging.internal;
1+
package software.aws.lambda.handlers;
22

33
import com.amazonaws.services.lambda.runtime.Context;
44
import com.amazonaws.services.lambda.runtime.RequestHandler;
55

6-
public class PowerLogToolDisabled implements RequestHandler<Object, Object> {
6+
public class PowerToolDisabled implements RequestHandler<Object, Object> {
77

88
@Override
99
public Object handleRequest(Object input, Context context) {

src/test/java/software/aws/lambda/logging/internal/PowerLogToolDisabledForStream.java renamed to src/test/java/software/aws/lambda/handlers/PowerToolDisabledForStream.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package software.aws.lambda.logging.internal;
1+
package software.aws.lambda.handlers;
22

33
import java.io.InputStream;
44
import java.io.OutputStream;
55

66
import com.amazonaws.services.lambda.runtime.Context;
77
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
88

9-
public class PowerLogToolDisabledForStream implements RequestStreamHandler {
9+
public class PowerToolDisabledForStream implements RequestStreamHandler {
1010

1111
@Override
1212
public void handleRequest(InputStream input, OutputStream output, Context context) {

src/test/java/software/aws/lambda/logging/internal/PowerToolLogEventEnabled.java renamed to src/test/java/software/aws/lambda/handlers/PowerToolLogEventEnabled.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package software.aws.lambda.logging.internal;
1+
package software.aws.lambda.handlers;
22

33
import com.amazonaws.services.lambda.runtime.Context;
44
import com.amazonaws.services.lambda.runtime.RequestHandler;

src/test/java/software/aws/lambda/logging/internal/PowerToolLogEventEnabledForStream.java renamed to src/test/java/software/aws/lambda/handlers/PowerToolLogEventEnabledForStream.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package software.aws.lambda.logging.internal;
1+
package software.aws.lambda.handlers;
22

33
import java.io.IOException;
44
import java.io.InputStream;
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package software.aws.lambda.handlers;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import software.aws.lambda.tracing.PowerToolTracing;
6+
7+
public class PowerTracerToolEnabled implements RequestHandler<Object, Object> {
8+
9+
@Override
10+
@PowerToolTracing(namespace = "lambdaHandler")
11+
public Object handleRequest(Object input, Context context) {
12+
return null;
13+
}
14+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package software.aws.lambda.handlers;
2+
3+
import java.io.InputStream;
4+
import java.io.OutputStream;
5+
6+
import com.amazonaws.services.lambda.runtime.Context;
7+
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
8+
import software.aws.lambda.tracing.PowerToolTracing;
9+
10+
public class PowerTracerToolEnabledForStream implements RequestStreamHandler {
11+
12+
@Override
13+
@PowerToolTracing(namespace = "streamHandler")
14+
public void handleRequest(InputStream input, OutputStream output, Context context) {
15+
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package software.aws.lambda.handlers;
2+
3+
import java.io.InputStream;
4+
import java.io.OutputStream;
5+
6+
import com.amazonaws.services.lambda.runtime.Context;
7+
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
8+
import software.aws.lambda.tracing.PowerToolTracing;
9+
10+
public class PowerTracerToolEnabledForStreamWithNoMetaData implements RequestStreamHandler {
11+
12+
@Override
13+
@PowerToolTracing(captureResponse = false, captureError = false)
14+
public void handleRequest(InputStream input, OutputStream output, Context context) {
15+
16+
}
17+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package software.aws.lambda.handlers;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import software.aws.lambda.tracing.PowerToolTracing;
6+
7+
public class PowerTracerToolEnabledWithException implements RequestHandler<Object, Object> {
8+
9+
@Override
10+
@PowerToolTracing(namespace = "lambdaHandler")
11+
public Object handleRequest(Object input, Context context) {
12+
throw new RuntimeException("I am failing!");
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package software.aws.lambda.handlers;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import software.aws.lambda.tracing.PowerToolTracing;
6+
7+
public class PowerTracerToolEnabledWithNoMetaData implements RequestHandler<Object, Object> {
8+
9+
@Override
10+
@PowerToolTracing(captureResponse = false, captureError = false)
11+
public Object handleRequest(Object input, Context context) {
12+
return null;
13+
}
14+
}

src/test/java/software/aws/lambda/logging/internal/LambdaLoggingAspectTest.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
import org.junit.jupiter.api.BeforeEach;
1616
import org.junit.jupiter.api.Test;
1717
import org.mockito.Mock;
18+
import software.aws.lambda.handlers.PowerToolDisabled;
19+
import software.aws.lambda.handlers.PowerToolDisabledForStream;
20+
import software.aws.lambda.handlers.PowerLogToolEnabled;
21+
import software.aws.lambda.handlers.PowerLogToolEnabledForStream;
22+
import software.aws.lambda.handlers.PowerToolLogEventEnabled;
23+
import software.aws.lambda.handlers.PowerToolLogEventEnabledForStream;
1824
import software.aws.lambda.internal.LambdaHandlerProcessor;
1925

2026
import static org.assertj.core.api.Assertions.assertThat;
@@ -84,7 +90,7 @@ void shouldSetColdStartFlag() throws IOException {
8490

8591
@Test
8692
void shouldNotSetLambdaContextWhenDisabled() {
87-
requestHandler = new PowerLogToolDisabled();
93+
requestHandler = new PowerToolDisabled();
8894

8995
requestHandler.handleRequest(new Object(), context);
9096

@@ -94,7 +100,7 @@ void shouldNotSetLambdaContextWhenDisabled() {
94100

95101
@Test
96102
void shouldNotSetLambdaContextForStreamHandlerWhenDisabled() throws IOException {
97-
requestStreamHandler = new PowerLogToolDisabledForStream();
103+
requestStreamHandler = new PowerToolDisabledForStream();
98104

99105
requestStreamHandler.handleRequest(null, null, context);
100106

0 commit comments

Comments
 (0)