Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
review comments, refactoring
  • Loading branch information
shashank11p committed Feb 2, 2021
commit 7cbcb85723512c33c81021b19448d9ef9934f2c5
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import io.opentelemetry.javaagent.instrumentation.api.Pair;
import io.opentelemetry.sdk.trace.data.SpanData;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand All @@ -36,10 +37,6 @@ public abstract class AbstractHttpClientTest extends AbstractInstrumenterTest {

private final boolean hasResponseBodySpan;
Comment thread
shashank11p marked this conversation as resolved.
Outdated

public AbstractHttpClientTest(boolean hasResponseBodySpan) {
this.hasResponseBodySpan = hasResponseBodySpan;
}

private static final String ECHO_PATH_FORMAT = "http://localhost:%d/echo";
Comment thread
shashank11p marked this conversation as resolved.
private static final String GET_NO_CONTENT_PATH_FORMAT = "http://localhost:%d/get_no_content";
private static final String GET_JSON_PATH_FORMAT = "http://localhost:%d/get_json";
Expand All @@ -49,8 +46,13 @@ public AbstractHttpClientTest(boolean hasResponseBodySpan) {
private static final String HEADER_VALUE = "headerValue";

static {
headers = new HashMap<>();
headers.put("headerName", "headerValue");
Map<String, String> headersMap = new HashMap<>();
headersMap.put(HEADER_NAME, HEADER_VALUE);
headers = Collections.unmodifiableMap(headersMap);
}

public AbstractHttpClientTest(boolean hasResponseBodySpan) {
this.hasResponseBodySpan = hasResponseBodySpan;
}

@BeforeAll
Expand Down Expand Up @@ -87,7 +89,7 @@ public abstract Pair<Integer, String> doGetRequest(String uri, Map<String, Strin
throws IOException, ExecutionException, InterruptedException;

@Test
public void echoJson()
public void postJson_echo()
throws TimeoutException, InterruptedException, IOException, ExecutionException {
String body = "{\"foo\": \"bar\"}";
String uri = String.format(ECHO_PATH_FORMAT, testHttpServer.port());
Expand All @@ -100,21 +102,20 @@ public void echoJson()
TEST_WRITER.waitForTraces(1);
List<List<SpanData>> traces = TEST_WRITER.getTraces();
Assertions.assertEquals(1, traces.size());
SpanData clientSpan = traces.get(0).get(0);

if (hasResponseBodySpan) {
Assertions.assertEquals(2, traces.get(0).size());
SpanData clientSpan = traces.get(0).get(0);
SpanData responseBodySpan = traces.get(0).get(1);
assertEchoJsonSpans(clientSpan, responseBodySpan, body);
assertEchoBodyInSpans(clientSpan, responseBodySpan, body);
} else {
Assertions.assertEquals(1, traces.get(0).size());
SpanData clientSpan = traces.get(0).get(0);
assertEchoJson(clientSpan, body);
assertEchoBodyInSpan(clientSpan, body);
}
}

@Test
public void echoUrlEncoded()
public void postUrlEncoded_echo()
throws TimeoutException, InterruptedException, IOException, ExecutionException {
String body = "key1=value1&key2=value2";
String uri = String.format(ECHO_PATH_FORMAT, testHttpServer.port());
Expand All @@ -128,21 +129,20 @@ public void echoUrlEncoded()
TEST_WRITER.waitForTraces(1);
List<List<SpanData>> traces = TEST_WRITER.getTraces();
Assertions.assertEquals(1, traces.size());
SpanData clientSpan = traces.get(0).get(0);

if (hasResponseBodySpan) {
Assertions.assertEquals(2, traces.get(0).size());
SpanData clientSpan = traces.get(0).get(0);
SpanData responseBodySpan = traces.get(0).get(1);
assertEchoUrlEncodedSpans(clientSpan, responseBodySpan, body);
assertEchoBodyInSpans(clientSpan, responseBodySpan, body);
} else {
Assertions.assertEquals(1, traces.get(0).size());
SpanData clientSpan = traces.get(0).get(0);
assertEchoUrlEncoded(clientSpan, body);
assertEchoBodyInSpan(clientSpan, body);
}
}

@Test
public void echoPlainText()
public void postPlainText_echo()
throws TimeoutException, InterruptedException, IOException, ExecutionException {
String body = "foobar";
String uri = String.format(ECHO_PATH_FORMAT, testHttpServer.port());
Expand All @@ -158,7 +158,7 @@ public void echoPlainText()
Assertions.assertEquals(1, traces.get(0).size());
SpanData clientSpan = traces.get(0).get(0);

assertNullBodies(clientSpan);
assertNoBodies(clientSpan);
Comment thread
shashank11p marked this conversation as resolved.
}

Comment thread
shashank11p marked this conversation as resolved.
@Test
Expand All @@ -177,7 +177,7 @@ public void getNoContent()
Assertions.assertEquals(1, traces.get(0).size());
SpanData clientSpan = traces.get(0).get(0);

assertNullBodies(clientSpan);
assertNoBodies(clientSpan);
}

@Test
Expand All @@ -193,21 +193,18 @@ public void getJson()
TEST_WRITER.waitForTraces(1);
List<List<SpanData>> traces = TEST_WRITER.getTraces();
Assertions.assertEquals(1, traces.size());
SpanData clientSpan = traces.get(0).get(0);
Assertions.assertNull(
clientSpan.getAttributes().get(HypertraceSemanticAttributes.HTTP_REQUEST_BODY));

if (hasResponseBodySpan) {
Assertions.assertEquals(2, traces.get(0).size());
SpanData clientSpan = traces.get(0).get(0);
SpanData responseBodySpan = traces.get(0).get(1);
Assertions.assertNull(
clientSpan.getAttributes().get(HypertraceSemanticAttributes.HTTP_REQUEST_BODY));
Assertions.assertEquals(
TestHttpServer.GetJsonHandler.RESPONSE_BODY,
responseBodySpan.getAttributes().get(HypertraceSemanticAttributes.HTTP_RESPONSE_BODY));
} else {
Assertions.assertEquals(1, traces.get(0).size());
SpanData clientSpan = traces.get(0).get(0);
Assertions.assertNull(
clientSpan.getAttributes().get(HypertraceSemanticAttributes.HTTP_REQUEST_BODY));
Assertions.assertEquals(
TestHttpServer.GetJsonHandler.RESPONSE_BODY,
clientSpan.getAttributes().get(HypertraceSemanticAttributes.HTTP_RESPONSE_BODY));
Expand All @@ -227,15 +224,15 @@ private void assertHeaders(SpanData spanData) {
spanData.getAttributes().get(HypertraceSemanticAttributes.httpRequestHeader(HEADER_NAME)));
}

private void assertEchoJson(SpanData spanData, String requestBody) {
private void assertEchoBodyInSpan(SpanData spanData, String requestBody) {
Comment thread
shashank11p marked this conversation as resolved.
Outdated
Assertions.assertEquals(
requestBody, spanData.getAttributes().get(HypertraceSemanticAttributes.HTTP_REQUEST_BODY));
Assertions.assertEquals(
Comment thread
shashank11p marked this conversation as resolved.
spanData.getAttributes().get(HypertraceSemanticAttributes.HTTP_RESPONSE_BODY),
spanData.getAttributes().get(HypertraceSemanticAttributes.HTTP_REQUEST_BODY));
}

private void assertEchoJsonSpans(
private void assertEchoBodyInSpans(
Comment thread
shashank11p marked this conversation as resolved.
Outdated
SpanData clientSpan, SpanData responseBodySpan, String requestBody) {
Assertions.assertEquals(
requestBody,
Expand All @@ -245,16 +242,7 @@ private void assertEchoJsonSpans(
responseBodySpan.getAttributes().get(HypertraceSemanticAttributes.HTTP_RESPONSE_BODY));
}

private void assertEchoUrlEncoded(SpanData spanData, String requestBody) {
assertEchoJson(spanData, requestBody);
}

private void assertEchoUrlEncodedSpans(
SpanData clientSpan, SpanData responseBodySpan, String requestBody) {
assertEchoJsonSpans(clientSpan, responseBodySpan, requestBody);
}

private void assertNullBodies(SpanData spanData) {
private void assertNoBodies(SpanData spanData) {
assertHeaders(spanData);
Assertions.assertNull(
spanData.getAttributes().get(HypertraceSemanticAttributes.HTTP_RESPONSE_BODY));
Expand Down