package org.dataone.portal.session;
import static org.junit.Assert.*;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.EventListener;
import java.util.Map;
import java.util.Set;
import javax.servlet.Filter;
import javax.servlet.FilterRegistration;
import javax.servlet.FilterRegistration.Dynamic;
import javax.servlet.GenericServlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import javax.servlet.SessionCookieConfig;
import javax.servlet.SessionTrackingMode;
import javax.servlet.descriptor.JspConfigDescriptor;
import org.dataone.portal.session.SessionHelper;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class SessionHelperTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Before
public void setUp() throws Exception {
}
@Test
public void testInit_shouldFindAndParseTheConfig() throws ServletException {
ServletConfig sg = new ServletConfig() {
@Override
public ServletContext getServletContext() {
return getMockServletContext("org/dataone/portal/session/sampleHzClientConfig.properties");
}
@Override
public String getInitParameter(String arg0) {
return null;
}
@Override
public Enumeration<String> getInitParameterNames() {
return null;
}
@Override
public String getServletName() {
return null;
}
};
SessionHelper sh = SessionHelper.getInstance();
try {
sh.init(sg);
} catch (ServletException se) {
if (!(se.getCause() instanceof IllegalStateException)) {
throw se;
}
}
}
private ServletContext getMockServletContext(final String filepath) {
// mostly Auto-generated method stubs
return new ServletContext() {
@Override
public String getInitParameter(String arg0) {
// TODO Auto-generated method stub
if ("client-config-location".equals(arg0))
return filepath;
return null;
}
// the rest are autopopulated return values
/////////////////////////////////////////////
// TODO: uncomment the v3.0.1 methods in trunk, still at 2.5 in 2.3 branch....
// @Override
// public Dynamic addFilter(String arg0, String arg1) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public Dynamic addFilter(String arg0, Filter arg1) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public Dynamic addFilter(String arg0,
// Class<? extends Filter> arg1) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public void addListener(String arg0) {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public <T extends EventListener> void addListener(T arg0) {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public void addListener(Class<? extends EventListener> arg0) {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public javax.servlet.ServletRegistration.Dynamic addServlet(
// String arg0, String arg1) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public javax.servlet.ServletRegistration.Dynamic addServlet(
// String arg0, Servlet arg1) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public javax.servlet.ServletRegistration.Dynamic addServlet(
// String arg0, Class<? extends Servlet> arg1) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public <T extends Filter> T createFilter(Class<T> arg0)
// throws ServletException {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public <T extends EventListener> T createListener(
// Class<T> arg0) throws ServletException {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public <T extends Servlet> T createServlet(Class<T> arg0)
// throws ServletException {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public void declareRoles(String... arg0) {
// // TODO Auto-generated method stub
//
// }
@Override
public Object getAttribute(String arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public Enumeration<String> getAttributeNames() {
// TODO Auto-generated method stub
return null;
}
// @Override
// public ClassLoader getClassLoader() {
// // TODO Auto-generated method stub
// return null;
// }
@Override
public ServletContext getContext(String arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getContextPath() {
// TODO Auto-generated method stub
return null;
}
// @Override
// public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public int getEffectiveMajorVersion() {
// // TODO Auto-generated method stub
// return 0;
// }
//
// @Override
// public int getEffectiveMinorVersion() {
// // TODO Auto-generated method stub
// return 0;
// }
//
// @Override
// public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public FilterRegistration getFilterRegistration(String arg0) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public Map<String, ? extends FilterRegistration> getFilterRegistrations() {
// // TODO Auto-generated method stub
// return null;
// }
@Override
public Enumeration<String> getInitParameterNames() {
// TODO Auto-generated method stub
return null;
}
// @Override
// public JspConfigDescriptor getJspConfigDescriptor() {
// // TODO Auto-generated method stub
// return null;
// }
@Override
public int getMajorVersion() {
// TODO Auto-generated method stub
return 0;
}
@Override
public String getMimeType(String arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public int getMinorVersion() {
// TODO Auto-generated method stub
return 0;
}
@Override
public RequestDispatcher getNamedDispatcher(String arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getRealPath(String arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public RequestDispatcher getRequestDispatcher(String arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public URL getResource(String arg0)
throws MalformedURLException {
// TODO Auto-generated method stub
return null;
}
@Override
public InputStream getResourceAsStream(String arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public Set<String> getResourcePaths(String arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getServerInfo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Servlet getServlet(String arg0)
throws ServletException {
// TODO Auto-generated method stub
return null;
}
@Override
public String getServletContextName() {
// TODO Auto-generated method stub
return null;
}
@Override
public Enumeration<String> getServletNames() {
// TODO Auto-generated method stub
return null;
}
// @Override
// public ServletRegistration getServletRegistration(
// String arg0) {
// // TODO Auto-generated method stub
// return null;
// }
// @Override
// public Map<String, ? extends ServletRegistration> getServletRegistrations() {
// // TODO Auto-generated method stub
// return null;
// }
@Override
public Enumeration<Servlet> getServlets() {
// TODO Auto-generated method stub
return null;
}
// @Override
// public SessionCookieConfig getSessionCookieConfig() {
// // TODO Auto-generated method stub
// return null;
// }
@Override
public void log(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void log(Exception arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
public void log(String arg0, Throwable arg1) {
// TODO Auto-generated method stub
}
@Override
public void removeAttribute(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void setAttribute(String arg0, Object arg1) {
// TODO Auto-generated method stub
}
// @Override
// public boolean setInitParameter(String arg0, String arg1) {
// // TODO Auto-generated method stub
// return false;
// }
//
// @Override
// public void setSessionTrackingModes(
// Set<SessionTrackingMode> arg0) {
// // TODO Auto-generated method stub
//
// }
};
}
}