@Override public void setupTracingCompletionWhenAsyncRequestCompletes( HttpServletRequest asyncRequest, HttpServletResponse asyncResponse, TracingState originalRequestTracingState, HttpTagAndSpanNamingStrategy<HttpServletRequest,HttpServletResponse> tagAndNamingStrategy, HttpTagAndSpanNamingAdapter<HttpServletRequest,HttpServletResponse> tagAndNamingAdapter ) { // Async processing was started, so we have to complete it with a listener. asyncRequest.getAsyncContext().addListener( new WingtipsRequestSpanCompletionAsyncListener( originalRequestTracingState, tagAndNamingStrategy, tagAndNamingAdapter ), asyncRequest, asyncResponse ); }
@Test public void constructor_sets_fields_as_expected() { // given TracingState tracingStateMock = mock(TracingState.class); // when WingtipsRequestSpanCompletionAsyncListener impl = new WingtipsRequestSpanCompletionAsyncListener(tracingStateMock, tagAndNamingStrategy, tagAndNamingAdapterMock); // then assertThat(impl.originalRequestTracingState).isSameAs(tracingStateMock); assertThat(impl.tagAndNamingStrategy).isSameAs(tagAndNamingStrategy); assertThat(impl.tagAndNamingAdapter).isSameAs(tagAndNamingAdapterMock); assertThat(impl.alreadyCompleted.get()).isFalse(); }
@Test public void constructor_uses_default_NoOpHttpTagStrategy_if_passed_null_tag_strategy() { // when WingtipsRequestSpanCompletionAsyncListener impl = new WingtipsRequestSpanCompletionAsyncListener(tracingState, null, tagAndNamingAdapterMock); // then assertThat(impl.tagAndNamingStrategy).isSameAs(NoOpHttpTagStrategy.getDefaultInstance()); assertThat(impl.originalRequestTracingState).isSameAs(tracingState); assertThat(impl.tagAndNamingAdapter).isSameAs(tagAndNamingAdapterMock); }
@Test public void constructor_uses_default_NoOpHttpTagAdapter_if_passed_null_tag_adapter() { // when WingtipsRequestSpanCompletionAsyncListener impl = new WingtipsRequestSpanCompletionAsyncListener(tracingState, tagAndNamingStrategy, null); // then assertThat(impl.tagAndNamingAdapter).isSameAs(NoOpHttpTagAdapter.getDefaultInstance()); assertThat(impl.originalRequestTracingState).isSameAs(tracingState); assertThat(impl.tagAndNamingStrategy).isSameAs(tagAndNamingStrategy); }
new WingtipsRequestSpanCompletionAsyncListener(tracingState, tagAndNamingStrategy, tagAndNamingAdapterMock) ); asyncEventMock = mock(AsyncEvent.class);