diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/DispatcherServletTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/DispatcherServletTests.java index 6a22d2f8c99..ad6465cf7af 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/DispatcherServletTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/DispatcherServletTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-2022 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. @@ -29,6 +29,7 @@ import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequestWrapper; import jakarta.servlet.http.HttpServletResponse; +import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -169,7 +170,7 @@ public class DispatcherServletTests { request.addUserRole("role1"); MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); - assertThat("myform.jsp".equals(response.getForwardedUrl())).as("forwarded to form").isTrue(); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("myform.jsp"); } @Test @@ -197,7 +198,7 @@ public class DispatcherServletTests { MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/unknown.do"); MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); - assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); assertThat(request.getAttribute("exception").getClass().equals(ServletException.class)).as("Exception exposed").isTrue(); } @@ -262,10 +263,10 @@ public class DispatcherServletTests { request.setAttribute("fail", Boolean.TRUE); MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); - assertThat("failed0.jsp".equals(response.getForwardedUrl())).as("forwarded to failed").isTrue(); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); assertThat(response.getStatus()).isEqualTo(200); - assertThat(request.getAttribute( - SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE) instanceof MaxUploadSizeExceededException).as("correct exception").isTrue(); + assertThat(request.getAttribute(SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE)) + .isInstanceOf(MaxUploadSizeExceededException.class); } @Test @@ -294,7 +295,7 @@ public class DispatcherServletTests { MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertThat(response.getStatus()).isEqualTo(200); - assertThat("failed1.jsp".equals(response.getForwardedUrl())).as("forwarded to failed").isTrue(); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed1.jsp"); } @Test @@ -306,7 +307,7 @@ public class DispatcherServletTests { MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertThat(response.getStatus()).isEqualTo(200); - assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed2.jsp"); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed2.jsp"); assertThat(request.getAttribute("exception") instanceof IllegalAccessException).as("Exception exposed").isTrue(); } @@ -319,7 +320,7 @@ public class DispatcherServletTests { MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertThat(response.getStatus()).isEqualTo(200); - assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed3.jsp"); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed3.jsp"); assertThat(request.getAttribute("exception") instanceof ServletException).as("Exception exposed").isTrue(); } @@ -332,7 +333,7 @@ public class DispatcherServletTests { MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertThat(response.getStatus()).isEqualTo(500); - assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed1.jsp"); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed1.jsp"); assertThat(request.getAttribute("exception") instanceof IllegalAccessException).as("Exception exposed").isTrue(); } @@ -345,7 +346,7 @@ public class DispatcherServletTests { MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertThat(response.getStatus()).isEqualTo(500); - assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed1.jsp"); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed1.jsp"); assertThat(request.getAttribute("exception") instanceof ServletException).as("Exception exposed").isTrue(); } @@ -358,7 +359,7 @@ public class DispatcherServletTests { MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertThat(response.getStatus()).isEqualTo(200); - assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); assertThat(request.getAttribute("exception").getClass().equals(RuntimeException.class)).as("Exception exposed").isTrue(); } @@ -371,7 +372,7 @@ public class DispatcherServletTests { MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertThat(response.getStatus()).isEqualTo(200); - assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); assertThat(request.getAttribute("exception").getClass().equals(ServletException.class)).as("Exception exposed").isTrue(); } @@ -396,7 +397,7 @@ public class DispatcherServletTests { MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertThat(response.getStatus()).isEqualTo(200); - assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); assertThat(request.getAttribute("exception").getClass().equals(ServletException.class)).as("Exception exposed").isTrue(); } @@ -518,7 +519,10 @@ public class DispatcherServletTests { request = new MockHttpServletRequest(getServletContext(), "GET", "/form.do"); response = new MockHttpServletResponse(); + request.addParameter("fail", "yes"); complexDispatcherServlet.service(request, response); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed1.jsp"); + assertThat(request.getAttribute("exception")).isNull(); } @Test @@ -535,12 +539,15 @@ public class DispatcherServletTests { complexDispatcherServlet.service(request, response); assertThat(response.getContentAsString()).isEqualTo("body"); - // SimpleControllerHandlerAdapter not detected + // MyHandlerAdapter not detected request = new MockHttpServletRequest(getServletContext(), "GET", "/form.do"); response = new MockHttpServletResponse(); + request.addParameter("fail", "yes"); complexDispatcherServlet.service(request, response); - assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); - assertThat(request.getAttribute("exception").getClass().equals(ServletException.class)).as("Exception exposed").isTrue(); + assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); + assertThat(request.getAttribute("exception")) + .asInstanceOf(InstanceOfAssertFactories.type(ServletException.class)) + .extracting(Throwable::getMessage).asString().startsWith("No adapter for handler"); } @Test