/** * @param filterConfig The {@link FilterConfig} for initializing this Servlet filter. * @return The {@link HttpTagAndSpanNamingAdapter} that should be used by this instance. Delegates to * {@link #getTagAdapterFromName(String)}, and uses {@link #getDefaultTagAdapter()} as a last resort if * {@link #getTagAdapterFromName(String)} throws an exception. */ protected HttpTagAndSpanNamingAdapter<HttpServletRequest, HttpServletResponse> initializeTagAndNamingAdapter( FilterConfig filterConfig ) { String tagAdapterString = filterConfig.getInitParameter(TAG_AND_SPAN_NAMING_ADAPTER_INIT_PARAM_NAME); try { return getTagAdapterFromName(tagAdapterString); } catch(Throwable t) { logger.warn( "Unable to match tagging adapter " + tagAdapterString + ". Using default ServletRequestTagAdapter", t ); return getDefaultTagAdapter(); } }
@DataProvider(value = { "null", "", " ", " \t\r\n " }) @Test public void getTagAdapterFromName_returns_default_adapter_if_passed_null_or_blank_string( String adapterName ) throws IllegalAccessException, InstantiationException, ClassNotFoundException { // given RequestTracingFilter filterSpy = spy(new RequestTracingFilter()); HttpTagAndSpanNamingAdapter<HttpServletRequest, HttpServletResponse> defaultAdapterMock = mock(HttpTagAndSpanNamingAdapter.class); doReturn(defaultAdapterMock).when(filterSpy).getDefaultTagAdapter(); // when HttpTagAndSpanNamingAdapter<HttpServletRequest, HttpServletResponse> result = filterSpy.getTagAdapterFromName(adapterName); // then assertThat(result).isSameAs(defaultAdapterMock); verify(filterSpy).getDefaultTagAdapter(); }
@Test public void getDefaultTagAdapter_works_as_expected() { // given RequestTracingFilter filter = new RequestTracingFilter(); // expect assertThat(filter.getDefaultTagAdapter()) .isNotNull() .isSameAs(ServletRequestTagAdapter.getDefaultInstance()); }
doReturn(fallbackDefaultAdapterMock).when(filterSpy).getDefaultTagAdapter(); verify(filterSpy).getDefaultTagAdapter(); verify(filterSpy, never()).getDefaultTagAdapter();