WingtipsSpringWebfluxExchangeFilterFunction implements ExchangeFilterFunction { protected @NotNull Context subscriberContextWithTracingInfo( @NotNull Context origContext, @NotNull TracingState tracingState ) { return WingtipsSpringWebfluxUtils.subscriberContextWithTracingInfo(origContext, tracingState); } WingtipsSpringWebfluxExchangeFilterFunction();  WingtipsSpringWebfluxExchangeFilterFunction(boolean surroundCallsWithSubspan); @SuppressWarnings("ConstantConditions")  WingtipsSpringWebfluxExchangeFilterFunction(
        boolean surroundCallsWithSubspan,
        @NotNull HttpTagAndSpanNamingStrategy<ClientRequest, ClientResponse> tagAndNamingStrategy,
        @NotNull HttpTagAndSpanNamingAdapter<ClientRequest, ClientResponse> tagAndNamingAdapter
    ); @Override @NotNull Mono<ClientResponse> filter(
        @NotNull ClientRequest request, @NotNull ExchangeFunction next
    ); static final @NotNull WingtipsSpringWebfluxExchangeFilterFunction DEFAULT_IMPL; }
@Test public void subscriberContextWithTracingInfo_works_as_expected() { Context origContext = Context.of("foo", "bar"); TracingState tracingStateMock = mock(TracingState.class); Context result = filterSpy.subscriberContextWithTracingInfo(origContext, tracingStateMock); assertThat(result.size()).isEqualTo(2); assertThat(result.get(TracingState.class)).isSameAs(tracingStateMock); assertThat(result.<String>get("foo")).isEqualTo("bar"); Context expectedMatchingContextFromUtils = WingtipsSpringWebfluxUtils.subscriberContextWithTracingInfo( origContext, tracingStateMock ); assertThat(result.stream().collect(Collectors.toList())) .isEqualTo(expectedMatchingContextFromUtils.stream().collect(Collectors.toList())); }