[ 
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

Reply via email to