Skip to content

Commit 827566a

Browse files
committed
attempt again
1 parent 3cf37dd commit 827566a

File tree

4 files changed

+116
-2
lines changed

4 files changed

+116
-2
lines changed

instrumentation/aws-sdk/aws-sdk-1.11/library/src/test/groovy/io/opentelemetry/instrumentation/awssdk/v1_11/Aws1ClientTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.awssdk.v1_11
77

88
import io.opentelemetry.instrumentation.test.LibraryTestTrait
99

10-
class Aws1ClientTest extends AbstractAws1ClientTest implements LibraryTestTrait {
10+
class Aws1ClientTest1 extends AbstractAws1ClientTest implements LibraryTestTrait {
1111
@Override
1212
def configureClient(def client) {
1313
client.withRequestHandlers(
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.awssdk.v1_11;
7+
8+
import com.amazonaws.client.builder.AwsClientBuilder;
9+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
11+
import org.junit.jupiter.api.extension.RegisterExtension;
12+
13+
class Aws1ClientTest extends AbstractAws1ClientTest {
14+
@RegisterExtension
15+
private static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
16+
17+
@Override
18+
protected InstrumentationExtension testing() {
19+
return testing;
20+
}
21+
22+
@Override
23+
public AwsClientBuilder configureClient(AwsClientBuilder client) {
24+
return client.withRequestHandlers(
25+
AwsSdkTelemetry.builder(testing().getOpenTelemetry())
26+
.setCaptureExperimentalSpanAttributes(true)
27+
.build()
28+
.newRequestHandler());
29+
}
30+
}

instrumentation/aws-sdk/aws-sdk-1.11/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v1_11/AbstractAws1ClientTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ import static io.opentelemetry.api.trace.SpanKind.PRODUCER
5353
import static io.opentelemetry.api.trace.StatusCode.ERROR
5454
import static io.opentelemetry.instrumentation.test.utils.PortUtils.UNUSABLE_PORT
5555

56-
abstract class AbstractAws1ClientTest extends InstrumentationSpecification {
56+
abstract class AbstractAws1ClientTest2 extends InstrumentationSpecification {
5757

5858
abstract <T> T configureClient(T client)
5959

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.awssdk.v1_11;
7+
8+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
9+
10+
import com.amazonaws.SDKGlobalConfiguration;
11+
import com.amazonaws.auth.AWSStaticCredentialsProvider;
12+
import com.amazonaws.auth.AnonymousAWSCredentials;
13+
import com.amazonaws.client.builder.AwsClientBuilder;
14+
import com.amazonaws.handlers.RequestHandler2;
15+
import com.amazonaws.services.s3.AmazonS3;
16+
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
17+
import com.amazonaws.services.s3.model.Bucket;
18+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
19+
import io.opentelemetry.testing.internal.armeria.common.HttpResponse;
20+
import io.opentelemetry.testing.internal.armeria.common.HttpStatus;
21+
import io.opentelemetry.testing.internal.armeria.common.MediaType;
22+
import io.opentelemetry.testing.internal.armeria.testing.junit5.server.mock.MockWebServerExtension;
23+
import java.lang.reflect.Field;
24+
import java.util.List;
25+
import org.junit.jupiter.api.AfterAll;
26+
import org.junit.jupiter.api.BeforeAll;
27+
import org.junit.jupiter.api.Test;
28+
29+
public abstract class AbstractAws1ClientTest {
30+
protected abstract InstrumentationExtension testing();
31+
32+
private static final MockWebServerExtension server = new MockWebServerExtension();
33+
private static AwsClientBuilder.EndpointConfiguration endpoint;
34+
private static final AWSStaticCredentialsProvider credentialsProvider =
35+
new AWSStaticCredentialsProvider(new AnonymousAWSCredentials());
36+
37+
@BeforeAll
38+
public static void setUp() {
39+
System.setProperty(SDKGlobalConfiguration.ACCESS_KEY_SYSTEM_PROPERTY, "my-access-key");
40+
System.setProperty(SDKGlobalConfiguration.SECRET_KEY_SYSTEM_PROPERTY, "my-secret-key");
41+
server.start();
42+
endpoint = new AwsClientBuilder.EndpointConfiguration("${server.httpUri()}", "us-west-2");
43+
server.beforeTestExecution(null);
44+
}
45+
46+
@AfterAll
47+
public static void cleanUp() {
48+
System.clearProperty(SDKGlobalConfiguration.ACCESS_KEY_SYSTEM_PROPERTY);
49+
System.clearProperty(SDKGlobalConfiguration.SECRET_KEY_SYSTEM_PROPERTY);
50+
server.stop();
51+
}
52+
53+
// abstract AwsClientBuilder<?> configureClient(AwsClientBuilder client);
54+
55+
@Test
56+
@SuppressWarnings("unchecked")
57+
public void test() throws NoSuchFieldException, IllegalAccessException {
58+
String body = "";
59+
AmazonS3ClientBuilder clientBuilder =
60+
AmazonS3ClientBuilder.standard().withPathStyleAccessEnabled(true);
61+
AmazonS3 client =
62+
(AmazonS3)
63+
configureClient(clientBuilder)
64+
.withEndpointConfiguration(endpoint)
65+
.withCredentials(credentialsProvider)
66+
.build();
67+
68+
server.enqueue(HttpResponse.of(HttpStatus.OK, MediaType.PLAIN_TEXT_UTF_8, body));
69+
Bucket response = client.createBucket("testbucket");
70+
71+
assertThat(response).isNotNull();
72+
73+
Field requestHandler2sField = client.getClass().getDeclaredField("requestHandler2s");
74+
requestHandler2sField.setAccessible(true);
75+
List<RequestHandler2> requestHandler2s =
76+
(List<RequestHandler2>) requestHandler2sField.get(client);
77+
78+
assertThat(requestHandler2s).isNotNull();
79+
assertThat(
80+
requestHandler2s.stream()
81+
.filter(h -> "TracingRequestHandler".equals(h.getClass().getSimpleName())))
82+
.isNotNull();
83+
}
84+
}

0 commit comments

Comments
 (0)