diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java b/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java index b88fa814485..0fb98f2b68f 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java @@ -63,7 +63,7 @@ import org.springframework.web.util.WebUtils; * through {@link #setMajorVersion}/{@link #setMinorVersion}; default is 3.0. * Note that Servlet 3.0 support is limited: servlet, filter and listener * registration methods are not supported; neither is JSP configuration. - * We generally do not recommend to unit-test your ServletContainerInitializers and + * We generally do not recommend to unit test your ServletContainerInitializers and * WebApplicationInitializers which is where those registration methods would be used. * *

Used for testing the Spring web framework; only rarely necessary for testing @@ -605,14 +605,22 @@ public class MockServletContext implements ServletContext { throw new UnsupportedOperationException(); } + /** + * This method always returns {@code null}. + * @see javax.servlet.ServletContext#getServletRegistration(java.lang.String) + */ @Override public ServletRegistration getServletRegistration(String servletName) { - throw new UnsupportedOperationException(); + return null; } + /** + * This method always returns an {@linkplain Collections#emptyMap empty map}. + * @see javax.servlet.ServletContext#getServletRegistrations() + */ @Override public Map getServletRegistrations() { - throw new UnsupportedOperationException(); + return Collections.emptyMap(); } @Override @@ -635,14 +643,22 @@ public class MockServletContext implements ServletContext { throw new UnsupportedOperationException(); } + /** + * This method always returns {@code null}. + * @see javax.servlet.ServletContext#getFilterRegistration(java.lang.String) + */ @Override public FilterRegistration getFilterRegistration(String filterName) { - throw new UnsupportedOperationException(); + return null; } + /** + * This method always returns an {@linkplain Collections#emptyMap empty map}. + * @see javax.servlet.ServletContext#getFilterRegistrations() + */ @Override public Map getFilterRegistrations() { - throw new UnsupportedOperationException(); + return Collections.emptyMap(); } @Override diff --git a/spring-test/src/test/java/org/springframework/mock/web/MockServletContextTests.java b/spring-test/src/test/java/org/springframework/mock/web/MockServletContextTests.java index 177977f32ce..83fd14cc052 100644 --- a/spring-test/src/test/java/org/springframework/mock/web/MockServletContextTests.java +++ b/spring-test/src/test/java/org/springframework/mock/web/MockServletContextTests.java @@ -16,16 +16,18 @@ package org.springframework.mock.web; +import java.util.Map; import java.util.Set; import javax.activation.FileTypeMap; import javax.activation.MimetypesFileTypeMap; +import javax.servlet.FilterRegistration; import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRegistration; import org.junit.Test; import static org.hamcrest.CoreMatchers.*; - import static org.junit.Assert.*; /** @@ -147,4 +149,40 @@ public class MockServletContextTests { assertEquals(newDefault, response.getForwardedUrl()); } + /** + * @since 4.1.2 + */ + @Test + public void getServletRegistration() { + assertNull(sc.getServletRegistration("servlet")); + } + + /** + * @since 4.1.2 + */ + @Test + public void getServletRegistrations() { + Map servletRegistrations = sc.getServletRegistrations(); + assertNotNull(servletRegistrations); + assertEquals(0, servletRegistrations.size()); + } + + /** + * @since 4.1.2 + */ + @Test + public void getFilterRegistration() { + assertNull(sc.getFilterRegistration("filter")); + } + + /** + * @since 4.1.2 + */ + @Test + public void getFilterRegistrations() { + Map filterRegistrations = sc.getFilterRegistrations(); + assertNotNull(filterRegistrations); + assertEquals(0, filterRegistrations.size()); + } + }