diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java index e0430306df2..4d147391662 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,12 +16,19 @@ package org.springframework.web.servlet.mvc.condition; +import java.util.Collections; + import org.junit.Test; import org.springframework.mock.web.test.MockHttpServletRequest; -import org.springframework.web.bind.annotation.RequestMethod; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.springframework.web.bind.annotation.RequestMethod.GET; +import static org.springframework.web.bind.annotation.RequestMethod.HEAD; +import static org.springframework.web.bind.annotation.RequestMethod.POST; /** * @author Arjen Poutsma @@ -30,8 +37,7 @@ public class RequestMethodsRequestConditionTests { @Test public void methodMatch() { - RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition(RequestMethod.GET); - + RequestCondition condition = new RequestMethodsRequestCondition(GET); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo"); assertNotNull(condition.getMatchingCondition(request)); @@ -39,8 +45,7 @@ public class RequestMethodsRequestConditionTests { @Test public void methodNoMatch() { - RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition(RequestMethod.GET); - + RequestCondition condition = new RequestMethodsRequestCondition(GET); MockHttpServletRequest request = new MockHttpServletRequest("POST", "/foo"); assertNull(condition.getMatchingCondition(request)); @@ -48,16 +53,17 @@ public class RequestMethodsRequestConditionTests { @Test public void multipleMethodsMatch() { - RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition(RequestMethod.GET, RequestMethod.POST); - + RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition(GET, POST); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo"); + RequestMethodsRequestCondition actual = condition.getMatchingCondition(request); - assertNotNull(condition.getMatchingCondition(request)); + assertNotNull(actual); + assertEquals(Collections.singleton(GET), actual.getContent()); } @Test - public void noMethodsMatchAll() { - RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition(); + public void noDeclaredMethodsMatchesAllMethods() { + RequestCondition condition = new RequestMethodsRequestCondition(); assertNotNull(condition.getMatchingCondition(new MockHttpServletRequest("GET", ""))); assertNotNull(condition.getMatchingCondition(new MockHttpServletRequest("POST", ""))); @@ -66,8 +72,7 @@ public class RequestMethodsRequestConditionTests { @Test public void unknownMethodType() throws Exception { - RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition(RequestMethod.GET, RequestMethod.POST); - + RequestCondition condition = new RequestMethodsRequestCondition(GET, POST); MockHttpServletRequest request = new MockHttpServletRequest("PROPFIND", "/foo"); assertNull(condition.getMatchingCondition(request)); @@ -75,33 +80,32 @@ public class RequestMethodsRequestConditionTests { @Test public void compareTo() { - RequestMethodsRequestCondition condition1 = new RequestMethodsRequestCondition(RequestMethod.GET, RequestMethod.HEAD); - RequestMethodsRequestCondition condition2 = new RequestMethodsRequestCondition(RequestMethod.POST); - RequestMethodsRequestCondition condition3 = new RequestMethodsRequestCondition(); + RequestMethodsRequestCondition c1 = new RequestMethodsRequestCondition(GET, HEAD); + RequestMethodsRequestCondition c2 = new RequestMethodsRequestCondition(POST); + RequestMethodsRequestCondition c3 = new RequestMethodsRequestCondition(); MockHttpServletRequest request = new MockHttpServletRequest(); - int result = condition1.compareTo(condition2, request); + int result = c1.compareTo(c2, request); assertTrue("Invalid comparison result: " + result, result < 0); - result = condition2.compareTo(condition1, request); + result = c2.compareTo(c1, request); assertTrue("Invalid comparison result: " + result, result > 0); - result = condition2.compareTo(condition3, request); + result = c2.compareTo(c3, request); assertTrue("Invalid comparison result: " + result, result < 0); - result = condition1.compareTo(condition1, request); + result = c1.compareTo(c1, request); assertEquals("Invalid comparison result ", 0, result); } @Test public void combine() { - RequestMethodsRequestCondition condition1 = new RequestMethodsRequestCondition(RequestMethod.GET); - RequestMethodsRequestCondition condition2 = new RequestMethodsRequestCondition(RequestMethod.POST); + RequestMethodsRequestCondition condition1 = new RequestMethodsRequestCondition(GET); + RequestMethodsRequestCondition condition2 = new RequestMethodsRequestCondition(POST); RequestMethodsRequestCondition result = condition1.combine(condition2); assertEquals(2, result.getContent().size()); } - } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMappingTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMappingTests.java index cdbae443f55..5a88d03ceeb 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMappingTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMappingTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2015 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -59,6 +59,7 @@ import org.springframework.web.servlet.mvc.condition.ProducesRequestCondition; import org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition; import org.springframework.web.util.UrlPathHelper; + /** * Test fixture with {@link RequestMappingInfoHandlerMapping}. * @@ -77,6 +78,7 @@ public class RequestMappingInfoHandlerMappingTests { private HandlerMethod emptyMethod; + @Before public void setUp() throws Exception { TestController testController = new TestController(); @@ -91,96 +93,87 @@ public class RequestMappingInfoHandlerMappingTests { this.handlerMapping.setRemoveSemicolonContent(false); } + @Test public void getMappingPathPatterns() throws Exception { - RequestMappingInfo info = new RequestMappingInfo( - new PatternsRequestCondition("/foo/*", "/foo", "/bar/*", "/bar"), null, null, null, null, null, null); - Set paths = this.handlerMapping.getMappingPathPatterns(info); - HashSet expected = new HashSet(Arrays.asList("/foo/*", "/foo", "/bar/*", "/bar")); + String[] patterns = {"/foo/*", "/foo", "/bar/*", "/bar"}; + RequestMappingInfo info = RequestMappingInfo.paths(patterns).build(); + Set actual = this.handlerMapping.getMappingPathPatterns(info); - assertEquals(expected, paths); + assertEquals(new HashSet<>(Arrays.asList(patterns)), actual); } @Test - public void directMatch() throws Exception { + public void getHandlerDirectMatch() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo"); - HandlerMethod hm = (HandlerMethod) this.handlerMapping.getHandler(request).getHandler(); - assertEquals(this.fooMethod.getMethod(), hm.getMethod()); + HandlerMethod handlerMethod = getHandler(request); + + assertEquals(this.fooMethod.getMethod(), handlerMethod.getMethod()); } @Test - public void globMatch() throws Exception { + public void getHandlerGlobMatch() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("GET", "/bar"); - HandlerMethod hm = (HandlerMethod) this.handlerMapping.getHandler(request).getHandler(); - assertEquals(this.barMethod.getMethod(), hm.getMethod()); + HandlerMethod handlerMethod = getHandler(request); + assertEquals(this.barMethod.getMethod(), handlerMethod.getMethod()); } @Test - public void emptyPathMatch() throws Exception { + public void getHandlerEmptyPathMatch() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("GET", ""); - HandlerMethod hm = (HandlerMethod) this.handlerMapping.getHandler(request).getHandler(); - assertEquals(this.emptyMethod.getMethod(), hm.getMethod()); + HandlerMethod handlerMethod = getHandler(request); + + assertEquals(this.emptyMethod.getMethod(), handlerMethod.getMethod()); request = new MockHttpServletRequest("GET", "/"); - hm = (HandlerMethod) this.handlerMapping.getHandler(request).getHandler(); - assertEquals(this.emptyMethod.getMethod(), hm.getMethod()); + handlerMethod = getHandler(request); + + assertEquals(this.emptyMethod.getMethod(), handlerMethod.getMethod()); } @Test - public void bestMatch() throws Exception { + public void getHandlerBestMatch() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo"); request.setParameter("p", "anything"); - HandlerMethod hm = (HandlerMethod) this.handlerMapping.getHandler(request).getHandler(); - assertEquals(this.fooParamMethod.getMethod(), hm.getMethod()); + HandlerMethod handlerMethod = getHandler(request); + + assertEquals(this.fooParamMethod.getMethod(), handlerMethod.getMethod()); } @Test - public void requestMethodNotAllowed() throws Exception { + public void getHandlerRequestMethodNotAllowed() throws Exception { try { MockHttpServletRequest request = new MockHttpServletRequest("POST", "/bar"); this.handlerMapping.getHandler(request); fail("HttpRequestMethodNotSupportedException expected"); } catch (HttpRequestMethodNotSupportedException ex) { - assertArrayEquals("Invalid supported methods", new String[]{"GET", "HEAD"}, ex.getSupportedMethods()); + assertArrayEquals("Invalid supported methods", new String[]{"GET", "HEAD"}, + ex.getSupportedMethods()); } } // SPR-9603 @Test(expected=HttpMediaTypeNotAcceptableException.class) - public void requestMethodMatchFalsePositive() throws Exception { + public void getHandlerRequestMethodMatchFalsePositive() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("GET", "/users"); request.addHeader("Accept", "application/xml"); - this.handlerMapping.registerHandler(new UserController()); this.handlerMapping.getHandler(request); } + // SPR-8462 + @Test - public void mediaTypeNotSupported() throws Exception { - testMediaTypeNotSupported("/person/1"); - - // SPR-8462 - testMediaTypeNotSupported("/person/1/"); - testMediaTypeNotSupported("/person/1.json"); - } - - private void testMediaTypeNotSupported(String url) throws Exception { - try { - MockHttpServletRequest request = new MockHttpServletRequest("PUT", url); - request.setContentType("application/json"); - this.handlerMapping.getHandler(request); - fail("HttpMediaTypeNotSupportedException expected"); - } - catch (HttpMediaTypeNotSupportedException ex) { - assertEquals("Invalid supported consumable media types", - Arrays.asList(new MediaType("application", "xml")), ex.getSupportedMediaTypes()); - } + public void getHandlerMediaTypeNotSupported() throws Exception { + testHttpMediaTypeNotSupportedException("/person/1"); + testHttpMediaTypeNotSupportedException("/person/1/"); + testHttpMediaTypeNotSupportedException("/person/1.json"); } @Test - public void testMediaTypeNotValue() throws Exception { + public void getHandlerTestInvalidContentType() throws Exception { try { MockHttpServletRequest request = new MockHttpServletRequest("PUT", "/person/1"); request.setContentType("bogus"); @@ -192,32 +185,19 @@ public class RequestMappingInfoHandlerMappingTests { } } + // SPR-8462 + @Test - public void mediaTypeNotAccepted() throws Exception { - testMediaTypeNotAccepted("/persons"); - - // SPR-8462 - testMediaTypeNotAccepted("/persons/"); - testMediaTypeNotAccepted("/persons.json"); - } - - private void testMediaTypeNotAccepted(String url) throws Exception { - try { - MockHttpServletRequest request = new MockHttpServletRequest("GET", url); - request.addHeader("Accept", "application/json"); - this.handlerMapping.getHandler(request); - fail("HttpMediaTypeNotAcceptableException expected"); - } - catch (HttpMediaTypeNotAcceptableException ex) { - assertEquals("Invalid supported producible media types", - Arrays.asList(new MediaType("application", "xml")), ex.getSupportedMediaTypes()); - } + public void getHandlerMediaTypeNotAccepted() throws Exception { + testHttpMediaTypeNotAcceptableException("/persons"); + testHttpMediaTypeNotAcceptableException("/persons/"); + testHttpMediaTypeNotAcceptableException("/persons.json"); } // SPR-12854 @Test - public void testUnsatisfiedServletRequestParameterException() throws Exception { + public void getHandlerUnsatisfiedServletRequestParameterException() throws Exception { try { MockHttpServletRequest request = new MockHttpServletRequest("GET", "/params"); this.handlerMapping.getHandler(request); @@ -232,17 +212,51 @@ public class RequestMappingInfoHandlerMappingTests { } @Test - public void uriTemplateVariables() { - PatternsRequestCondition patterns = new PatternsRequestCondition("/{path1}/{path2}"); - RequestMappingInfo key = new RequestMappingInfo(patterns, null, null, null, null, null, null); + public void getHandlerProducibleMediaTypesAttribute() throws Exception { + MockHttpServletRequest request = new MockHttpServletRequest("GET", "/content"); + request.addHeader("Accept", "application/xml"); + this.handlerMapping.getHandler(request); + + String name = HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE; + assertEquals(Collections.singleton(MediaType.APPLICATION_XML), request.getAttribute(name)); + + request = new MockHttpServletRequest("GET", "/content"); + request.addHeader("Accept", "application/json"); + this.handlerMapping.getHandler(request); + + assertNull("Negated expression shouldn't be listed as producible type", request.getAttribute(name)); + } + + @Test + public void getHandlerMappedInterceptors() throws Exception { + String path = "/foo"; + HandlerInterceptor interceptor = new HandlerInterceptorAdapter() {}; + MappedInterceptor mappedInterceptor = new MappedInterceptor(new String[] {path}, interceptor); + + TestRequestMappingInfoHandlerMapping mapping = new TestRequestMappingInfoHandlerMapping(); + mapping.registerHandler(new TestController()); + mapping.setInterceptors(new Object[] { mappedInterceptor }); + mapping.setApplicationContext(new StaticWebApplicationContext()); + + HandlerExecutionChain chain = mapping.getHandler(new MockHttpServletRequest("GET", path)); + assertNotNull(chain); + assertNotNull(chain.getInterceptors()); + assertSame(interceptor, chain.getInterceptors()[0]); + + chain = mapping.getHandler(new MockHttpServletRequest("GET", "/invalid")); + assertNull(chain); + } + + @SuppressWarnings("unchecked") + @Test + public void handleMatchUriTemplateVariables() { + RequestMappingInfo key = RequestMappingInfo.paths("/{path1}/{path2}").build(); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/1/2"); String lookupPath = new UrlPathHelper().getLookupPathForRequest(request); this.handlerMapping.handleMatch(key, lookupPath, request); - @SuppressWarnings("unchecked") - Map uriVariables = - (Map) request.getAttribute( - HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); + String name = HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE; + Map uriVariables = (Map) request.getAttribute(name); assertNotNull(uriVariables); assertEquals("1", uriVariables.get("path1")); @@ -251,10 +265,10 @@ public class RequestMappingInfoHandlerMappingTests { // SPR-9098 + @SuppressWarnings("unchecked") @Test - public void uriTemplateVariablesDecode() { - PatternsRequestCondition patterns = new PatternsRequestCondition("/{group}/{identifier}"); - RequestMappingInfo key = new RequestMappingInfo(patterns, null, null, null, null, null, null); + public void handleMatchUriTemplateVariablesDecode() { + RequestMappingInfo key = RequestMappingInfo.paths("/{group}/{identifier}").build(); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/group/a%2Fb"); UrlPathHelper pathHelper = new UrlPathHelper(); @@ -264,9 +278,8 @@ public class RequestMappingInfoHandlerMappingTests { this.handlerMapping.setUrlPathHelper(pathHelper); this.handlerMapping.handleMatch(key, lookupPath, request); - @SuppressWarnings("unchecked") - Map uriVariables = - (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); + String name = HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE; + Map uriVariables = (Map) request.getAttribute(name); assertNotNull(uriVariables); assertEquals("group", uriVariables.get("group")); @@ -274,20 +287,17 @@ public class RequestMappingInfoHandlerMappingTests { } @Test - public void bestMatchingPatternAttribute() { - PatternsRequestCondition patterns = new PatternsRequestCondition("/{path1}/2", "/**"); - RequestMappingInfo key = new RequestMappingInfo(patterns, null, null, null, null, null, null); + public void handleMatchBestMatchingPatternAttribute() { + RequestMappingInfo key = RequestMappingInfo.paths("/{path1}/2", "/**").build(); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/1/2"); - this.handlerMapping.handleMatch(key, "/1/2", request); assertEquals("/{path1}/2", request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE)); } @Test - public void bestMatchingPatternAttributeNoPatternsDefined() { - PatternsRequestCondition patterns = new PatternsRequestCondition(); - RequestMappingInfo key = new RequestMappingInfo(patterns, null, null, null, null, null, null); + public void handleMatchBestMatchingPatternAttributeNoPatternsDefined() { + RequestMappingInfo key = RequestMappingInfo.paths().build(); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/1/2"); this.handlerMapping.handleMatch(key, "/1/2", request); @@ -296,51 +306,13 @@ public class RequestMappingInfoHandlerMappingTests { } @Test - public void producibleMediaTypesAttribute() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest("GET", "/content"); - request.addHeader("Accept", "application/xml"); - this.handlerMapping.getHandler(request); - - assertEquals(Collections.singleton(MediaType.APPLICATION_XML), - request.getAttribute(HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE)); - - request = new MockHttpServletRequest("GET", "/content"); - request.addHeader("Accept", "application/json"); - this.handlerMapping.getHandler(request); - - assertNull("Negated expression should not be listed as a producible type", - request.getAttribute(HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE)); - } - - @Test - public void mappedInterceptors() throws Exception { - String path = "/foo"; - HandlerInterceptor interceptor = new HandlerInterceptorAdapter() {}; - MappedInterceptor mappedInterceptor = new MappedInterceptor(new String[] {path}, interceptor); - - TestRequestMappingInfoHandlerMapping hm = new TestRequestMappingInfoHandlerMapping(); - hm.registerHandler(new TestController()); - hm.setInterceptors(new Object[] { mappedInterceptor }); - hm.setApplicationContext(new StaticWebApplicationContext()); - - HandlerExecutionChain chain = hm.getHandler(new MockHttpServletRequest("GET", path)); - assertNotNull(chain); - assertNotNull(chain.getInterceptors()); - assertSame(interceptor, chain.getInterceptors()[0]); - - chain = hm.getHandler(new MockHttpServletRequest("GET", "/invalid")); - assertNull(chain); - } - - @Test - public void matrixVariables() { - + public void handleMatchMatrixVariables() { MockHttpServletRequest request; MultiValueMap matrixVariables; Map uriVariables; request = new MockHttpServletRequest(); - testHandleMatch(request, "/{cars}", "/cars;colors=red,blue,green;year=2012"); + handleMatch(request, "/{cars}", "/cars;colors=red,blue,green;year=2012"); matrixVariables = getMatrixVariables(request, "cars"); uriVariables = getUriTemplateVariables(request); @@ -351,7 +323,7 @@ public class RequestMappingInfoHandlerMappingTests { assertEquals("cars", uriVariables.get("cars")); request = new MockHttpServletRequest(); - testHandleMatch(request, "/{cars:[^;]+}{params}", "/cars;colors=red,blue,green;year=2012"); + handleMatch(request, "/{cars:[^;]+}{params}", "/cars;colors=red,blue,green;year=2012"); matrixVariables = getMatrixVariables(request, "params"); uriVariables = getUriTemplateVariables(request); @@ -363,7 +335,7 @@ public class RequestMappingInfoHandlerMappingTests { assertEquals(";colors=red,blue,green;year=2012", uriVariables.get("params")); request = new MockHttpServletRequest(); - testHandleMatch(request, "/{cars:[^;]+}{params}", "/cars"); + handleMatch(request, "/{cars:[^;]+}{params}", "/cars"); matrixVariables = getMatrixVariables(request, "params"); uriVariables = getUriTemplateVariables(request); @@ -374,7 +346,7 @@ public class RequestMappingInfoHandlerMappingTests { } @Test - public void matrixVariablesDecoding() { + public void handleMatchMatrixVariablesDecoding() { MockHttpServletRequest request; @@ -385,20 +357,53 @@ public class RequestMappingInfoHandlerMappingTests { this.handlerMapping.setUrlPathHelper(urlPathHelper ); request = new MockHttpServletRequest(); - testHandleMatch(request, "/path{filter}", "/path;mvar=a%2fb"); + handleMatch(request, "/path{filter}", "/path;mvar=a%2fb"); MultiValueMap matrixVariables = getMatrixVariables(request, "filter"); Map uriVariables = getUriTemplateVariables(request); assertNotNull(matrixVariables); - assertEquals(Arrays.asList("a/b"), matrixVariables.get("mvar")); + assertEquals(Collections.singletonList("a/b"), matrixVariables.get("mvar")); assertEquals(";mvar=a/b", uriVariables.get("filter")); } - private void testHandleMatch(MockHttpServletRequest request, String pattern, String lookupPath) { - PatternsRequestCondition patterns = new PatternsRequestCondition(pattern); - RequestMappingInfo info = new RequestMappingInfo(patterns, null, null, null, null, null, null); + private HandlerMethod getHandler(MockHttpServletRequest request) throws Exception { + HandlerExecutionChain chain = this.handlerMapping.getHandler(request); + assertNotNull(chain); + return (HandlerMethod) chain.getHandler(); + } + + private void testHttpMediaTypeNotSupportedException(String url) throws Exception { + try { + MockHttpServletRequest request = new MockHttpServletRequest("PUT", url); + request.setContentType("application/json"); + this.handlerMapping.getHandler(request); + fail("HttpMediaTypeNotSupportedException expected"); + } + catch (HttpMediaTypeNotSupportedException ex) { + assertEquals("Invalid supported consumable media types", + Collections.singletonList(new MediaType("application", "xml")), + ex.getSupportedMediaTypes()); + } + } + + private void testHttpMediaTypeNotAcceptableException(String url) throws Exception { + try { + MockHttpServletRequest request = new MockHttpServletRequest("GET", url); + request.addHeader("Accept", "application/json"); + this.handlerMapping.getHandler(request); + fail("HttpMediaTypeNotAcceptableException expected"); + } + catch (HttpMediaTypeNotAcceptableException ex) { + assertEquals("Invalid supported producible media types", + Collections.singletonList(new MediaType("application", "xml")), + ex.getSupportedMediaTypes()); + } + } + + private void handleMatch(MockHttpServletRequest request, String pattern, String lookupPath) { + RequestMappingInfo info = RequestMappingInfo.paths(pattern).build(); this.handlerMapping.handleMatch(info, lookupPath, request); } @@ -491,15 +496,15 @@ public class RequestMappingInfoHandlerMappingTests { @Override protected RequestMappingInfo getMappingForMethod(Method method, Class handlerType) { - RequestMapping annotation = AnnotationUtils.findAnnotation(method, RequestMapping.class); - if (annotation != null) { + RequestMapping annot = AnnotationUtils.findAnnotation(method, RequestMapping.class); + if (annot != null) { return new RequestMappingInfo( - new PatternsRequestCondition(annotation.value(), getUrlPathHelper(), getPathMatcher(), true, true), - new RequestMethodsRequestCondition(annotation.method()), - new ParamsRequestCondition(annotation.params()), - new HeadersRequestCondition(annotation.headers()), - new ConsumesRequestCondition(annotation.consumes(), annotation.headers()), - new ProducesRequestCondition(annotation.produces(), annotation.headers()), null); + new PatternsRequestCondition(annot.value(), getUrlPathHelper(), getPathMatcher(), true, true), + new RequestMethodsRequestCondition(annot.method()), + new ParamsRequestCondition(annot.params()), + new HeadersRequestCondition(annot.headers()), + new ConsumesRequestCondition(annot.consumes(), annot.headers()), + new ProducesRequestCondition(annot.produces(), annot.headers()), null); } else { return null;