@Test
 public void nullExceptionMappings() {
   exceptionResolver.setExceptionMappings(null);
   exceptionResolver.setDefaultErrorView("default-view");
   ModelAndView mav =
       exceptionResolver.resolveException(request, response, handler1, genericException);
   assertEquals("default-view", mav.getViewName());
 }
 @Test
 public void missingExceptionInMapping() {
   Properties props = new Properties();
   props.setProperty("SomeFooThrowable", "error");
   exceptionResolver.setWarnLogCategory("HANDLER_EXCEPTION");
   exceptionResolver.setExceptionMappings(props);
   ModelAndView mav =
       exceptionResolver.resolveException(request, response, handler1, genericException);
   assertNull(mav);
 }
 @Test
 public void simpleExceptionMappingWithHandlerClassSpecifiedButWrongHandler() {
   Properties props = new Properties();
   props.setProperty("Exception", "error");
   exceptionResolver.setMappedHandlerClasses(new Class[] {String.class});
   exceptionResolver.setExceptionMappings(props);
   ModelAndView mav =
       exceptionResolver.resolveException(request, response, handler2, genericException);
   assertNull(mav);
 }
 @Test
 public void exactExceptionMappingWithHandlerInterfaceSpecified() {
   Properties props = new Properties();
   props.setProperty("java.lang.Exception", "error");
   exceptionResolver.setMappedHandlerClasses(new Class[] {Comparable.class});
   exceptionResolver.setExceptionMappings(props);
   ModelAndView mav =
       exceptionResolver.resolveException(request, response, handler1, genericException);
   assertEquals("error", mav.getViewName());
 }
 @Test
 public void exactExceptionMappingWithHandlerSpecified() {
   Properties props = new Properties();
   props.setProperty("java.lang.Exception", "error");
   exceptionResolver.setMappedHandlers(Collections.singleton(handler1));
   exceptionResolver.setExceptionMappings(props);
   ModelAndView mav =
       exceptionResolver.resolveException(request, response, handler1, genericException);
   assertEquals("error", mav.getViewName());
 }
 @Test
 public void simpleExceptionMapping() {
   Properties props = new Properties();
   props.setProperty("Exception", "error");
   exceptionResolver.setWarnLogCategory("HANDLER_EXCEPTION");
   exceptionResolver.setExceptionMappings(props);
   ModelAndView mav =
       exceptionResolver.resolveException(request, response, handler1, genericException);
   assertEquals("error", mav.getViewName());
 }
 @Test
 public void twoMappingsOneShortOneLong() {
   Properties props = new Properties();
   props.setProperty("Exception", "error");
   props.setProperty("AnotherException", "another-error");
   exceptionResolver.setMappedHandlers(Collections.singleton(handler1));
   exceptionResolver.setExceptionMappings(props);
   ModelAndView mav =
       exceptionResolver.resolveException(request, response, handler1, genericException);
   assertEquals("error", mav.getViewName());
 }
 @Test
 public void twoMappingsThrowOddExceptionUseLongExceptionMapping() {
   Exception oddException = new SomeOddException();
   Properties props = new Properties();
   props.setProperty("java.lang.Exception", "error");
   props.setProperty("SomeOddException", "another-error");
   exceptionResolver.setMappedHandlers(Collections.singleton(handler1));
   exceptionResolver.setExceptionMappings(props);
   ModelAndView mav =
       exceptionResolver.resolveException(request, response, handler1, oddException);
   assertEquals("another-error", mav.getViewName());
 }