Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Http client instrumentation TCK #3258

Merged
Prev Previous commit
Next Next commit
Mark as incubating, add client exception
  • Loading branch information
shakuzen committed Jul 11, 2022
commit 3c74cfd7fc93d02a3fb3d3b2afe044575009df76
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
import com.github.tomakehurst.wiremock.junit5.WireMockTest;
import io.micrometer.core.annotation.Incubating;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

Expand All @@ -35,6 +36,7 @@
* to receive real requests from an instrumented HTTP client.
*/
@WireMockTest
@Incubating(since = "1.9.2")
public abstract class HttpClientTimingInstrumentationVerificationTests extends InstrumentationVerificationTests {

enum HttpMethod {
Expand Down Expand Up @@ -136,4 +138,15 @@ void serverException(WireMockRuntimeInfo wmRuntimeInfo) {
assertThat(timer.totalTime(TimeUnit.NANOSECONDS)).isPositive();
}

@Test
void clientException(WireMockRuntimeInfo wmRuntimeInfo) {
stubFor(get(anyUrl()).willReturn(badRequest()));

sendHttpRequest(HttpMethod.GET, URI.create(wmRuntimeInfo.getHttpBaseUrl()), "/socks");

Timer timer = getRegistry().get(timerName()).tags("method", "GET", "status", "400").timer();
assertThat(timer.count()).isEqualTo(1);
assertThat(timer.totalTime(TimeUnit.NANOSECONDS)).isPositive();
}

}