Skip to content

Commit a83b600

Browse files
authoredDec 12, 2024··
Convert some ratpack tests to java (#12825)
1 parent 61b8f72 commit a83b600

File tree

40 files changed

+1092
-1076
lines changed

40 files changed

+1092
-1076
lines changed
 

‎instrumentation/ratpack/ratpack-1.4/javaagent/src/test/groovy/server/RatpackAsyncHttpServerTest.groovy

-22
This file was deleted.

‎instrumentation/ratpack/ratpack-1.4/javaagent/src/test/groovy/server/RatpackForkedHttpServerTest.groovy

-27
This file was deleted.

‎instrumentation/ratpack/ratpack-1.4/javaagent/src/test/groovy/server/RatpackHttpServerTest.groovy

-23
This file was deleted.

‎instrumentation/ratpack/ratpack-1.4/javaagent/src/test/groovy/server/RatpackRoutesTest.groovy

-21
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.javaagent.instrumentation.ratpack;
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.client;
77

88
import io.opentelemetry.instrumentation.ratpack.client.AbstractRatpackForkedHttpClientTest;
99
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.javaagent.instrumentation.ratpack;
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.client;
77

88
import io.opentelemetry.instrumentation.ratpack.client.AbstractRatpackHttpClientTest;
99
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.javaagent.instrumentation.ratpack;
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.client;
77

88
import io.opentelemetry.instrumentation.ratpack.client.AbstractRatpackPooledHttpClientTest;
99
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
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.javaagent.instrumentation.ratpack.server;
7+
8+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackAsyncHttpServerTest;
9+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
11+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
import ratpack.server.RatpackServerSpec;
14+
15+
class RatpackAsyncHttpServerTest extends AbstractRatpackAsyncHttpServerTest {
16+
17+
@RegisterExtension
18+
public static final InstrumentationExtension testing =
19+
HttpServerInstrumentationExtension.forAgent();
20+
21+
@Override
22+
protected void configure(RatpackServerSpec serverSpec) {}
23+
24+
@Override
25+
protected void configure(HttpServerTestOptions options) {
26+
super.configure(options);
27+
28+
options.setHasResponseCustomizer(endpoint -> true);
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.server;
7+
8+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackForkedHttpServerTest;
9+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
11+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
import ratpack.server.RatpackServerSpec;
14+
15+
class RatpackForkedHttpServerTest extends AbstractRatpackForkedHttpServerTest {
16+
17+
@RegisterExtension
18+
public static final InstrumentationExtension testing =
19+
HttpServerInstrumentationExtension.forAgent();
20+
21+
@Override
22+
protected void configure(RatpackServerSpec serverSpec) {}
23+
24+
@Override
25+
protected void configure(HttpServerTestOptions options) {
26+
super.configure(options);
27+
28+
options.setHasResponseCustomizer(endpoint -> true);
29+
options.setTestHttpPipelining(false);
30+
}
31+
}
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.javaagent.instrumentation.ratpack.server;
7+
8+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackHttpServerTest;
9+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
11+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
import ratpack.server.RatpackServerSpec;
14+
15+
class RatpackHttpServerTest extends AbstractRatpackHttpServerTest {
16+
17+
@RegisterExtension
18+
public static final InstrumentationExtension testing =
19+
HttpServerInstrumentationExtension.forAgent();
20+
21+
@Override
22+
protected void configure(RatpackServerSpec serverSpec) {}
23+
24+
@Override
25+
protected void configure(HttpServerTestOptions options) {
26+
super.configure(options);
27+
28+
options.setHasResponseCustomizer(endpoint -> true);
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.server;
7+
8+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackRoutesTest;
9+
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
11+
import org.junit.jupiter.api.extension.RegisterExtension;
12+
import ratpack.server.RatpackServerSpec;
13+
14+
class RatpackRoutesTest extends AbstractRatpackRoutesTest {
15+
16+
@RegisterExtension
17+
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
18+
19+
@Override
20+
protected InstrumentationExtension testing() {
21+
return testing;
22+
}
23+
24+
@Override
25+
protected void configure(RatpackServerSpec serverSpec) {}
26+
27+
@Override
28+
protected boolean hasHandlerSpan() {
29+
return true;
30+
}
31+
}

‎instrumentation/ratpack/ratpack-1.4/testing/src/main/groovy/io/opentelemetry/instrumentation/ratpack/server/AbstractRatpackAsyncHttpServerTest.groovy

-142
This file was deleted.

‎instrumentation/ratpack/ratpack-1.4/testing/src/main/groovy/io/opentelemetry/instrumentation/ratpack/server/AbstractRatpackForkedHttpServerTest.groovy

-206
This file was deleted.

‎instrumentation/ratpack/ratpack-1.4/testing/src/main/groovy/io/opentelemetry/instrumentation/ratpack/server/AbstractRatpackHttpServerTest.groovy

-274
This file was deleted.

‎instrumentation/ratpack/ratpack-1.4/testing/src/main/groovy/io/opentelemetry/instrumentation/ratpack/server/AbstractRatpackRoutesTest.groovy

-143
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.ratpack.server;
7+
8+
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint;
9+
import java.util.function.Consumer;
10+
import ratpack.exec.Promise;
11+
12+
public abstract class AbstractRatpackAsyncHttpServerTest extends AbstractRatpackHttpServerTest {
13+
14+
@Override
15+
protected void process(ServerEndpoint endpoint, Consumer<ServerEndpoint> consumer) {
16+
Promise.sync(() -> endpoint).then(consumer::accept);
17+
}
18+
}
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.instrumentation.ratpack.server;
7+
8+
import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.SUCCESS;
9+
import static org.assertj.core.api.Assertions.assertThat;
10+
11+
import io.opentelemetry.api.trace.SpanKind;
12+
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint;
13+
import io.opentelemetry.sdk.testing.assertj.SpanDataAssert;
14+
import io.opentelemetry.testing.internal.armeria.common.AggregatedHttpRequest;
15+
import io.opentelemetry.testing.internal.armeria.common.AggregatedHttpResponse;
16+
import java.util.ArrayList;
17+
import java.util.List;
18+
import java.util.function.Consumer;
19+
import org.junit.jupiter.api.Test;
20+
import ratpack.exec.Execution;
21+
import ratpack.exec.Operation;
22+
import ratpack.exec.Promise;
23+
import ratpack.exec.Result;
24+
import ratpack.exec.util.ParallelBatch;
25+
import ratpack.handling.Chain;
26+
27+
public abstract class AbstractRatpackForkedHttpServerTest extends AbstractRatpackHttpServerTest {
28+
29+
private static final ServerEndpoint FORK_AND_YIELD_ALL =
30+
new ServerEndpoint(
31+
"FORK_AND_YIELD_ALL", "fork_and_yieldAll", SUCCESS.getStatus(), SUCCESS.getBody(), false);
32+
33+
@Override
34+
protected void process(ServerEndpoint endpoint, Consumer<ServerEndpoint> consumer) {
35+
Promise.sync(() -> endpoint).fork().then(consumer::accept);
36+
}
37+
38+
@Override
39+
protected void registerHandlers(Chain chain) throws Exception {
40+
chain.prefix(
41+
FORK_AND_YIELD_ALL.rawPath(),
42+
chain1 ->
43+
chain1.all(
44+
context -> {
45+
Promise<ServerEndpoint> promise =
46+
Promise.async(
47+
upstream ->
48+
Execution.fork()
49+
.start(
50+
Operation.of(
51+
() -> upstream.accept(Result.success(SUCCESS)))));
52+
ParallelBatch.of(promise)
53+
.yieldAll()
54+
.flatMap(list -> Promise.sync(() -> list.get(0).getValue()))
55+
.then(
56+
endpoint ->
57+
controller(
58+
endpoint,
59+
() ->
60+
context
61+
.getResponse()
62+
.status(endpoint.getStatus())
63+
.send(endpoint.getBody())));
64+
}));
65+
}
66+
67+
@Test
68+
void forkAndYieldAll() {
69+
AggregatedHttpRequest request = request(FORK_AND_YIELD_ALL, "GET");
70+
AggregatedHttpResponse response = client.execute(request).aggregate().join();
71+
72+
assertThat(response.status().code()).isEqualTo(SUCCESS.getStatus());
73+
assertThat(response.contentUtf8()).isEqualTo(SUCCESS.getBody());
74+
75+
testing()
76+
.waitAndAssertTraces(
77+
trace -> {
78+
List<Consumer<SpanDataAssert>> assertions = new ArrayList<>();
79+
assertions.add(
80+
span ->
81+
span.hasName("GET /fork_and_yieldAll")
82+
.hasKind(SpanKind.SERVER)
83+
.hasNoParent());
84+
boolean hasHandlerSpan = hasHandlerSpan(FORK_AND_YIELD_ALL);
85+
if (hasHandlerSpan) {
86+
assertions.add(
87+
span ->
88+
span.hasName("/fork_and_yieldAll")
89+
.hasKind(SpanKind.INTERNAL)
90+
.hasParent(trace.getSpan(0)));
91+
}
92+
assertions.add(
93+
span ->
94+
span.hasName("controller")
95+
.hasKind(SpanKind.INTERNAL)
96+
.hasParent(trace.getSpan(hasHandlerSpan ? 1 : 0)));
97+
98+
trace.hasSpansSatisfyingExactly(assertions);
99+
});
100+
}
101+
}

‎instrumentation/ratpack/ratpack-1.4/testing/src/main/java/io/opentelemetry/instrumentation/ratpack/server/AbstractRatpackHttpServerTest.java

+383
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.ratpack.server;
7+
8+
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
9+
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
10+
import static io.opentelemetry.semconv.ClientAttributes.CLIENT_ADDRESS;
11+
import static io.opentelemetry.semconv.HttpAttributes.HTTP_REQUEST_METHOD;
12+
import static io.opentelemetry.semconv.HttpAttributes.HTTP_RESPONSE_STATUS_CODE;
13+
import static io.opentelemetry.semconv.HttpAttributes.HTTP_ROUTE;
14+
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_PEER_ADDRESS;
15+
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_PEER_PORT;
16+
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_PROTOCOL_VERSION;
17+
import static io.opentelemetry.semconv.ServerAttributes.SERVER_ADDRESS;
18+
import static io.opentelemetry.semconv.ServerAttributes.SERVER_PORT;
19+
import static io.opentelemetry.semconv.UrlAttributes.URL_PATH;
20+
import static io.opentelemetry.semconv.UrlAttributes.URL_QUERY;
21+
import static io.opentelemetry.semconv.UrlAttributes.URL_SCHEME;
22+
import static io.opentelemetry.semconv.UserAgentAttributes.USER_AGENT_ORIGINAL;
23+
import static org.assertj.core.api.Assertions.assertThat;
24+
25+
import io.opentelemetry.api.common.Attributes;
26+
import io.opentelemetry.api.trace.SpanKind;
27+
import io.opentelemetry.instrumentation.test.utils.PortUtils;
28+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
29+
import io.opentelemetry.sdk.testing.assertj.SpanDataAssert;
30+
import io.opentelemetry.testing.internal.armeria.client.WebClient;
31+
import io.opentelemetry.testing.internal.armeria.common.AggregatedHttpResponse;
32+
import java.net.InetAddress;
33+
import java.util.ArrayList;
34+
import java.util.List;
35+
import java.util.function.Consumer;
36+
import java.util.stream.Stream;
37+
import org.junit.jupiter.api.AfterAll;
38+
import org.junit.jupiter.api.BeforeAll;
39+
import org.junit.jupiter.api.TestInstance;
40+
import org.junit.jupiter.params.ParameterizedTest;
41+
import org.junit.jupiter.params.provider.Arguments;
42+
import org.junit.jupiter.params.provider.MethodSource;
43+
import ratpack.func.Action;
44+
import ratpack.handling.Chain;
45+
import ratpack.path.PathBinding;
46+
import ratpack.server.RatpackServer;
47+
import ratpack.server.RatpackServerSpec;
48+
49+
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
50+
public abstract class AbstractRatpackRoutesTest {
51+
52+
private static RatpackServer app;
53+
private static WebClient client;
54+
55+
protected abstract InstrumentationExtension testing();
56+
57+
protected abstract void configure(RatpackServerSpec serverSpec) throws Exception;
58+
59+
protected abstract boolean hasHandlerSpan();
60+
61+
@BeforeAll
62+
void setUp() throws Exception {
63+
app =
64+
RatpackServer.start(
65+
ratpackServerSpec -> {
66+
ratpackServerSpec.serverConfig(
67+
serverConfigBuilder -> {
68+
serverConfigBuilder.port(PortUtils.findOpenPort());
69+
serverConfigBuilder.address(InetAddress.getByName("localhost"));
70+
});
71+
72+
Action<? super Chain> action =
73+
chain ->
74+
chain.all(
75+
context ->
76+
context.render(context.get(PathBinding.class).getDescription()));
77+
ratpackServerSpec.handlers(
78+
chain -> {
79+
chain.prefix("a", action);
80+
chain.prefix("b/::\\d+", action);
81+
chain.prefix("c/:val?", action);
82+
chain.prefix("d/:val", action);
83+
chain.prefix("e/:val?:\\d+", action);
84+
chain.prefix("f/:val:\\d+", action);
85+
});
86+
87+
configure(ratpackServerSpec);
88+
});
89+
90+
// Force HTTP/1 with h1c to prevent tracing of upgrade request.
91+
client = WebClient.of("h1c://localhost:" + app.getBindPort());
92+
}
93+
94+
@AfterAll
95+
void cleanUp() throws Exception {
96+
app.stop();
97+
}
98+
99+
private static Stream<Arguments> provideBindingArguments() {
100+
return Stream.of(
101+
Arguments.of("a", "a"),
102+
Arguments.of("b/123", "b/::\\d+"),
103+
Arguments.of("c", "c/:val?"),
104+
Arguments.of("c/123", "c/:val?"),
105+
Arguments.of("c/foo", "c/:val?"),
106+
Arguments.of("d/123", "d/:val"),
107+
Arguments.of("d/foo", "d/:val"),
108+
Arguments.of("e", "e/:val?:\\d+"),
109+
Arguments.of("e/123", "e/:val?:\\d+"),
110+
Arguments.of("e/foo", "e/:val?:\\d+"),
111+
Arguments.of("f/123", "f/:val:\\d+"));
112+
}
113+
114+
@ParameterizedTest
115+
@MethodSource("provideBindingArguments")
116+
void bindingsForPath(String path, String route) {
117+
AggregatedHttpResponse response = client.get(path).aggregate().join();
118+
119+
assertThat(response.status().code()).isEqualTo(200);
120+
assertThat(response.contentUtf8()).isEqualTo(route);
121+
122+
testing()
123+
.waitAndAssertTraces(
124+
trace -> {
125+
List<Consumer<SpanDataAssert>> assertions = new ArrayList<>();
126+
assertions.add(
127+
span ->
128+
span.hasName("GET /" + route)
129+
.hasKind(SpanKind.SERVER)
130+
.hasNoParent()
131+
.hasAttributesSatisfyingExactly(
132+
equalTo(NETWORK_PROTOCOL_VERSION, "1.1"),
133+
equalTo(SERVER_ADDRESS, "localhost"),
134+
equalTo(SERVER_PORT, app.getBindPort()),
135+
equalTo(CLIENT_ADDRESS, hasHandlerSpan() ? "127.0.0.1" : null),
136+
equalTo(NETWORK_PEER_ADDRESS, hasHandlerSpan() ? "127.0.0.1" : null),
137+
satisfies(
138+
NETWORK_PEER_PORT,
139+
port ->
140+
port.satisfiesAnyOf(
141+
val -> assertThat(val).isInstanceOf(Long.class),
142+
val -> assertThat(val).isNull())),
143+
satisfies(
144+
NETWORK_PEER_PORT,
145+
val -> {
146+
if (hasHandlerSpan()) {
147+
val.isInstanceOf(Long.class);
148+
} else {
149+
val.isNull();
150+
}
151+
}),
152+
equalTo(HTTP_REQUEST_METHOD, "GET"),
153+
equalTo(HTTP_RESPONSE_STATUS_CODE, 200),
154+
satisfies(USER_AGENT_ORIGINAL, val -> val.isInstanceOf(String.class)),
155+
equalTo(URL_SCHEME, "http"),
156+
equalTo(URL_PATH, "/" + path),
157+
satisfies(URL_QUERY, val -> val.isNullOrEmpty()),
158+
equalTo(HTTP_ROUTE, "/" + route)));
159+
if (hasHandlerSpan()) {
160+
assertions.add(
161+
span ->
162+
span.hasName("/" + route)
163+
.hasKind(SpanKind.INTERNAL)
164+
.hasParent(trace.getSpan(0))
165+
.hasAttributes(Attributes.empty()));
166+
}
167+
168+
trace.hasSpansSatisfyingExactly(assertions);
169+
});
170+
}
171+
}

‎instrumentation/ratpack/ratpack-1.7/javaagent/src/test/groovy/server/RatpackAsyncHttpServerTest.groovy

-22
This file was deleted.

‎instrumentation/ratpack/ratpack-1.7/javaagent/src/test/groovy/server/RatpackForkedHttpServerTest.groovy

-27
This file was deleted.

‎instrumentation/ratpack/ratpack-1.7/javaagent/src/test/groovy/server/RatpackHttpServerTest.groovy

-22
This file was deleted.

‎instrumentation/ratpack/ratpack-1.7/javaagent/src/test/groovy/server/RatpackRoutesTest.groovy

-21
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7.client;
77

88
import io.opentelemetry.instrumentation.ratpack.client.AbstractRatpackForkedHttpClientTest;
99
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7.client;
77

88
import io.opentelemetry.instrumentation.ratpack.client.AbstractRatpackHttpClientTest;
99
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7.client;
77

88
import io.opentelemetry.instrumentation.ratpack.client.AbstractRatpackPooledHttpClientTest;
99
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7.client;
77

88
import io.netty.channel.ConnectTimeoutException;
99
import java.net.URI;
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.javaagent.instrumentation.ratpack.v1_7.server;
7+
8+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackAsyncHttpServerTest;
9+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
11+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
import ratpack.server.RatpackServerSpec;
14+
15+
class RatpackAsyncHttpServerTest extends AbstractRatpackAsyncHttpServerTest {
16+
17+
@RegisterExtension
18+
public static final InstrumentationExtension testing =
19+
HttpServerInstrumentationExtension.forAgent();
20+
21+
@Override
22+
protected void configure(RatpackServerSpec serverSpec) {}
23+
24+
@Override
25+
protected void configure(HttpServerTestOptions options) {
26+
super.configure(options);
27+
28+
options.setHasResponseCustomizer(endpoint -> true);
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7.server;
7+
8+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackForkedHttpServerTest;
9+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
11+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
import ratpack.server.RatpackServerSpec;
14+
15+
class RatpackForkedHttpServerTest extends AbstractRatpackForkedHttpServerTest {
16+
17+
@RegisterExtension
18+
public static final InstrumentationExtension testing =
19+
HttpServerInstrumentationExtension.forAgent();
20+
21+
@Override
22+
protected void configure(RatpackServerSpec serverSpec) {}
23+
24+
@Override
25+
protected void configure(HttpServerTestOptions options) {
26+
super.configure(options);
27+
28+
options.setHasResponseCustomizer(endpoint -> true);
29+
options.setTestHttpPipelining(false);
30+
}
31+
}
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.javaagent.instrumentation.ratpack.v1_7.server;
7+
8+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackHttpServerTest;
9+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
11+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
import ratpack.server.RatpackServerSpec;
14+
15+
class RatpackHttpServerTest extends AbstractRatpackHttpServerTest {
16+
17+
@RegisterExtension
18+
public static final InstrumentationExtension testing =
19+
HttpServerInstrumentationExtension.forAgent();
20+
21+
@Override
22+
protected void configure(RatpackServerSpec serverSpec) {}
23+
24+
@Override
25+
protected void configure(HttpServerTestOptions options) {
26+
super.configure(options);
27+
28+
options.setHasResponseCustomizer(endpoint -> true);
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.ratpack.v1_7.server;
7+
8+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackRoutesTest;
9+
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
11+
import org.junit.jupiter.api.extension.RegisterExtension;
12+
import ratpack.server.RatpackServerSpec;
13+
14+
class RatpackRoutesTest extends AbstractRatpackRoutesTest {
15+
16+
@RegisterExtension
17+
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
18+
19+
@Override
20+
protected InstrumentationExtension testing() {
21+
return testing;
22+
}
23+
24+
@Override
25+
protected void configure(RatpackServerSpec serverSpec) {}
26+
27+
@Override
28+
protected boolean hasHandlerSpan() {
29+
return true;
30+
}
31+
}

‎instrumentation/ratpack/ratpack-1.7/library/src/test/groovy/io/opentelemetry/instrumentation/ratpack/v1_7/server/RatpackAsyncHttpServerTest.groovy

-31
This file was deleted.

‎instrumentation/ratpack/ratpack-1.7/library/src/test/groovy/io/opentelemetry/instrumentation/ratpack/v1_7/server/RatpackForkedHttpServerTest.groovy

-31
This file was deleted.

‎instrumentation/ratpack/ratpack-1.7/library/src/test/groovy/io/opentelemetry/instrumentation/ratpack/v1_7/server/RatpackHttpServerTest.groovy

-31
This file was deleted.

‎instrumentation/ratpack/ratpack-1.7/library/src/test/groovy/io/opentelemetry/instrumentation/ratpack/v1_7/server/RatpackRoutesTest.groovy

-26
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.server;
7+
8+
import static java.util.Collections.singletonList;
9+
10+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackAsyncHttpServerTest;
11+
import io.opentelemetry.instrumentation.ratpack.v1_7.RatpackTelemetry;
12+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
13+
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpServerTest;
14+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
15+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
16+
import org.junit.jupiter.api.extension.RegisterExtension;
17+
import ratpack.server.RatpackServerSpec;
18+
19+
class RatpackAsyncHttpServerTest extends AbstractRatpackAsyncHttpServerTest {
20+
21+
@RegisterExtension
22+
public static final InstrumentationExtension testing =
23+
HttpServerInstrumentationExtension.forLibrary();
24+
25+
@Override
26+
protected void configure(RatpackServerSpec serverSpec) throws Exception {
27+
RatpackTelemetry telemetry =
28+
RatpackTelemetry.builder(testing.getOpenTelemetry())
29+
.setCapturedServerRequestHeaders(
30+
singletonList(AbstractHttpServerTest.TEST_REQUEST_HEADER))
31+
.setCapturedServerResponseHeaders(
32+
singletonList(AbstractHttpServerTest.TEST_RESPONSE_HEADER))
33+
.build();
34+
serverSpec.registryOf(telemetry::configureServerRegistry);
35+
}
36+
37+
@Override
38+
protected void configure(HttpServerTestOptions options) {
39+
super.configure(options);
40+
41+
options.setHasHandlerSpan(endpoint -> false);
42+
}
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.server;
7+
8+
import static java.util.Collections.singletonList;
9+
10+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackForkedHttpServerTest;
11+
import io.opentelemetry.instrumentation.ratpack.v1_7.RatpackTelemetry;
12+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
13+
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpServerTest;
14+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
15+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
16+
import org.junit.jupiter.api.extension.RegisterExtension;
17+
import ratpack.server.RatpackServerSpec;
18+
19+
class RatpackForkedHttpServerTest extends AbstractRatpackForkedHttpServerTest {
20+
21+
@RegisterExtension
22+
public static final InstrumentationExtension testing =
23+
HttpServerInstrumentationExtension.forLibrary();
24+
25+
@Override
26+
protected void configure(RatpackServerSpec serverSpec) throws Exception {
27+
RatpackTelemetry telemetry =
28+
RatpackTelemetry.builder(testing.getOpenTelemetry())
29+
.setCapturedServerRequestHeaders(
30+
singletonList(AbstractHttpServerTest.TEST_REQUEST_HEADER))
31+
.setCapturedServerResponseHeaders(
32+
singletonList(AbstractHttpServerTest.TEST_RESPONSE_HEADER))
33+
.build();
34+
serverSpec.registryOf(telemetry::configureServerRegistry);
35+
}
36+
37+
@Override
38+
protected void configure(HttpServerTestOptions options) {
39+
super.configure(options);
40+
41+
options.setHasHandlerSpan(endpoint -> false);
42+
}
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.server;
7+
8+
import static java.util.Collections.singletonList;
9+
10+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackHttpServerTest;
11+
import io.opentelemetry.instrumentation.ratpack.v1_7.RatpackTelemetry;
12+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
13+
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpServerTest;
14+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
15+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
16+
import org.junit.jupiter.api.extension.RegisterExtension;
17+
import ratpack.server.RatpackServerSpec;
18+
19+
class RatpackHttpServerTest extends AbstractRatpackHttpServerTest {
20+
21+
@RegisterExtension
22+
public static final InstrumentationExtension testing =
23+
HttpServerInstrumentationExtension.forLibrary();
24+
25+
@Override
26+
protected void configure(RatpackServerSpec serverSpec) throws Exception {
27+
RatpackTelemetry telemetry =
28+
RatpackTelemetry.builder(testing.getOpenTelemetry())
29+
.setCapturedServerRequestHeaders(
30+
singletonList(AbstractHttpServerTest.TEST_REQUEST_HEADER))
31+
.setCapturedServerResponseHeaders(
32+
singletonList(AbstractHttpServerTest.TEST_RESPONSE_HEADER))
33+
.build();
34+
serverSpec.registryOf(telemetry::configureServerRegistry);
35+
}
36+
37+
@Override
38+
protected void configure(HttpServerTestOptions options) {
39+
super.configure(options);
40+
41+
options.setHasHandlerSpan(endpoint -> false);
42+
}
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.server;
7+
8+
import io.opentelemetry.instrumentation.ratpack.server.AbstractRatpackRoutesTest;
9+
import io.opentelemetry.instrumentation.ratpack.v1_7.RatpackTelemetry;
10+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
11+
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
import ratpack.server.RatpackServerSpec;
14+
15+
class RatpackRoutesTest extends AbstractRatpackRoutesTest {
16+
17+
@RegisterExtension
18+
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
19+
20+
@Override
21+
protected InstrumentationExtension testing() {
22+
return testing;
23+
}
24+
25+
@Override
26+
protected void configure(RatpackServerSpec serverSpec) throws Exception {
27+
RatpackTelemetry telemetry = RatpackTelemetry.create(testing.getOpenTelemetry());
28+
serverSpec.registryOf(telemetry::configureServerRegistry);
29+
}
30+
31+
@Override
32+
protected boolean hasHandlerSpan() {
33+
return false;
34+
}
35+
}

‎testing-common/src/main/java/io/opentelemetry/instrumentation/testing/junit/http/AbstractHttpServerTest.java

+4
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,10 @@ public final boolean hasHttpRouteAttribute(ServerEndpoint endpoint) {
879879
return options.httpAttributes.apply(endpoint).contains(HttpAttributes.HTTP_ROUTE);
880880
}
881881

882+
public final boolean hasHandlerSpan(ServerEndpoint endpoint) {
883+
return options.hasHandlerSpan.test(endpoint);
884+
}
885+
882886
public String expectedHttpRoute(ServerEndpoint endpoint, String method) {
883887
// no need to compute route if we're not expecting it
884888
if (!hasHttpRouteAttribute(endpoint)) {

0 commit comments

Comments
 (0)
Please sign in to comment.