/** * {@inheritDoc} */ @Override public void beforeBody(long methodId, long sensorTypeId, Object object, Object[] parameters, RegisteredSensorConfig rsc) { Object httpContext = REFLECTION_CACHE.getField(object.getClass(), "localContext", object, null); if (httpContext != null) { SpanStoreAdapter spanStoreAdapter = new ApacheHttpContextSpanStoreAdapter(httpContext); SpanStore spanStore = spanStoreAdapter.getSpanStore(); if (spanStore != null) { spanStore.startSpan(); } } }
@Test public void withoutSpanStoreAndCallback() throws Exception { removeOriginalCallback(); proxy.cancelled(); verify(spanStoreAdapter).getSpanStore(); verifyNoMoreInteractions(spanStoreAdapter); verifyZeroInteractions(spanStore, originalCallback); } }
@Test public void withoutSpanStore() throws Exception { proxy.cancelled(); verify(spanStoreAdapter).getSpanStore(); verify(originalCallback).cancelled(); verifyNoMoreInteractions(spanStoreAdapter, originalCallback); verifyZeroInteractions(spanStore); }
public void properties() { ClientRequestAdapter<TextMap> adapter = sensor.getClientRequestAdapter(urlConnection, null, rsc); assertThat(adapter.getPropagationType(), is(PropagationType.HTTP)); assertThat(adapter.getReferenceType(), is(References.CHILD_OF)); assertThat(adapter.getFormat(), is(Format.Builtin.HTTP_HEADERS)); verifyZeroInteractions(rsc); }
@Test public void contextStore() { SpanContext spanContext = mock(SpanContext.class); when(httpRequest.getAttribute(SpanContextStore.Constants.ID)).thenReturn(spanContext); ServerRequestAdapter<TextMap> adapter = sensor.getServerRequestAdapter(object, new Object[] { httpRequest, httpResponse }, rsc); SpanContextStore spanContextStore = adapter.getSpanContextStore(); SpanContext result = spanContextStore.getSpanContext(); assertThat(result, is(spanContext)); spanContextStore.setSpanContext(spanContext); verify(httpRequest).setAttribute(SpanContextStore.Constants.ID, spanContext); verifyZeroInteractions(object, httpResponse, rsc); } }
@Test public void successful() throws Exception { when(spanStoreAdapter.getSpanStore()).thenReturn(spanStore); proxy.cancelled(); ArgumentCaptor<TagsProvidingAdapter> captor = ArgumentCaptor.forClass(TagsProvidingAdapter.class); verify(spanStoreAdapter).getSpanStore(); verify(spanStore).finishSpan(captor.capture()); verify(originalCallback).cancelled(); verifyNoMoreInteractions(spanStore, spanStoreAdapter, originalCallback); assertThat(captor.getValue().getTags(), hasKey(SpanStoreAdapter.Constants.CANCEL)); }
@Test public void withoutSpanStore() { Object response = new Object(); proxy.completed(response); verify(spanStoreAdapter).getSpanStore(); verify(originalCallback).completed(response); verifyNoMoreInteractions(spanStoreAdapter, originalCallback); verifyZeroInteractions(spanStore); }
@Test public void withoutSpanStore() throws Exception { Exception exception = new Exception(); proxy.failed(exception); verify(spanStoreAdapter).getSpanStore(); verify(originalCallback).failed(exception); verifyNoMoreInteractions(spanStoreAdapter, originalCallback); verifyZeroInteractions(spanStore); }
@Test public void properties() { AsyncClientRequestAdapter<TextMap> adapter = sensor.getAsyncClientRequestAdapter(object, new Object[] { httpExchange }, rsc); assertThat(adapter.getPropagationType(), is(PropagationType.HTTP)); assertThat(adapter.getReferenceType(), is(References.FOLLOWS_FROM)); assertThat(adapter.getFormat(), is(Format.Builtin.HTTP_HEADERS)); verifyZeroInteractions(object, rsc); }
@Test public void properties() { ServerRequestAdapter<TextMap> adapter = sensor.getServerRequestAdapter(object, new Object[] { message }, rsc); assertThat(adapter.getPropagationType(), is(PropagationType.JMS)); assertThat(adapter.getFormat(), is(Format.Builtin.TEXT_MAP)); verifyZeroInteractions(object, rsc); }
@Test public void baggageExtraction() { ServerRequestAdapter<?> adapter = sensor.getServerRequestAdapter(object, null, rsc); assertThat(adapter.getCarrier(), is(nullValue())); assertThat(adapter.getFormat(), is(nullValue())); verifyZeroInteractions(object, rsc); }
@Test public void spanStarting() { ClientRequestAdapter<TextMap> adapter = sensor.getClientRequestAdapter(object, new Object[] { null, httpRequest }, rsc); assertThat(adapter.startClientSpan(), is(true)); }
@Test public void baggageInjection() { String key = "key"; String value = "value"; ClientRequestAdapter<TextMap> adapter = sensor.getClientRequestAdapter(urlConnection, null, rsc); adapter.getCarrier().put(key, value); verify(urlConnection).setRequestProperty(key, value); verifyZeroInteractions(rsc); }
@Test public void properties() { ServerRequestAdapter<TextMap> adapter = sensor.getServerRequestAdapter(object, new Object[] { httpRequest, httpResponse }, rsc); assertThat(adapter.getPropagationType(), is(PropagationType.HTTP)); verifyZeroInteractions(object, httpResponse, rsc); }
@Test public void baggageInjection() { String key = "key"; String value = "value"; AsyncClientRequestAdapter<TextMap> adapter = sensor.getAsyncClientRequestAdapter(object, new Object[] { httpExchange }, rsc); adapter.getCarrier().put(key, value); verify(httpExchange).setRequestHeader(key, value); verifyZeroInteractions(object, rsc); }
@Test public void spanStarting() { AsyncClientRequestAdapter<TextMap> adapter = sensor.getAsyncClientRequestAdapter(object, new Object[] { httpExchange }, rsc); assertThat(adapter.startClientSpan(), is(true)); }
@Test public void properties() { ClientRequestAdapter<TextMap> adapter = sensor.getClientRequestAdapter(object, new Object[] { null, httpRequest }, rsc); assertThat(adapter.getPropagationType(), is(PropagationType.HTTP)); assertThat(adapter.getReferenceType(), is(References.CHILD_OF)); assertThat(adapter.getFormat(), is(Format.Builtin.HTTP_HEADERS)); verifyZeroInteractions(object, rsc); }
@Test public void spanStarting() { ClientRequestAdapter<TextMap> adapter = sensor.getClientRequestAdapter(httpRequest, null, rsc); assertThat(adapter.startClientSpan(), is(true)); }
@Test public void baggageInjection() { String key = "key"; String value = "value"; ClientRequestAdapter<TextMap> adapter = sensor.getClientRequestAdapter(object, new Object[] { null, httpRequest }, rsc); adapter.getCarrier().put(key, value); verify(httpRequest).setHeader(key, value); verifyZeroInteractions(object, rsc); } }
@Test public void properties() { ClientRequestAdapter<TextMap> adapter = sensor.getClientRequestAdapter(httpRequest, null, rsc); assertThat(adapter.getPropagationType(), is(PropagationType.HTTP)); assertThat(adapter.getReferenceType(), is(References.CHILD_OF)); assertThat(adapter.getFormat(), is(Format.Builtin.HTTP_HEADERS)); verifyNoMoreInteractions(rsc); }