package li.mock; import java.io.BufferedReader; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.Enumeration; import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Vector; import javax.servlet.ServletInputStream; import javax.servlet.ServletRequest; import li.util.Log; import li.util.ThreadUtil; /** * MockServletRequest * * @author li (limingwei@mail.com) * @version 0.1.1 (2012-09-27) */ public class MockServletRequest implements ServletRequest { private static final Log log = Log.init(); private MockServletContext servletContext; private Map<String, Object> requestMap; private Map<String, String[]> parameterMap; private String encoding; private String contentType; public MockServletRequest() { this.requestMap = new HashMap<String, Object>(); this.parameterMap = new HashMap<String, String[]>(); } public void setServletContext(MockServletContext servletContext) { this.servletContext = servletContext; } public MockRequestDispatcher getRequestDispatcher(String path) { return new MockRequestDispatcher(path); } public MockServletContext getServletContext() { return this.servletContext; } public void removeAttribute(String key) { requestMap.remove(key); } public void setAttribute(String key, Object value) { requestMap.put(key, value); } public Object getAttribute(String key) { return requestMap.get(key); } public Enumeration<String> getAttributeNames() { return new Vector<String>(requestMap.keySet()).elements(); } public String getParameter(String key) { String[] params = parameterMap.get(key); return null == params ? null : params[0]; } public Map<String, String[]> getParameterMap() { return this.parameterMap; } public Enumeration<String> getParameterNames() { return new Vector<String>(parameterMap.keySet()).elements(); } public String[] getParameterValues(String key) { return parameterMap.get(key); } public void setParameter(Map<String, String[]> parameterMap) { this.parameterMap = parameterMap; } public void setParameter(String key, String value) { parameterMap.put(key, new String[] { value }); } public void setParameter(String key, String[] value) { parameterMap.put(key, value); } public String getCharacterEncoding() { return this.encoding; } public void setCharacterEncoding(String encoding) throws UnsupportedEncodingException { this.encoding = encoding; log.info("set encoding " + encoding + " calling by " + ThreadUtil.stackTrace()); } public String getContentType() { return this.contentType; } public void setContentType(String contentType) { this.contentType = contentType; log.info("set contentType " + contentType + " calling by " + ThreadUtil.stackTrace()); } public int getContentLength() { return 0; } public ServletInputStream getInputStream() throws IOException { return null; } public String getLocalAddr() { return null; } public String getLocalName() { return null; } public int getLocalPort() { return 0; } public Locale getLocale() { return null; } public Enumeration<Locale> getLocales() { return null; } public String getProtocol() { return null; } public BufferedReader getReader() throws IOException { return null; } public String getRealPath(String path) { return null; } public String getRemoteAddr() { return null; } public String getRemoteHost() { return null; } public int getRemotePort() { return 0; } public String getScheme() { return null; } public String getServerName() { return null; } public int getServerPort() { return 0; } public boolean isAsyncStarted() { return false; } public boolean isAsyncSupported() { return false; } public boolean isSecure() { return false; } }