001    package com.mockrunner.servlet;
002    
003    import javax.servlet.Filter;
004    import javax.servlet.ServletRequest;
005    import javax.servlet.ServletResponse;
006    import javax.servlet.http.HttpServlet;
007    
008    import com.mockrunner.base.BasicHTMLOutputTestCase;
009    import com.mockrunner.base.HTMLOutputModule;
010    import com.mockrunner.mock.web.WebMockObjectFactory;
011    
012    /**
013     * Delegator for {@link com.mockrunner.servlet.ServletTestModule}. You can
014     * subclass this adapter or use {@link com.mockrunner.servlet.ServletTestModule}
015     * directly (so your test case can use another base class).
016     * This basic adapter can be used if you don't need any other modules. It
017     * does not extend {@link com.mockrunner.base.BaseTestCase}. If you want
018     * to use several modules in conjunction, consider subclassing
019     * {@link com.mockrunner.servlet.ServletTestCaseAdapter}.
020     * <b>This class is generated from the {@link com.mockrunner.servlet.ServletTestModule}
021     * and should not be edited directly</b>.
022     */
023    public class BasicServletTestCaseAdapter extends BasicHTMLOutputTestCase
024    {
025        private ServletTestModule servletTestModule;
026        private WebMockObjectFactory webMockObjectFactory;
027    
028        public BasicServletTestCaseAdapter()
029        {
030    
031        }
032    
033        public BasicServletTestCaseAdapter(String name)
034        {
035            super(name);
036        }
037    
038        protected void tearDown() throws Exception
039        {
040            super.tearDown();
041            servletTestModule = null;
042            webMockObjectFactory = null;
043        }
044    
045        /**
046         * Creates the {@link com.mockrunner.servlet.ServletTestModule}. If you
047         * overwrite this method, you must call <code>super.setUp()</code>.
048         */
049        protected void setUp() throws Exception
050        {
051            super.setUp();
052            webMockObjectFactory = createWebMockObjectFactory();
053            servletTestModule = createServletTestModule(getWebMockObjectFactory());
054        }
055    
056        /**
057         * Creates a {@link com.mockrunner.mock.web.WebMockObjectFactory}.
058         * @return the created {@link com.mockrunner.mock.web.WebMockObjectFactory}
059         */
060        protected WebMockObjectFactory createWebMockObjectFactory()
061        {
062            return new WebMockObjectFactory();
063        }
064    
065        /**
066         * Same as <code>createWebMockObjectFactory(otherFactory, true)</code>.
067         */
068        protected WebMockObjectFactory createWebMockObjectFactory(WebMockObjectFactory otherFactory)
069        {
070            return new WebMockObjectFactory(otherFactory);
071        }
072    
073        /**
074         * Creates a {@link com.mockrunner.mock.web.WebMockObjectFactory} based on another 
075         * {@link com.mockrunner.mock.web.WebMockObjectFactory}.
076         * The created {@link com.mockrunner.mock.web.WebMockObjectFactory} will have its own
077         * request and response objects. If you set <i>createNewSession</i>
078         * to <code>true</code> it will also have its own session object.
079         * The two factories will share one <code>ServletContext</code>.
080         * Especially important for multithreading tests.
081         * If you set <i>createNewSession</i> to false, the two factories
082         * will share one session. This setting simulates multiple requests
083         * from the same client.
084         * @param otherFactory the other factory
085         * @param createNewSession create a new session for the new factory
086         * @return the created {@link com.mockrunner.mock.web.WebMockObjectFactory}
087         */
088        protected WebMockObjectFactory createWebMockObjectFactory(WebMockObjectFactory otherFactory, boolean createNewSession)
089        {
090            return new WebMockObjectFactory(otherFactory, createNewSession);
091        }
092    
093        /**
094         * Gets the {@link com.mockrunner.mock.web.WebMockObjectFactory}.
095         * @return the {@link com.mockrunner.mock.web.WebMockObjectFactory}
096         */
097        protected WebMockObjectFactory getWebMockObjectFactory()
098        {
099            return webMockObjectFactory;
100        }
101    
102        /**
103         * Sets the {@link com.mockrunner.mock.web.WebMockObjectFactory}.
104         * @param webMockObjectFactory the {@link com.mockrunner.mock.web.WebMockObjectFactory}
105         */
106        protected void setWebMockObjectFactory(WebMockObjectFactory webMockObjectFactory)
107        {
108            this.webMockObjectFactory = webMockObjectFactory;
109        }
110    
111        /**
112         * Creates a {@link com.mockrunner.servlet.ServletTestModule} based on the current
113         * {@link com.mockrunner.mock.web.WebMockObjectFactory}.
114         * Same as <code>createServletTestModule(getWebMockObjectFactory())</code>.
115         * @return the created {@link com.mockrunner.servlet.ServletTestModule}
116         */
117        protected ServletTestModule createServletTestModule()
118        {
119            return new ServletTestModule(getWebMockObjectFactory());
120        }
121    
122        /**
123         * Creates a {@link com.mockrunner.servlet.ServletTestModule} with the specified
124         * {@link com.mockrunner.mock.web.WebMockObjectFactory}.
125         * @return the created {@link com.mockrunner.servlet.ServletTestModule}
126         */
127        protected ServletTestModule createServletTestModule(WebMockObjectFactory mockFactory)
128        {
129            return new ServletTestModule(mockFactory);
130        }
131    
132        /**
133         * Returns the {@link com.mockrunner.servlet.ServletTestModule} as
134         * {@link com.mockrunner.base.HTMLOutputModule}.
135         * @return the {@link com.mockrunner.base.HTMLOutputModule}
136         */
137        protected HTMLOutputModule getHTMLOutputModule()
138        {
139            return servletTestModule;
140        }
141    
142        /**
143         * Gets the {@link com.mockrunner.servlet.ServletTestModule}.
144         * @return the {@link com.mockrunner.servlet.ServletTestModule}
145         */
146        protected ServletTestModule getServletTestModule()
147        {
148            return servletTestModule;
149        }
150    
151        /**
152         * Sets the {@link com.mockrunner.servlet.ServletTestModule}.
153         * @param servletTestModule the {@link com.mockrunner.servlet.ServletTestModule}
154         */
155        protected void setServletTestModule(ServletTestModule servletTestModule)
156        {
157            this.servletTestModule = servletTestModule;
158        }
159    
160        /**
161         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#init}
162         */
163        protected void init()
164        {
165            servletTestModule.init();
166        }
167    
168        /**
169         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#setServlet(HttpServlet, boolean)}
170         */
171        protected void setServlet(HttpServlet servlet, boolean doInit)
172        {
173            servletTestModule.setServlet(servlet, doInit);
174        }
175    
176        /**
177         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#setServlet(HttpServlet)}
178         */
179        protected void setServlet(HttpServlet servlet)
180        {
181            servletTestModule.setServlet(servlet);
182        }
183    
184        /**
185         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doGet}
186         */
187        protected void doGet()
188        {
189            servletTestModule.doGet();
190        }
191    
192        /**
193         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doPost}
194         */
195        protected void doPost()
196        {
197            servletTestModule.doPost();
198        }
199    
200        /**
201         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doHead}
202         */
203        protected void doHead()
204        {
205            servletTestModule.doHead();
206        }
207    
208        /**
209         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doPut}
210         */
211        protected void doPut()
212        {
213            servletTestModule.doPut();
214        }
215    
216        /**
217         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doDelete}
218         */
219        protected void doDelete()
220        {
221            servletTestModule.doDelete();
222        }
223    
224        /**
225         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doOptions}
226         */
227        protected void doOptions()
228        {
229            servletTestModule.doOptions();
230        }
231    
232        /**
233         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doTrace}
234         */
235        protected void doTrace()
236        {
237            servletTestModule.doTrace();
238        }
239    
240        /**
241         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#service}
242         */
243        protected void service()
244        {
245            servletTestModule.service();
246        }
247    
248        /**
249         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#getServlet}
250         */
251        protected HttpServlet getServlet()
252        {
253            return servletTestModule.getServlet();
254        }
255    
256        /**
257         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#createServlet(Class)}
258         */
259        protected HttpServlet createServlet(Class servletClass)
260        {
261            return servletTestModule.createServlet(servletClass);
262        }
263    
264        /**
265         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#createFilter(Class)}
266         */
267        protected Filter createFilter(Class filterClass)
268        {
269            return servletTestModule.createFilter(filterClass);
270        }
271    
272        /**
273         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#addFilter(Filter)}
274         */
275        protected void addFilter(Filter filter)
276        {
277            servletTestModule.addFilter(filter);
278        }
279    
280        /**
281         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#addFilter(Filter, boolean)}
282         */
283        protected void addFilter(Filter filter, boolean doInit)
284        {
285            servletTestModule.addFilter(filter, doInit);
286        }
287    
288        /**
289         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#releaseFilters}
290         */
291        protected void releaseFilters()
292        {
293            servletTestModule.releaseFilters();
294        }
295    
296        /**
297         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#setDoChain(boolean)}
298         */
299        protected void setDoChain(boolean doChain)
300        {
301            servletTestModule.setDoChain(doChain);
302        }
303    
304        /**
305         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doFilter}
306         */
307        protected void doFilter()
308        {
309            servletTestModule.doFilter();
310        }
311    
312        /**
313         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#getFilteredRequest}
314         */
315        protected ServletRequest getFilteredRequest()
316        {
317            return servletTestModule.getFilteredRequest();
318        }
319    
320        /**
321         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#getFilteredResponse}
322         */
323        protected ServletResponse getFilteredResponse()
324        {
325            return servletTestModule.getFilteredResponse();
326        }
327    
328        /**
329         * Delegates to {@link com.mockrunner.servlet.ServletTestModule#clearOutput}
330         */
331        protected void clearOutput()
332        {
333            servletTestModule.clearOutput();
334        }
335    }