66 lines
1.3 KiB
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
|
|
}
|
|
}
|