@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 mustHaveTheProperProperties() { AsyncClientRequestAdapter<TextMap> adapter = sensor.getAsyncClientRequestAdapter(object, new Object[] { null, httpRequest, httpContext, null }, rsc); assertThat("The propagation type must be HTTP.", adapter.getPropagationType(), is(PropagationType.HTTP)); assertThat("The reference type must be FOLLOWS FROM.", adapter.getReferenceType(), is(References.FOLLOWS_FROM)); assertThat("The format must be HTTP HEADER.", adapter.getFormat(), is(Format.Builtin.HTTP_HEADERS)); verifyZeroInteractions(object, rsc); }
@Test public void propagationNull() { when(requestAdapter.startClientSpan()).thenReturn(true); when(requestAdapter.getPropagationType()).thenReturn(null); when(requestAdapter.getReferenceType()).thenReturn(References.FOLLOWS_FROM); SpanImpl result = interceptor.handleAsyncRequest(requestAdapter); assertThat(result, is(span)); verify(tracer).buildSpan(null, References.FOLLOWS_FROM, true); verify(tracer).inject(context, Format.Builtin.TEXT_MAP, carrier); verify(spanBuilder).withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT); verify(spanBuilder).build(); verify(span).context(); ArgumentCaptor<SpanStore> spanStoreCaptor = ArgumentCaptor.forClass(SpanStore.class); verify(spanStoreAdapter).setSpanStore(spanStoreCaptor.capture()); assertThat(spanStoreCaptor.getValue().getSpan(), is(span)); verifyNoMoreInteractions(tracer, spanBuilder, span); verifyZeroInteractions(context); } }
@Test public void tagsNull() { when(requestAdapter.startClientSpan()).thenReturn(true); when(requestAdapter.getTags()).thenReturn(null); when(requestAdapter.getPropagationType()).thenReturn(PropagationType.HTTP); when(requestAdapter.getReferenceType()).thenReturn(References.FOLLOWS_FROM); SpanImpl result = interceptor.handleAsyncRequest(requestAdapter); assertThat(result, is(span)); verify(tracer).buildSpan(null, References.FOLLOWS_FROM, true); verify(tracer).inject(context, Format.Builtin.TEXT_MAP, carrier); verify(spanBuilder).withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT); verify(spanBuilder).withTag(ExtraTags.PROPAGATION_TYPE, PropagationType.HTTP.toString()); verify(spanBuilder).build(); verify(span).context(); ArgumentCaptor<SpanStore> spanStoreCaptor = ArgumentCaptor.forClass(SpanStore.class); verify(spanStoreAdapter).setSpanStore(spanStoreCaptor.capture()); assertThat(spanStoreCaptor.getValue().getSpan(), is(span)); verifyNoMoreInteractions(tracer, spanBuilder, span); verifyZeroInteractions(context); }
@Test public void happyPath() { when(requestAdapter.startClientSpan()).thenReturn(true); when(requestAdapter.getTags()).thenReturn(Collections.<String, String> singletonMap(Tags.HTTP_URL.getKey(), "value")); when(requestAdapter.getPropagationType()).thenReturn(PropagationType.HTTP); when(requestAdapter.getReferenceType()).thenReturn(References.FOLLOWS_FROM); SpanImpl result = interceptor.handleAsyncRequest(requestAdapter); assertThat(result, is(span)); verify(tracer).buildSpan(null, References.FOLLOWS_FROM, true); verify(tracer).inject(context, Format.Builtin.TEXT_MAP, carrier); verify(spanBuilder).withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT); verify(spanBuilder).withTag(ExtraTags.PROPAGATION_TYPE, PropagationType.HTTP.toString()); verify(spanBuilder).withTag(Tags.HTTP_URL.getKey(), "value"); verify(spanBuilder).build(); verify(span).context(); ArgumentCaptor<SpanStore> spanStoreCaptor = ArgumentCaptor.forClass(SpanStore.class); verify(spanStoreAdapter).setSpanStore(spanStoreCaptor.capture()); assertThat(spanStoreCaptor.getValue().getSpan(), is(span)); verifyNoMoreInteractions(tracer, spanBuilder, span); verifyZeroInteractions(context); }