MockServletContext needs ServletContextListener add/remove methods
-------------------------------------------------------------------
Key: STS-494
URL: http://www.stripesframework.org/jira/browse/STS-494
Project: Stripes
Issue Type: New Feature
Components: Context Management
Affects Versions: Release 1.5
Reporter: David G. Friedman
Assignee: Tim Fennell
I have modified my copy of the Trunk to allow for adding and removing
ServletContextListeners to be Mock tested. I have included my code for your
consideration. To allow for easier testing I pass in new()d class instances.
This also avoids possible typing errors by passing in Strings as in a standard
web.xml file This also allows for simpler testing (see my example test class
below).
>From MockServletContext.java
private List<ServletContextListener> listeners = new
ArrayList<ServletContextListener>();
public void removeListeners() {
ServletContextEvent e = new ServletContextEvent(this);
if (listeners == null || listeners.size() == 0) {
return;
}
for (ServletContextListener l : listeners) {
l.contextDestroyed(e);
}
listeners.clear();
}
public void addListener(ServletContextListener listener) {
ServletContextEvent e = new ServletContextEvent(this);
listener.contextInitialized(e);
listeners.add(listener);
}
public void addListeners(List<ServletContextListener> l) {
for (ServletContextListener s : l) {
addListener(s);
}
}
>From my test class:
public class ListenerT {
private MockServletContext context = MockTestFixture.getServletContext();
@Test
public void addListeners() {
List<ServletContextListener> listeners = new
ArrayList<ServletContextListener>();
listeners.add(new ServletContextListener() {
public void contextDestroyed(ServletContextEvent event) {
event.getServletContext().removeAttribute("ListenerOne");
}
public void contextInitialized(ServletContextEvent event) {
event.getServletContext().setAttribute("ListenerOne",
"ListenerOneMessage");
}
});
listeners.add(new ServletContextListener() {
public void contextDestroyed(ServletContextEvent event) {
event.getServletContext().removeAttribute("ListenerOne");
}
public void contextInitialized(ServletContextEvent event) {
event.getServletContext().setAttribute("ListenerTwo",
"ListenerTwoMessage");
}
});
context.addListeners(listeners);
assertEquals("ListenerOneMessage", (String)
context.getAttribute("ListenerOne"));
assertEquals("ListenerTwoMessage", (String)
context.getAttribute("ListenerTwo"));
}
@Test(dependsOnMethods = "addListeners")
public void removeListeners() {
context.removeListeners();
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://www.stripesframework.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development