@Test
  public void handleReturnValueString() throws Exception {
    List<HttpMessageConverter<?>> converters = new ArrayList<HttpMessageConverter<?>>();
    converters.add(new ByteArrayHttpMessageConverter());
    converters.add(new StringHttpMessageConverter());

    RequestResponseBodyMethodProcessor processor =
        new RequestResponseBodyMethodProcessor(converters);
    processor.handleReturnValue("Foo", returnTypeString, mavContainer, webRequest);

    assertEquals("text/plain;charset=ISO-8859-1", servletResponse.getHeader("Content-Type"));
    assertEquals("Foo", servletResponse.getContentAsString());
  }
  @Test
  public void jacksonJsonViewWithResponseBody() throws Exception {
    Method method = JacksonViewController.class.getMethod("handleResponseBody");
    HandlerMethod handlerMethod = new HandlerMethod(new JacksonViewController(), method);
    MethodParameter methodReturnType = handlerMethod.getReturnType();

    List<HttpMessageConverter<?>> converters = new ArrayList<HttpMessageConverter<?>>();
    converters.add(new MappingJackson2HttpMessageConverter());

    RequestResponseBodyMethodProcessor processor =
        new RequestResponseBodyMethodProcessor(
            converters, null, Arrays.asList(new JsonViewResponseBodyAdvice()));

    Object returnValue = new JacksonViewController().handleResponseBody();
    processor.handleReturnValue(returnValue, methodReturnType, this.mavContainer, this.webRequest);

    String content = this.servletResponse.getContentAsString();
    assertFalse(content.contains("\"withView1\":\"with\""));
    assertTrue(content.contains("\"withView2\":\"with\""));
    assertTrue(content.contains("\"withoutView\":\"without\""));
  }