001    package com.mockrunner.mock.web;
002    
003    import javax.servlet.Servlet;
004    import javax.servlet.ServletContext;
005    import javax.servlet.ServletRequest;
006    import javax.servlet.ServletResponse;
007    import javax.servlet.jsp.JspApplicationContext;
008    import javax.servlet.jsp.JspEngineInfo;
009    import javax.servlet.jsp.JspFactory;
010    import javax.servlet.jsp.PageContext;
011    
012    /**
013     * Mock implementation of <code>JspFactory</code>.
014     * This implementation returns <code>null</code>
015     * for {@link #getJspApplicationContext}. For full
016     * support of <code>JspApplicationContext</code> use
017     * {@link JasperJspFactory}.
018     */
019    public class MockJspFactory extends JspFactory
020    {
021        private JspEngineInfo engineInfo;
022        private JspApplicationContext applicationContext;
023        private PageContext pageContext;
024    
025        public MockJspFactory()
026        {
027            engineInfo = new MockJspEngineInfo();
028        }
029        
030        /**
031         * Set the <code>JspEngineInfo</code>. Per default, 
032         * {@link MockJspEngineInfo} is used.
033         * @param engineInfo the <code>JspEngineInfo</code>
034         */
035        public void setEngineInfo(JspEngineInfo engineInfo)
036        {
037            this.engineInfo = engineInfo;
038        }
039    
040        /**
041         * Set the <code>JspApplicationContext</code>.
042         * @param applicationContext the <code>JspApplicationContext</code>
043         */
044        public void setJspApplicationContext(JspApplicationContext applicationContext)
045        {
046            this.applicationContext = applicationContext;
047        }
048    
049        /**
050         * Set the <code>PageContext</code>.
051         * @param pageContext the <code>PageContext</code>
052         */
053        public void setPageContext(PageContext pageContext)
054        {
055            this.pageContext = pageContext;
056        }
057    
058        /**
059         * Returns the <code>PageContext</code>.
060         * @return the <code>PageContext</code>
061         */
062        public PageContext getPageContext()
063        {
064            return pageContext;
065        }
066    
067        public JspEngineInfo getEngineInfo()
068        {
069            return engineInfo;
070        }
071    
072        public JspApplicationContext getJspApplicationContext(ServletContext context)
073        {
074            return applicationContext;
075        }
076    
077        public PageContext getPageContext(Servlet servlet, ServletRequest request, ServletResponse response, String errorPageURL, boolean needsSession, int buffer, boolean autoflush)
078        {
079            return pageContext;
080        }
081    
082        public void releasePageContext(PageContext pageContext)
083        {
084    
085        }
086    }