|
@@ -109,9 +109,10 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
for (AggregatedHttpResponse response : responses) {
|
|
for (AggregatedHttpResponse response : responses) {
|
|
assertThat(response.status().code()).isEqualTo(SUCCESS.getStatus());
|
|
assertThat(response.status().code()).isEqualTo(SUCCESS.getStatus());
|
|
assertThat(response.contentUtf8()).isEqualTo(SUCCESS.getBody());
|
|
assertThat(response.contentUtf8()).isEqualTo(SUCCESS.getBody());
|
|
|
|
+ assertResponseHasCustomizedHeaders(response, SUCCESS, null);
|
|
}
|
|
}
|
|
|
|
|
|
- assertTheTraces(count, null, null, method, SUCCESS, responses.get(0));
|
|
|
|
|
|
+ assertTheTraces(count, null, null, null, method, SUCCESS, responses.get(0));
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -131,7 +132,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
assertThat(response.status().code()).isEqualTo(SUCCESS.getStatus());
|
|
assertThat(response.status().code()).isEqualTo(SUCCESS.getStatus());
|
|
assertThat(response.contentUtf8()).isEqualTo(SUCCESS.getBody());
|
|
assertThat(response.contentUtf8()).isEqualTo(SUCCESS.getBody());
|
|
|
|
|
|
- assertTheTraces(1, traceId, parentId, "GET", SUCCESS, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, SUCCESS, traceId);
|
|
|
|
+ assertTheTraces(1, traceId, parentId, spanId, "GET", SUCCESS, response);
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -149,7 +151,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
assertThat(response.status().code()).isEqualTo(SUCCESS.getStatus());
|
|
assertThat(response.status().code()).isEqualTo(SUCCESS.getStatus());
|
|
assertThat(response.contentUtf8()).isEqualTo(SUCCESS.getBody());
|
|
assertThat(response.contentUtf8()).isEqualTo(SUCCESS.getBody());
|
|
|
|
|
|
- assertTheTraces(1, traceId, parentId, "GET", SUCCESS, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, SUCCESS, traceId);
|
|
|
|
+ assertTheTraces(1, traceId, parentId, spanId, "GET", SUCCESS, response);
|
|
}
|
|
}
|
|
|
|
|
|
@ParameterizedTest
|
|
@ParameterizedTest
|
|
@@ -164,7 +167,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
assertThat(response.status().code()).isEqualTo(endpoint.getStatus());
|
|
assertThat(response.status().code()).isEqualTo(endpoint.getStatus());
|
|
assertThat(response.contentUtf8()).isEqualTo(endpoint.getBody());
|
|
assertThat(response.contentUtf8()).isEqualTo(endpoint.getBody());
|
|
|
|
|
|
- assertTheTraces(1, null, null, method, endpoint, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, endpoint, null);
|
|
|
|
+ assertTheTraces(1, null, null, spanId, method, endpoint, response);
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -183,7 +187,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
assertThat(new URI(location).normalize().toString())
|
|
assertThat(new URI(location).normalize().toString())
|
|
.isEqualTo(address.resolve(REDIRECT.getBody()).toString()));
|
|
.isEqualTo(address.resolve(REDIRECT.getBody()).toString()));
|
|
|
|
|
|
- assertTheTraces(1, null, null, method, REDIRECT, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, REDIRECT, null);
|
|
|
|
+ assertTheTraces(1, null, null, spanId, method, REDIRECT, response);
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -199,7 +204,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
assertThat(response.contentUtf8()).isEqualTo(ERROR.getBody());
|
|
assertThat(response.contentUtf8()).isEqualTo(ERROR.getBody());
|
|
}
|
|
}
|
|
|
|
|
|
- assertTheTraces(1, null, null, method, ERROR, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, ERROR, null);
|
|
|
|
+ assertTheTraces(1, null, null, spanId, method, ERROR, response);
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -216,7 +222,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
|
|
|
|
assertThat(response.status().code()).isEqualTo(EXCEPTION.getStatus());
|
|
assertThat(response.status().code()).isEqualTo(EXCEPTION.getStatus());
|
|
|
|
|
|
- assertTheTraces(1, null, null, method, EXCEPTION, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, EXCEPTION, null);
|
|
|
|
+ assertTheTraces(1, null, null, spanId, method, EXCEPTION, response);
|
|
} finally {
|
|
} finally {
|
|
Awaitility.reset();
|
|
Awaitility.reset();
|
|
}
|
|
}
|
|
@@ -232,7 +239,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
|
|
|
|
assertThat(response.status().code()).isEqualTo(NOT_FOUND.getStatus());
|
|
assertThat(response.status().code()).isEqualTo(NOT_FOUND.getStatus());
|
|
|
|
|
|
- assertTheTraces(1, null, null, method, NOT_FOUND, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, NOT_FOUND, null);
|
|
|
|
+ assertTheTraces(1, null, null, spanId, method, NOT_FOUND, response);
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -246,7 +254,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
assertThat(response.status().code()).isEqualTo(PATH_PARAM.getStatus());
|
|
assertThat(response.status().code()).isEqualTo(PATH_PARAM.getStatus());
|
|
assertThat(response.contentUtf8()).isEqualTo(PATH_PARAM.getBody());
|
|
assertThat(response.contentUtf8()).isEqualTo(PATH_PARAM.getBody());
|
|
|
|
|
|
- assertTheTraces(1, null, null, method, PATH_PARAM, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, PATH_PARAM, null);
|
|
|
|
+ assertTheTraces(1, null, null, spanId, method, PATH_PARAM, response);
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -264,7 +273,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
assertThat(response.contentUtf8()).isEqualTo(CAPTURE_HEADERS.getBody());
|
|
assertThat(response.contentUtf8()).isEqualTo(CAPTURE_HEADERS.getBody());
|
|
assertThat(response.headers().get("X-Test-Response")).isEqualTo("test");
|
|
assertThat(response.headers().get("X-Test-Response")).isEqualTo("test");
|
|
|
|
|
|
- assertTheTraces(1, null, null, "GET", CAPTURE_HEADERS, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, CAPTURE_HEADERS, null);
|
|
|
|
+ assertTheTraces(1, null, null, spanId, "GET", CAPTURE_HEADERS, response);
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -283,7 +293,8 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
assertThat(response.status().code()).isEqualTo(CAPTURE_PARAMETERS.getStatus());
|
|
assertThat(response.status().code()).isEqualTo(CAPTURE_PARAMETERS.getStatus());
|
|
assertThat(response.contentUtf8()).isEqualTo(CAPTURE_PARAMETERS.getBody());
|
|
assertThat(response.contentUtf8()).isEqualTo(CAPTURE_PARAMETERS.getBody());
|
|
|
|
|
|
- assertTheTraces(1, null, null, "POST", CAPTURE_PARAMETERS, response);
|
|
|
|
|
|
+ String spanId = assertResponseHasCustomizedHeaders(response, CAPTURE_PARAMETERS, null);
|
|
|
|
+ assertTheTraces(1, null, null, spanId, "POST", CAPTURE_PARAMETERS, response);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -373,12 +384,32 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
testing.waitAndAssertTraces(assertions);
|
|
testing.waitAndAssertTraces(assertions);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ protected String assertResponseHasCustomizedHeaders(
|
|
|
|
+ AggregatedHttpResponse response, ServerEndpoint endpoint, String expectedTraceId) {
|
|
|
|
+ if (!options.hasResponseCustomizer.test(endpoint)) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String responseHeaderTraceId = response.headers().get("x-test-traceid");
|
|
|
|
+ String responseHeaderSpanId = response.headers().get("x-test-spanid");
|
|
|
|
+
|
|
|
|
+ if (expectedTraceId != null) {
|
|
|
|
+ assertThat(responseHeaderTraceId).matches(expectedTraceId);
|
|
|
|
+ } else {
|
|
|
|
+ assertThat(responseHeaderTraceId).isNotNull();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ assertThat(responseHeaderSpanId).isNotNull();
|
|
|
|
+ return responseHeaderSpanId;
|
|
|
|
+ }
|
|
|
|
+
|
|
// NOTE: this method does not currently implement asserting all the span types that groovy
|
|
// NOTE: this method does not currently implement asserting all the span types that groovy
|
|
// HttpServerTest does
|
|
// HttpServerTest does
|
|
protected void assertTheTraces(
|
|
protected void assertTheTraces(
|
|
int size,
|
|
int size,
|
|
String traceId,
|
|
String traceId,
|
|
String parentId,
|
|
String parentId,
|
|
|
|
+ String spanId,
|
|
String method,
|
|
String method,
|
|
ServerEndpoint endpoint,
|
|
ServerEndpoint endpoint,
|
|
AggregatedHttpResponse response) {
|
|
AggregatedHttpResponse response) {
|
|
@@ -390,8 +421,14 @@ public abstract class AbstractHttpServerTest<SERVER> extends AbstractHttpServerU
|
|
spanAssertions.add(
|
|
spanAssertions.add(
|
|
span -> {
|
|
span -> {
|
|
assertServerSpan(span, method, endpoint);
|
|
assertServerSpan(span, method, endpoint);
|
|
|
|
+ if (traceId != null) {
|
|
|
|
+ span.hasTraceId(traceId);
|
|
|
|
+ }
|
|
|
|
+ if (spanId != null) {
|
|
|
|
+ span.hasSpanId(spanId);
|
|
|
|
+ }
|
|
if (parentId != null) {
|
|
if (parentId != null) {
|
|
- span.hasTraceId(traceId).hasParentSpanId(parentId);
|
|
|
|
|
|
+ span.hasParentSpanId(parentId);
|
|
} else {
|
|
} else {
|
|
span.hasNoParent();
|
|
span.hasNoParent();
|
|
}
|
|
}
|