@Test
  public void resolveViewNoMatchUseUnacceptableStatus() throws Exception {
    viewResolver.setUseNotAcceptableStatusCode(true);
    request.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9");

    ViewResolver viewResolverMock = createMock(ViewResolver.class);
    viewResolver.setViewResolvers(Collections.singletonList(viewResolverMock));

    View viewMock = createMock("application_xml", View.class);

    String viewName = "view";
    Locale locale = Locale.ENGLISH;

    expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(viewMock);
    expect(viewMock.getContentType()).andReturn("application/pdf").anyTimes();

    replay(viewResolverMock, viewMock);

    View result = viewResolver.resolveViewName(viewName, locale);
    assertNotNull("Invalid view", result);
    MockHttpServletResponse response = new MockHttpServletResponse();
    result.render(null, request, response);
    assertEquals("Invalid status code set", 406, response.getStatus());

    verify(viewResolverMock, viewMock);
  }
예제 #2
0
  @Bean
  public ContentNegotiatingViewResolver contentNegotiatingViewResolver() {
    final ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
    final List<View> defaultViews = new ArrayList<View>();

    defaultViews.add(jsonView());
    resolver.setDefaultViews(defaultViews);
    resolver.setUseNotAcceptableStatusCode(true);
    resolver.setOrder(1);
    return resolver;
  }