001    package com.mockrunner.mock.web;
002    
003    import java.util.Enumeration;
004    import java.util.HashMap;
005    import java.util.Map;
006    import java.util.Vector;
007    
008    import javax.servlet.FilterConfig;
009    import javax.servlet.ServletContext;
010    
011    /**
012     * Mock implementation of <code>FilterConfig</code>.
013     */
014    public class MockFilterConfig implements FilterConfig
015    {
016        private ServletContext context;
017        private Map initParameters;
018        private String name;
019        
020        public MockFilterConfig()
021        {
022            initParameters = new HashMap();
023        }
024    
025        /**
026         * Sets the <code>ServletContext</code>.
027         * @param context the <code>ServletContext</code>
028         */
029        public synchronized void setupServletContext(ServletContext context)
030        {
031            this.context = context;
032        }
033    
034        public synchronized String getFilterName()
035        {
036            return name;
037        }
038        
039        public synchronized void setFilterName(String name)
040        {
041            this.name = name;
042        }
043    
044        public synchronized ServletContext getServletContext()
045        {
046            return context;
047        }
048        
049        public synchronized void clearInitParameters()
050        {
051            initParameters.clear();
052        }
053    
054        /**
055         * Clears the init parameters.
056         */
057        public synchronized String getInitParameter(String name)
058        {
059            return (String)initParameters.get(name);
060        }
061        
062        /**
063         * Sets an init parameter.
064         * @param name the name
065         * @param value the value
066         */
067        public synchronized void setInitParameter(String name, String value) 
068        {
069            initParameters.put(name, value);
070        }
071        
072        /**
073         * Sets several init parameters.
074         * @param parameters the parameter map
075         */
076        public synchronized void setInitParameters(Map parameters) 
077        {
078            initParameters.putAll(parameters);
079        }
080    
081        public synchronized Enumeration getInitParameterNames()
082        {
083            return new Vector(initParameters.keySet()).elements();
084        }
085    }