@Test public void resolveWithName() throws Exception { MethodParameter param = initMethodParameter(1); Foo foo = new Foo(); this.webRequest.setAttribute("specialFoo", foo, getScope()); assertSame(foo, testResolveArgument(param)); }
@Test public void resolve() throws Exception { MethodParameter param = initMethodParameter(0); try { testResolveArgument(param); fail("Should be required by default"); } catch (ServletRequestBindingException ex) { assertTrue(ex.getMessage().startsWith("Missing ")); } Foo foo = new Foo(); this.webRequest.setAttribute("foo", foo, getScope()); assertSame(foo, testResolveArgument(param)); }
@Test public void resolveNotRequired() throws Exception { MethodParameter param = initMethodParameter(2); assertNull(testResolveArgument(param)); Foo foo = new Foo(); this.webRequest.setAttribute("foo", foo, getScope()); assertSame(foo, testResolveArgument(param)); }
@Test public void resolveOptional() throws Exception { WebDataBinder dataBinder = new WebRequestDataBinder(null); dataBinder.setConversionService(new DefaultConversionService()); WebDataBinderFactory factory = mock(WebDataBinderFactory.class); given(factory.createBinder(this.webRequest, null, "foo")).willReturn(dataBinder); MethodParameter param = initMethodParameter(3); Object actual = testResolveArgument(param, factory); assertNotNull(actual); assertEquals(Optional.class, actual.getClass()); assertFalse(((Optional<?>) actual).isPresent()); Foo foo = new Foo(); this.webRequest.setAttribute("foo", foo, getScope()); actual = testResolveArgument(param, factory); assertNotNull(actual); assertEquals(Optional.class, actual.getClass()); assertTrue(((Optional<?>) actual).isPresent()); assertSame(foo, ((Optional<?>) actual).get()); }
@Test public void unresolvedMobile() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.MOBILE, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethodUnresolved", String.class), 0); Object resolved = resolver.resolveArgument(parameter, request); assertSame(WebArgumentResolver.UNRESOLVED, resolved); }
@Test public void unresolved() throws Exception { request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethodUnresolved", String.class), 0); Object resolved = resolver.resolveArgument(parameter, request); assertSame(WebArgumentResolver.UNRESOLVED, resolved); }
@Test public void unresolvedMobile() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.MOBILE, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethodUnresolved", String.class), 0); assertFalse(resolver.supportsParameter(parameter)); }
@Test public void resolveTablet() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethod", SitePreference.class), 0); Object resolved = resolver.resolveArgument(parameter, request); assertEquals(SitePreference.TABLET, resolved); }
@Test public void resolveNormal() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.NORMAL, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethod", SitePreference.class), 0); Object resolved = resolver.resolveArgument(parameter, request); assertEquals(SitePreference.NORMAL, resolved); }
@Test public void unresolved() throws Exception { request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethodUnresolved", String.class), 0); assertFalse(resolver.supportsParameter(parameter)); }
@Test public void unresolvedNormal() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.NORMAL, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethodUnresolved", String.class), 0); assertFalse(resolver.supportsParameter(parameter)); }
@Test public void resolveMobile() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.MOBILE, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethod", SitePreference.class), 0); Object resolved = resolver.resolveArgument(parameter, request); assertEquals(SitePreference.MOBILE, resolved); }
@Test public void unresolvedTablet() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethodUnresolved", String.class), 0); Object resolved = resolver.resolveArgument(parameter, request); assertSame(WebArgumentResolver.UNRESOLVED, resolved); }
@Test public void resolve() throws Exception { request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethod", Device.class), 0); Object resolved = resolver.resolveArgument(parameter, request); assertSame(device, resolved); }
@Test public void unresolvedTablet() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethodUnresolved", String.class), 0); assertFalse(resolver.supportsParameter(parameter)); }
@Test public void unresolvedNormal() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.NORMAL, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethodUnresolved", String.class), 0); Object resolved = resolver.resolveArgument(parameter, request); assertSame(WebArgumentResolver.UNRESOLVED, resolved); }
@Test public void resolveTablet() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethod", SitePreference.class), 0); assertTrue(resolver.supportsParameter(parameter)); Object resolved = resolver.resolveArgument(parameter, null, request, null); assertEquals(SitePreference.TABLET, resolved); }
@Test public void resolveNormal() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.NORMAL, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethod", SitePreference.class), 0); assertTrue(resolver.supportsParameter(parameter)); Object resolved = resolver.resolveArgument(parameter, null, request, null); assertEquals(SitePreference.NORMAL, resolved); }
@Test public void resolveMobile() throws Exception { request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.MOBILE, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethod", SitePreference.class), 0); assertTrue(resolver.supportsParameter(parameter)); Object resolved = resolver.resolveArgument(parameter, null, request, null); assertEquals(SitePreference.MOBILE, resolved); }
@Test public void resolve() throws Exception { request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device, WebRequest.SCOPE_REQUEST); MethodParameter parameter = new MethodParameter(getClass().getMethod("handlerMethod", Device.class), 0); assertTrue(resolver.supportsParameter(parameter)); Object resolved = resolver.resolveArgument(parameter, null, request, null); assertSame(device, resolved); }