1 package org.seasar.cubby.controller.impl; 2 3 import java.util.Map; 4 5 import javax.servlet.http.HttpServletRequest; 6 7 import org.seasar.cubby.controller.RequestParser; 8 import org.seasar.cubby.controller.RequestParserSelector; 9 import org.seasar.extension.unit.S2TestCase; 10 import org.seasar.framework.mock.servlet.MockHttpServletRequest; 11 12 public class RequestParserSelectorImplTest extends S2TestCase { 13 14 public RequestParserSelector requestParserSelector; 15 16 @Override 17 protected void setUp() throws Exception { 18 super.setUp(); 19 include(this.getClass().getName().replaceAll("\\.", "/") + ".dicon"); 20 } 21 22 public void testSelect1() { 23 MockHttpServletRequest request = getRequest(); 24 RequestParser requestParser = requestParserSelector.select(request); 25 assertTrue(requestParser instanceof DefaultRequestParserImpl); 26 } 27 28 public void testSelect2() { 29 MockHttpServletRequest request = getRequest(); 30 request.setContentType("application/x-www-form-urlencoded"); 31 RequestParser requestParser = requestParserSelector.select(request); 32 assertTrue(requestParser instanceof DefaultRequestParserImpl); 33 } 34 35 public void testSelect3() { 36 MockHttpServletRequest request = getRequest(); 37 request.setContentType("multipart/form-data"); 38 RequestParser requestParser = requestParserSelector.select(request); 39 assertTrue(requestParser instanceof MultipartRequestParserImpl); 40 } 41 42 public void testSelect4() { 43 MockHttpServletRequest request = getRequest(); 44 request.setContentType("application/atom+xml"); 45 RequestParser requestParser = requestParserSelector.select(request); 46 assertTrue(requestParser instanceof DefaultRequestParserImpl); 47 } 48 49 public void testSelect5() { 50 MockHttpServletRequest request = getRequest(); 51 request.setContentType("foo/bar"); 52 RequestParser requestParser = requestParserSelector.select(request); 53 assertTrue(requestParser instanceof MyRequestParserImpl); 54 } 55 56 public static class MyRequestParserImpl implements RequestParser { 57 58 private int priority; 59 60 public Map<String, Object[]> getParameterMap(HttpServletRequest request) { 61 return null; 62 } 63 64 public int getPriority() { 65 return priority; 66 } 67 68 public void setPriority(int priority) { 69 this.priority = priority; 70 } 71 72 public boolean isParsable(HttpServletRequest request) { 73 return request.getContentType() != null 74 && request.getContentType().startsWith("foo/"); 75 } 76 77 } 78 }