001    package com.mockrunner.base;
002    
003    import com.mockrunner.mock.web.WebMockObjectFactory;
004    
005    /**
006     * This class provides some convenience methods for
007     * request and session attribute handling
008     */
009    public abstract class WebTestModule
010    {
011        private WebMockObjectFactory mockFactory;
012    
013        public WebTestModule(WebMockObjectFactory mockFactory)
014        {
015            this.mockFactory = mockFactory;
016        }
017    
018        /**
019         * Adds an empty request parameter. Same as
020         * <code>addRequestParameter(key, "")</code>.
021         * @param key the request key
022         */
023        public void addRequestParameter(String key)
024        {
025            addRequestParameter(key, "");
026        }
027    
028        /**
029         * Adds a request parameter.
030         * @param key the request key
031         * @param value the request value
032         */
033        public void addRequestParameter(String key, String value)
034        {
035            mockFactory.getMockRequest().setupAddParameter(key, value);
036        }
037    
038        /**
039         * Adds several request parameters. 
040         * @param key the
041         * @param values the request values 
042         */
043        public void addRequestParameter(String key, String[] values)
044        {
045            mockFactory.getMockRequest().setupAddParameter(key, values);
046        }
047    
048        /**
049         * Returns the request parameter for the specified key
050         * @param key the request key
051         * @return the parameter
052         */
053        public String getRequestParameter(String key)
054        {
055            return mockFactory.getWrappedRequest().getParameter(key);
056        }
057    
058        /**
059         * Returns the request attribute for the specified key
060         * @param key the request key
061         * @return the attribute
062         */
063        public Object getRequestAttribute(String key)
064        {
065            return mockFactory.getWrappedRequest().getAttribute(key);
066        }
067    
068        /**
069         * Sets the request attribute for the specified key
070         * @param key the request key
071         * @param value the value
072         */
073        public void setRequestAttribute(String key, Object value)
074        {
075            mockFactory.getWrappedRequest().setAttribute(key, value);
076        }
077    
078        /**
079         * Returns the session attribute for the specified key
080         * @param key the session key
081         * @return the attribute
082         */
083        public Object getSessionAttribute(String key)
084        {
085            return mockFactory.getMockSession().getAttribute(key);
086        }
087    
088        /**
089         * Sets the session attribute for the specified key
090         * @param key the session key
091         * @param value the value
092         */
093        public void setSessionAttribute(String key, Object value)
094        {
095            mockFactory.getMockSession().setAttribute(key, value);
096        }
097    }