[
http://www.stripesframework.org/jira/browse/STS-494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ben Gunter updated STS-494:
---------------------------
Fix Version/s: (was: Release 1.5.1)
Release 1.6
Assignee: (was: Tim Fennell)
> 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
> Fix For: Release 1.6
>
>
> 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
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development