Skip to content

Commit 2d7a04d

Browse files
committed
feat: Add unit tests for SNS, SecretsManager, and Lambda changes in V2 SDK
1 parent 393e3d4 commit 2d7a04d

File tree

5 files changed

+50
-0
lines changed

5 files changed

+50
-0
lines changed

instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ dependencies {
8686
testLibrary("software.amazon.awssdk:ses:2.2.0")
8787
testLibrary("software.amazon.awssdk:sfn:2.2.0")
8888
testLibrary("software.amazon.awssdk:secretsmanager:2.2.0")
89+
testLibrary("software.amazon.awssdk:lambda:2.2.0")
8990

9091
// last version that does not use json protocol
9192
latestDepTestLibrary("software.amazon.awssdk:sqs:2.21.17")

instrumentation/aws-sdk/aws-sdk-2.2/library-autoconfigure/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ dependencies {
2323
testLibrary("software.amazon.awssdk:sns:2.2.0")
2424
testLibrary("software.amazon.awssdk:sfn:2.2.0")
2525
testLibrary("software.amazon.awssdk:secretsmanager:2.2.0")
26+
testLibrary("software.amazon.awssdk:lambda:2.2.0")
2627

2728
// last version that does not use json protocol
2829
latestDepTestLibrary("software.amazon.awssdk:sqs:2.21.17")

instrumentation/aws-sdk/aws-sdk-2.2/library/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ dependencies {
2121
testLibrary("software.amazon.awssdk:ses:2.2.0")
2222
testLibrary("software.amazon.awssdk:sfn:2.2.0")
2323
testLibrary("software.amazon.awssdk:secretsmanager:2.2.0")
24+
testLibrary("software.amazon.awssdk:lambda:2.2.0")
2425

2526
// last version that does not use json protocol
2627
latestDepTestLibrary("software.amazon.awssdk:sqs:2.21.17")

instrumentation/aws-sdk/aws-sdk-2.2/testing/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ dependencies {
2020
compileOnly("software.amazon.awssdk:sns:2.2.0")
2121
compileOnly("software.amazon.awssdk:ses:2.2.0")
2222
compileOnly("software.amazon.awssdk:sfn:2.2.0")
23+
compileOnly("software.amazon.awssdk:lambda:2.2.0")
24+
compileOnly("software.amazon.awssdk:secretsmanager:2.2.0")
2325

2426
// needed for SQS - using emq directly as localstack references emq v0.15.7 ie WITHOUT AWS trace header propagation
2527
implementation("org.elasticmq:elasticmq-rest-sqs_2.12:1.0.0")

instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientTest.groovy

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,16 @@ import software.amazon.awssdk.services.sqs.model.SendMessageRequest
3636
import software.amazon.awssdk.services.sfn.SfnClient
3737
import software.amazon.awssdk.services.sfn.model.DescribeStateMachineRequest
3838
import software.amazon.awssdk.services.sfn.model.DescribeActivityRequest
39+
import software.amazon.awssdk.services.lambda.LambdaClient
40+
import software.amazon.awssdk.services.lambda.model.GetFunctionRequest
41+
import software.amazon.awssdk.services.lambda.model.GetEventSourceMappingRequest;
42+
import software.amazon.awssdk.services.sns.SnsClient;
43+
import software.amazon.awssdk.services.sns.model.PublishRequest;
44+
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
45+
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
3946
import spock.lang.Unroll
4047

48+
4149
import java.time.Duration
4250
import java.util.concurrent.Future
4351

@@ -138,6 +146,14 @@ abstract class AbstractAws2ClientTest extends AbstractAws2ClientCoreTest {
138146
"aws.stepfunctions.state_machine.arn" "stateMachineArn"
139147
} else if (service == "Sfn" && operation == "DescribeActivity") {
140148
"aws.stepfunctions.activity.arn" "activityArn"
149+
} else if (service == "Lambda" && operation == "GetFunction") {
150+
"aws.lambda.function.name" "functionName"
151+
} else if (service == "Lambda" && operation == "GetEventSourceMapping") {
152+
"aws.lambda.resource_mapping.id" "sourceEventId"
153+
} else if (service == "Sns") {
154+
"aws.sns.topic.arn" "topicArn"
155+
} else if (service == "SecretsManager") {
156+
"aws.secretsmanager.secret.arn" "someSecretArn"
141157
}
142158

143159
}
@@ -187,6 +203,35 @@ abstract class AbstractAws2ClientTest extends AbstractAws2ClientCoreTest {
187203
"Sfn" | "DescribeActivity" | "POST" | "UNKNOWN" | SfnClient.builder()
188204
| { c -> c.describeActivity(DescribeActivityRequest.builder().activityArn("activityArn").build()) }
189205
| ""
206+
"Lambda" | "GetFunction" | "GET" | "UNKNOWN" | LambdaClient.builder()
207+
| { c -> c.getFunction(GetFunctionRequest.builder().functionName("functionName").build()) }
208+
| ""
209+
"Lambda" | "GetEventSourceMapping" | "GET" |"UNKNOWN" | LambdaClient.builder()
210+
| { c -> c.getEventSourceMapping(GetEventSourceMappingRequest.builder().uuid("sourceEventId").build()) }
211+
| ""
212+
"Sns" | "Publish" | "POST" | "d74b8436-ae13-5ab4-a9ff-ce54dfea72a0" | SnsClient.builder()
213+
| { c -> c.publish(PublishRequest.builder().topicArn("topicArn").message("message").build()) }
214+
| """
215+
<PublishResponse xmlns="https://sns.amazonaws.com/doc/2010-03-31/">
216+
<PublishResult>
217+
<MessageId>567910cd-659e-55d4-8ccb-5aaf14679dc0</MessageId>
218+
</PublishResult>
219+
<ResponseMetadata>
220+
<RequestId>d74b8436-ae13-5ab4-a9ff-ce54dfea72a0</RequestId>
221+
</ResponseMetadata>
222+
</PublishResponse>
223+
"""
224+
"SecretsManager" | "GetSecretValue" | "POST" | "UNKNOWN" | SecretsManagerClient.builder()
225+
| { c -> c.getSecretValue(GetSecretValueRequest.builder().secretId("someSecret1").build()) }
226+
| """
227+
{
228+
"ARN":"someSecretArn",
229+
"CreatedDate":1.523477145713E9,
230+
"Name":"MyTestDatabaseSecret",
231+
"SecretString":"{\\n \\"username\\":\\"david\\",\\n \\"password\\":\\"EXAMPLE-PASSWORD\\"\\n}\\n",
232+
"VersionId":"EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"
233+
}
234+
"""
190235
}
191236

192237
def "send #operation async request with builder #builder.class.getName() mocked response"() {

0 commit comments

Comments
 (0)