30
30
import javax .servlet .http .HttpServletRequestWrapper ;
31
31
import javax .servlet .http .HttpServletResponse ;
32
32
33
+ import org .assertj .core .api .InstanceOfAssertFactories ;
33
34
import org .junit .jupiter .api .BeforeEach ;
34
35
import org .junit .jupiter .api .Test ;
35
36
@@ -519,7 +520,10 @@ public void detectAllHandlerAdapters() throws ServletException, IOException {
519
520
520
521
request = new MockHttpServletRequest (getServletContext (), "GET" , "/form.do" );
521
522
response = new MockHttpServletResponse ();
523
+ request .addParameter ("fail" , "yes" );
522
524
complexDispatcherServlet .service (request , response );
525
+ assertThat (response .getForwardedUrl ()).as ("forwarded URL" ).isEqualTo ("failed1.jsp" );
526
+ assertThat (request .getAttribute ("exception" )).isNull ();
523
527
}
524
528
525
529
@ Test
@@ -536,12 +540,15 @@ public void notDetectAllHandlerAdapters() throws ServletException, IOException {
536
540
complexDispatcherServlet .service (request , response );
537
541
assertThat (response .getContentAsString ()).isEqualTo ("body" );
538
542
539
- // SimpleControllerHandlerAdapter not detected
543
+ // MyHandlerAdapter not detected
540
544
request = new MockHttpServletRequest (getServletContext (), "GET" , "/form.do" );
541
545
response = new MockHttpServletResponse ();
546
+ request .addParameter ("fail" , "yes" );
542
547
complexDispatcherServlet .service (request , response );
543
- assertThat (response .getForwardedUrl ()).as ("forwarded to failed" ).isEqualTo ("failed0.jsp" );
544
- assertThat (request .getAttribute ("exception" ).getClass ().equals (ServletException .class )).as ("Exception exposed" ).isTrue ();
548
+ assertThat (response .getForwardedUrl ()).as ("forwarded URL" ).isEqualTo ("failed0.jsp" );
549
+ assertThat (request .getAttribute ("exception" ))
550
+ .asInstanceOf (InstanceOfAssertFactories .type (ServletException .class ))
551
+ .extracting (Throwable ::getMessage ).asString ().startsWith ("No adapter for handler" );
545
552
}
546
553
547
554
@ Test
0 commit comments