package li.mock; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import java.util.Vector; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionContext; import li.util.Log; import li.util.ThreadUtil; /** * MockHttpSession * * @author li (limingwei@mail.com) * @version 0.1.1 (2012-09-27) */ public class MockHttpSession implements HttpSession { private static final Log log = Log.init(); private ServletContext servletContext; private Map<String, Object> sessionMap; public MockHttpSession(ServletContext servletContext) { this.servletContext = servletContext; this.sessionMap = new HashMap<String, Object>(); } public void removeAttribute(String key) { sessionMap.remove(key); log.debug("remove session " + key + " calling by " + ThreadUtil.stackTrace()); } public void setAttribute(String key, Object value) { sessionMap.put(key, value); log.debug("set session " + key + " calling by " + ThreadUtil.stackTrace()); } public ServletContext getServletContext() { return this.servletContext; } public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } public Object getAttribute(String key) { return sessionMap.get(key); } public Object getValue(String key) { return sessionMap.get(key); } public String[] getValueNames() { return sessionMap.keySet().toArray(new String[0]); } public Enumeration<String> getAttributeNames() { return new Vector(sessionMap.keySet()).elements(); } public void putValue(String key, Object value) { sessionMap.put(key, value); } public void removeValue(String value) {} public long getCreationTime() { return 0; } public String getId() { return null; } public long getLastAccessedTime() { return 0; } public int getMaxInactiveInterval() { return 0; } public HttpSessionContext getSessionContext() { return null; } public void invalidate() {} public boolean isNew() { return false; } public void setMaxInactiveInterval(int arg0) {} }