[ 
http://www.stripesframework.org/jira/browse/STS-494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Remi VANKEISBELCK resolved STS-494.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: Release 1.5.8

fixed in r1521. Listeners + close().

> 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: Remi VANKEISBELCK
>             Fix For: Release 1.5.8, Release 1.6
>
>         Attachments: addedListenerSupport.diff
>
>
> 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.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, 
is your hub for all things parallel software development, from weekly thought 
leadership blogs to news, videos, case studies, tutorials, tech docs, 
whitepapers, evaluation guides, and opinion stories. Check out the most 
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to