
It's OK for these stub classes to implement deprecated methods in the interfaces, as long as they declare those methods with @Override and @Deprecated.
167 lines
4 KiB
Java
167 lines
4 KiB
Java
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
|
|
|
package stubs.javax.servlet.http;
|
|
|
|
import java.util.Enumeration;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import javax.servlet.ServletContext;
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
import org.apache.commons.logging.Log;
|
|
import org.apache.commons.logging.LogFactory;
|
|
|
|
import stubs.javax.servlet.ServletContextStub;
|
|
|
|
/**
|
|
* A simple stand-in for the HttpSession, for use in unit tests.
|
|
*/
|
|
public class HttpSessionStub implements HttpSession {
|
|
private static final Log log = LogFactory.getLog(HttpSessionStub.class);
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Stub infrastructure
|
|
// ----------------------------------------------------------------------
|
|
|
|
private String id = "arbitraryId";
|
|
private ServletContext context;
|
|
private final Map<String, Object> attributes = new HashMap<String, Object>();
|
|
|
|
@SuppressWarnings("unused")
|
|
private int maxInactiveInterval;
|
|
|
|
public void setId(String id) {
|
|
this.id = id;
|
|
}
|
|
|
|
public void setServletContext(ServletContext context) {
|
|
this.context = context;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Stub methods
|
|
// ----------------------------------------------------------------------
|
|
|
|
@Override
|
|
public String getId() {
|
|
return this.id;
|
|
}
|
|
|
|
@Override
|
|
public ServletContext getServletContext() {
|
|
if (this.context == null) {
|
|
return new ServletContextStub();
|
|
} else {
|
|
return this.context;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setAttribute(String name, Object value) {
|
|
if (name == null) {
|
|
throw new NullPointerException("name may not be null.");
|
|
}
|
|
if (value == null) {
|
|
removeAttribute(name);
|
|
}
|
|
attributes.put(name, value);
|
|
log.debug("setAttribute: " + name + "=" + value);
|
|
}
|
|
|
|
@Override
|
|
public void removeAttribute(String name) {
|
|
attributes.remove(name);
|
|
log.debug("removeAttribute: " + name);
|
|
}
|
|
|
|
@Override
|
|
public Object getAttribute(String name) {
|
|
return attributes.get(name);
|
|
}
|
|
|
|
/**
|
|
* So far, we don't do anything with this, or even confirm that it has been
|
|
* set. We just don't throw an exception if someone wants to set it.
|
|
*/
|
|
@Override
|
|
public void setMaxInactiveInterval(int seconds) {
|
|
this.maxInactiveInterval = seconds;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Un-implemented methods
|
|
// ----------------------------------------------------------------------
|
|
|
|
@Override
|
|
@SuppressWarnings("rawtypes")
|
|
public Enumeration getAttributeNames() {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.getAttributeNames() not implemented.");
|
|
}
|
|
|
|
@Override
|
|
public long getCreationTime() {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.getCreationTime() not implemented.");
|
|
}
|
|
|
|
@Override
|
|
public long getLastAccessedTime() {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.getLastAccessedTime() not implemented.");
|
|
}
|
|
|
|
@Override
|
|
public int getMaxInactiveInterval() {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.getMaxInactiveInterval() not implemented.");
|
|
}
|
|
|
|
@Deprecated
|
|
@Override
|
|
public javax.servlet.http.HttpSessionContext getSessionContext() {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.getSessionContext() not implemented.");
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public Object getValue(String arg0) {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.getValue() not implemented.");
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public String[] getValueNames() {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.getValueNames() not implemented.");
|
|
}
|
|
|
|
@Override
|
|
public void invalidate() {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.invalidate() not implemented.");
|
|
}
|
|
|
|
@Override
|
|
public boolean isNew() {
|
|
throw new RuntimeException("HttpSessionStub.isNew() not implemented.");
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public void putValue(String arg0, Object arg1) {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.putValue() not implemented.");
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public void removeValue(String arg0) {
|
|
throw new RuntimeException(
|
|
"HttpSessionStub.removeValue() not implemented.");
|
|
}
|
|
|
|
}
|