opentelemetry-java-instrume.../instrumentation/play/play-2.4/javaagent/src/test/groovy/client/PlayWsClientTest.groovy

66 lines
1.3 KiB
Groovy

/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package client
import io.opentelemetry.instrumentation.test.AgentTestTrait
import io.opentelemetry.instrumentation.test.base.HttpClientTest
import play.libs.ws.WS
import spock.lang.AutoCleanup
import spock.lang.Shared
import spock.lang.Subject
import spock.lang.Timeout
// Play 2.6+ uses a separately versioned client that shades the underlying dependency
// This means our built in instrumentation won't work.
@Timeout(5)
class PlayWsClientTest extends HttpClientTest implements AgentTestTrait {
@Subject
@Shared
@AutoCleanup
def client = WS.newClient(-1)
@Override
int doRequest(String method, URI uri, Map<String, String> headers, Closure callback) {
def request = client.url(uri.toString())
headers.entrySet().each {
request.setHeader(it.key, it.value)
}
def status = request.execute(method).thenApply {
callback?.call()
it
}.thenApply {
it.status
}
return status.toCompletableFuture().get()
}
@Override
String userAgent() {
return "AHC"
}
@Override
boolean testRedirects() {
false
}
@Override
boolean testConnectionFailure() {
false
}
@Override
boolean testRemoteConnection() {
return false
}
@Override
boolean testCausality() {
return false
}
}