@Test public void createAttributeUriTemplateVarCannotConvert() throws Exception { Map<String, String> uriTemplateVars = new HashMap<>(); uriTemplateVars.put("testBean2", "Patty"); request.setAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, uriTemplateVars); TestBeanWithoutStringConstructor testBean = (TestBeanWithoutStringConstructor) processor.resolveArgument( testBeanWithoutStringConstructorModelAttr, mavContainer, webRequest, binderFactory); assertNotNull(testBean); }
@Test @SuppressWarnings("unchecked") public void createAttributeUriTemplateVarWithOptional() throws Exception { Map<String, String> uriTemplateVars = new HashMap<>(); uriTemplateVars.put("testBean3", "Patty"); request.setAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, uriTemplateVars); // Type conversion from "Patty" to TestBean via TestBean(String) constructor Optional<TestBean> testBean = (Optional<TestBean>) processor.resolveArgument( testBeanWithOptionalModelAttr, mavContainer, webRequest, binderFactory); assertEquals("Patty", testBean.get().getName()); }
@Test public void createAttributeUriTemplateVar() throws Exception { Map<String, String> uriTemplateVars = new HashMap<>(); uriTemplateVars.put("testBean1", "Patty"); request.setAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, uriTemplateVars); // Type conversion from "Patty" to TestBean via TestBean(String) constructor TestBean testBean = (TestBean) processor.resolveArgument( testBeanModelAttr, mavContainer, webRequest, binderFactory); assertEquals("Patty", testBean.getName()); }
@Test @SuppressWarnings("unchecked") public void createAttributeRequestParameterWithOptional() throws Exception { request.addParameter("testBean3", "Patty"); Optional<TestBean> testBean = (Optional<TestBean>) processor.resolveArgument( testBeanWithOptionalModelAttr, mavContainer, webRequest, binderFactory); assertEquals("Patty", testBean.get().getName()); }
@Test public void createAttributeRequestParameterCannotConvert() throws Exception { request.addParameter("testBean2", "Patty"); TestBeanWithoutStringConstructor testBean = (TestBeanWithoutStringConstructor) processor.resolveArgument( testBeanWithoutStringConstructorModelAttr, mavContainer, webRequest, binderFactory); assertNotNull(testBean); }
@Test @SuppressWarnings("unchecked") public void attributesAsOptionalEmpty() throws Exception { request.addParameter("name", "Patty"); mavContainer.getModel().put("testBean1", Optional.empty()); mavContainer.getModel().put("testBean2", Optional.empty()); mavContainer.getModel().put("testBean3", Optional.empty()); assertNull(processor.resolveArgument( testBeanModelAttr, mavContainer, webRequest, binderFactory)); assertNull(processor.resolveArgument( testBeanWithoutStringConstructorModelAttr, mavContainer, webRequest, binderFactory)); Optional<TestBean> testBean =(Optional<TestBean>) processor.resolveArgument( testBeanWithOptionalModelAttr, mavContainer, webRequest, binderFactory); assertFalse(testBean.isPresent()); }
@Test @SuppressWarnings("unchecked") public void attributesAsNullValues() throws Exception { request.addParameter("name", "Patty"); mavContainer.getModel().put("testBean1", null); mavContainer.getModel().put("testBean2", null); mavContainer.getModel().put("testBean3", null); assertNull(processor.resolveArgument( testBeanModelAttr, mavContainer, webRequest, binderFactory)); assertNull(processor.resolveArgument( testBeanWithoutStringConstructorModelAttr, mavContainer, webRequest, binderFactory)); Optional<TestBean> testBean = (Optional<TestBean>) processor.resolveArgument( testBeanWithOptionalModelAttr, mavContainer, webRequest, binderFactory); assertFalse(testBean.isPresent()); }
@Test public void createAttributeRequestParameter() throws Exception { request.addParameter("testBean1", "Patty"); // Type conversion from "Patty" to TestBean via TestBean(String) constructor TestBean testBean = (TestBean) processor.resolveArgument( testBeanModelAttr, mavContainer, webRequest, binderFactory); assertEquals("Patty", testBean.getName()); }