method naming improvements; applyIndexObject call for array indexing

This commit is contained in:
Keith Donald
2011-01-05 16:54:03 +00:00
parent 9c64ac7482
commit 818bd841fe
4 changed files with 110 additions and 37 deletions

View File

@@ -2,11 +2,13 @@ package org.springframework.web.servlet.mvc.annotation;
import static org.junit.Assert.assertEquals;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Ignore;
import org.junit.Before;
import org.junit.Test;
import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.support.ConversionServiceFactory;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.mock.web.MockHttpServletRequest;
@@ -17,30 +19,78 @@ import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
public class Spr7839Tests {
@Test
@Ignore
public void test() throws Exception {
AnnotationMethodHandlerAdapter adapter = new AnnotationMethodHandlerAdapter();
AnnotationMethodHandlerAdapter adapter = new AnnotationMethodHandlerAdapter();
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
Spr7839Controller controller = new Spr7839Controller();
@Before
public void setUp() {
ConfigurableWebBindingInitializer binder = new ConfigurableWebBindingInitializer();
GenericConversionService service = ConversionServiceFactory.createDefaultConversionService();
service.addConverter(new Converter<String, NestedBean>() {
public NestedBean convert(String source) {
return new NestedBean(source);
}
});
binder.setConversionService(service);
adapter.setWebBindingInitializer(binder);
Spr7839Controller controller = new Spr7839Controller();
MockHttpServletRequest request = new MockHttpServletRequest();
}
@Test
public void object() throws Exception {
request.setRequestURI("/nested");
request.setPathInfo("/nested");
request.addParameter("nested.map['apple'].foo", "bar");
MockHttpServletResponse response = new MockHttpServletResponse();
request.addParameter("nested", "Nested");
adapter.handle(request, response, controller);
}
@Test
public void list() throws Exception {
request.setRequestURI("/nested/list");
request.addParameter("nested.list", "Nested1,Nested2");
adapter.handle(request, response, controller);
}
@Test
public void listElement() throws Exception {
request.setRequestURI("/nested/listElement");
request.addParameter("nested.list[0]", "Nested");
adapter.handle(request, response, controller);
}
@Test
public void map() throws Exception {
request.setRequestURI("/nested/map");
request.addParameter("nested.map['apple'].foo", "bar");
adapter.handle(request, response, controller);
}
@Controller
public static class Spr7839Controller {
@RequestMapping("/nested")
public void handler(JavaBean bean) {
assertEquals("Nested", bean.nested.foo);
}
@RequestMapping("/nested/list")
public void handlerList(JavaBean bean) {
assertEquals("Nested2", bean.nested.list.get(1).foo);
}
@RequestMapping("/nested/map")
public void handlerMap(JavaBean bean) {
assertEquals("bar", bean.nested.map.get("apple").foo);
}
@RequestMapping("/nested/listElement")
public void handlerListElement(JavaBean bean) {
assertEquals("Nested", bean.nested.list.get(0).foo);
}
}
public static class JavaBean {
@@ -64,8 +114,16 @@ public class Spr7839Tests {
private List<NestedBean> list;
private Map<String, NestedBean> map;
private Map<String, NestedBean> map = new HashMap<String, NestedBean>();
public NestedBean() {
}
public NestedBean(String foo) {
this.foo = foo;
}
public String getFoo() {
return foo;
}