Skip to content

Commit 002588b

Browse files
authored
Convert async-http-client tests from groovy to java (#8954)
1 parent cc8160c commit 002588b

File tree

4 files changed

+184
-156
lines changed

4 files changed

+184
-156
lines changed

instrumentation/async-http-client/async-http-client-1.9/javaagent/src/test/groovy/AsyncHttpClientTest.groovy

Lines changed: 0 additions & 90 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v1_9;
7+
8+
import static io.opentelemetry.api.common.AttributeKey.stringKey;
9+
10+
import com.ning.http.client.AsyncCompletionHandler;
11+
import com.ning.http.client.AsyncHttpClient;
12+
import com.ning.http.client.AsyncHttpClientConfig;
13+
import com.ning.http.client.Request;
14+
import com.ning.http.client.RequestBuilder;
15+
import com.ning.http.client.Response;
16+
import com.ning.http.client.uri.Uri;
17+
import io.opentelemetry.api.common.AttributeKey;
18+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
19+
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpClientTest;
20+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientInstrumentationExtension;
21+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientResult;
22+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientTestOptions;
23+
import java.net.URI;
24+
import java.util.HashSet;
25+
import java.util.Map;
26+
import java.util.Set;
27+
import java.util.concurrent.ExecutionException;
28+
import org.junit.jupiter.api.extension.RegisterExtension;
29+
30+
class AsyncHttpClientTest extends AbstractHttpClientTest<Request> {
31+
32+
@RegisterExtension
33+
public static final InstrumentationExtension testing =
34+
HttpClientInstrumentationExtension.forAgent();
35+
36+
private static final int CONNECTION_TIMEOUT_MS = (int) CONNECTION_TIMEOUT.toMillis();
37+
private static final int READ_TIMEOUT_MS = (int) READ_TIMEOUT.toMillis();
38+
39+
private static final AsyncHttpClient client =
40+
new AsyncHttpClient(
41+
new AsyncHttpClientConfig.Builder()
42+
.setConnectTimeout(CONNECTION_TIMEOUT_MS)
43+
.setReadTimeout(READ_TIMEOUT_MS)
44+
.build());
45+
46+
@Override
47+
public Request buildRequest(String method, URI uri, Map<String, String> headers) {
48+
RequestBuilder requestBuilder = new RequestBuilder(method).setUri(Uri.create(uri.toString()));
49+
for (Map.Entry<String, String> entry : headers.entrySet()) {
50+
requestBuilder.setHeader(entry.getKey(), entry.getValue());
51+
}
52+
return requestBuilder.build();
53+
}
54+
55+
@Override
56+
public int sendRequest(Request request, String method, URI uri, Map<String, String> headers)
57+
throws ExecutionException, InterruptedException {
58+
return client.executeRequest(request).get().getStatusCode();
59+
}
60+
61+
@Override
62+
public void sendRequestWithCallback(
63+
Request request,
64+
String method,
65+
URI uri,
66+
Map<String, String> headers,
67+
HttpClientResult requestResult) {
68+
client.executeRequest(
69+
request,
70+
new AsyncCompletionHandler<Void>() {
71+
@Override
72+
public Void onCompleted(Response response) throws Exception {
73+
requestResult.complete(response.getStatusCode());
74+
return null;
75+
}
76+
77+
@Override
78+
public void onThrowable(Throwable throwable) {
79+
requestResult.complete(throwable);
80+
}
81+
});
82+
}
83+
84+
@Override
85+
protected void configure(HttpClientTestOptions.Builder optionsBuilder) {
86+
optionsBuilder.disableTestRedirects();
87+
88+
// disable read timeout test for non latest because it is flaky with 1.9.0
89+
if (!Boolean.getBoolean("testLatestDeps")) {
90+
optionsBuilder.disableTestReadTimeout();
91+
}
92+
optionsBuilder.setHttpAttributes(
93+
endpoint -> {
94+
Set<AttributeKey<?>> attributes =
95+
new HashSet<>(HttpClientTestOptions.DEFAULT_HTTP_ATTRIBUTES);
96+
attributes.remove(stringKey("net.protocol.name"));
97+
attributes.remove(stringKey("net.protocol.version"));
98+
return attributes;
99+
});
100+
}
101+
}

instrumentation/async-http-client/async-http-client-2.0/javaagent/src/test/groovy/AsyncHttpClientTest.groovy

Lines changed: 0 additions & 66 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0;
7+
8+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
9+
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpClientTest;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientInstrumentationExtension;
11+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientResult;
12+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientTestOptions;
13+
import java.net.URI;
14+
import java.util.Map;
15+
import java.util.concurrent.ExecutionException;
16+
import org.asynchttpclient.AsyncCompletionHandler;
17+
import org.asynchttpclient.AsyncHttpClient;
18+
import org.asynchttpclient.Dsl;
19+
import org.asynchttpclient.Request;
20+
import org.asynchttpclient.RequestBuilder;
21+
import org.asynchttpclient.Response;
22+
import org.asynchttpclient.uri.Uri;
23+
import org.junit.jupiter.api.extension.RegisterExtension;
24+
25+
class AsyncHttpClientTest extends AbstractHttpClientTest<Request> {
26+
27+
@RegisterExtension
28+
public static final InstrumentationExtension testing =
29+
HttpClientInstrumentationExtension.forAgent();
30+
31+
private static final int CONNECTION_TIMEOUT_MS = (int) CONNECTION_TIMEOUT.toMillis();
32+
33+
// request timeout is needed in addition to connect timeout on async-http-client versions 2.1.0+
34+
private static final AsyncHttpClient client =
35+
Dsl.asyncHttpClient(
36+
Dsl.config()
37+
.setConnectTimeout(CONNECTION_TIMEOUT_MS)
38+
.setRequestTimeout(CONNECTION_TIMEOUT_MS));
39+
40+
@Override
41+
public Request buildRequest(String method, URI uri, Map<String, String> headers) {
42+
RequestBuilder requestBuilder = new RequestBuilder(method).setUri(Uri.create(uri.toString()));
43+
for (Map.Entry<String, String> entry : headers.entrySet()) {
44+
requestBuilder.setHeader(entry.getKey(), entry.getValue());
45+
}
46+
return requestBuilder.build();
47+
}
48+
49+
@Override
50+
public int sendRequest(Request request, String method, URI uri, Map<String, String> headers)
51+
throws ExecutionException, InterruptedException {
52+
return client.executeRequest(request).get().getStatusCode();
53+
}
54+
55+
@Override
56+
public void sendRequestWithCallback(
57+
Request request,
58+
String method,
59+
URI uri,
60+
Map<String, String> headers,
61+
HttpClientResult requestResult) {
62+
client.executeRequest(
63+
request,
64+
new AsyncCompletionHandler<Void>() {
65+
@Override
66+
public Void onCompleted(Response response) {
67+
requestResult.complete(response.getStatusCode());
68+
return null;
69+
}
70+
71+
@Override
72+
public void onThrowable(Throwable throwable) {
73+
requestResult.complete(throwable);
74+
}
75+
});
76+
}
77+
78+
@Override
79+
protected void configure(HttpClientTestOptions.Builder optionsBuilder) {
80+
optionsBuilder.disableTestRedirects();
81+
optionsBuilder.setUserAgent("AHC");
82+
}
83+
}

0 commit comments

Comments
 (0)