@Test public void postProcessPartConverters() throws Exception { HttpMessageConverters converters = new HttpMessageConverters() { @Override protected List<HttpMessageConverter<?>> postProcessPartConverters( List<HttpMessageConverter<?>> converters) { for (Iterator<HttpMessageConverter<?>> iterator = converters.iterator(); iterator.hasNext(); ) { if (iterator.next() instanceof MappingJackson2XmlHttpMessageConverter) { iterator.remove(); } } return converters; }; }; List<Class<?>> converterClasses = new ArrayList<Class<?>>(); for (HttpMessageConverter<?> converter : extractFormPartConverters(converters.getConverters())) { converterClasses.add(converter.getClass()); } assertThat(converterClasses) .containsExactly( ByteArrayHttpMessageConverter.class, StringHttpMessageConverter.class, ResourceHttpMessageConverter.class, SourceHttpMessageConverter.class, MappingJackson2HttpMessageConverter.class); }
@Test public void addNewConverters() { HttpMessageConverter<?> converter1 = mock(HttpMessageConverter.class); HttpMessageConverter<?> converter2 = mock(HttpMessageConverter.class); HttpMessageConverters converters = new HttpMessageConverters(converter1, converter2); assertThat(converters.getConverters().get(0)).isEqualTo(converter1); assertThat(converters.getConverters().get(1)).isEqualTo(converter2); }
@Test public void addBeforeExistingConverter() { MappingJackson2HttpMessageConverter converter1 = new MappingJackson2HttpMessageConverter(); MappingJackson2HttpMessageConverter converter2 = new MappingJackson2HttpMessageConverter(); HttpMessageConverters converters = new HttpMessageConverters(converter1, converter2); assertThat(converters.getConverters().contains(converter1)).isTrue(); assertThat(converters.getConverters().contains(converter2)).isTrue(); List<MappingJackson2HttpMessageConverter> httpConverters = new ArrayList<MappingJackson2HttpMessageConverter>(); for (HttpMessageConverter<?> candidate : converters) { if (candidate instanceof MappingJackson2HttpMessageConverter) { httpConverters.add((MappingJackson2HttpMessageConverter) candidate); } } // The existing converter is still there, but with a lower priority assertThat(httpConverters).hasSize(3); assertThat(httpConverters.indexOf(converter1)).isEqualTo(0); assertThat(httpConverters.indexOf(converter2)).isEqualTo(1); assertThat(converters.getConverters().indexOf(converter1)).isNotEqualTo(0); }
private void assertConverterBeanRegisteredWithHttpMessageConverters(Class<?> type) { Object converter = this.context.getBean(type); HttpMessageConverters converters = this.context.getBean(HttpMessageConverters.class); assertTrue(converters.getConverters().contains(converter)); }