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 abstract 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 servletTestModule = createServletTestModule(getWebMockObjectFactory());
053 }
054
055 /**
056 * Creates a {@link com.mockrunner.mock.web.WebMockObjectFactory}.
057 * @return the created {@link com.mockrunner.mock.web.WebMockObjectFactory}
058 */
059 protected WebMockObjectFactory createWebMockObjectFactory()
060 {
061 return new WebMockObjectFactory();
062 }
063
064 /**
065 * Same as <code>createWebMockObjectFactory(otherFactory, true)</code>.
066 */
067 protected WebMockObjectFactory createWebMockObjectFactory(WebMockObjectFactory otherFactory)
068 {
069 return new WebMockObjectFactory(otherFactory);
070 }
071
072 /**
073 * Creates a {@link com.mockrunner.mock.web.WebMockObjectFactory} based on another
074 * {@link com.mockrunner.mock.web.WebMockObjectFactory}.
075 * The created {@link com.mockrunner.mock.web.WebMockObjectFactory} will have its own
076 * request and response objects. If you set <i>createNewSession</i>
077 * to <code>true</code> it will also have its own session object.
078 * The two factories will share one <code>ServletContext</code>.
079 * Especially important for multithreading tests.
080 * If you set <i>createNewSession</i> to false, the two factories
081 * will share one session. This setting simulates multiple requests
082 * from the same client.
083 * @param otherFactory the other factory
084 * @param createNewSession create a new session for the new factory
085 * @return the created {@link com.mockrunner.mock.web.WebMockObjectFactory}
086 */
087 protected WebMockObjectFactory createWebMockObjectFactory(WebMockObjectFactory otherFactory, boolean createNewSession)
088 {
089 return new WebMockObjectFactory(otherFactory, createNewSession);
090 }
091
092 /**
093 * Gets the {@link com.mockrunner.mock.web.WebMockObjectFactory}.
094 * @return the {@link com.mockrunner.mock.web.WebMockObjectFactory}
095 */
096 protected WebMockObjectFactory getWebMockObjectFactory()
097 {
098 synchronized(WebMockObjectFactory.class)
099 {
100 if(webMockObjectFactory == null)
101 {
102 webMockObjectFactory = createWebMockObjectFactory();
103 }
104 }
105 return webMockObjectFactory;
106 }
107
108 /**
109 * Sets the {@link com.mockrunner.mock.web.WebMockObjectFactory}.
110 * @param webMockObjectFactory the {@link com.mockrunner.mock.web.WebMockObjectFactory}
111 */
112 protected void setWebMockObjectFactory(WebMockObjectFactory webMockObjectFactory)
113 {
114 this.webMockObjectFactory = webMockObjectFactory;
115 }
116
117 /**
118 * Creates a {@link com.mockrunner.servlet.ServletTestModule} based on the current
119 * {@link com.mockrunner.mock.web.WebMockObjectFactory}.
120 * Same as <code>createServletTestModule(getWebMockObjectFactory())</code>.
121 * @return the created {@link com.mockrunner.servlet.ServletTestModule}
122 */
123 protected ServletTestModule createServletTestModule()
124 {
125 return new ServletTestModule(getWebMockObjectFactory());
126 }
127
128 /**
129 * Creates a {@link com.mockrunner.servlet.ServletTestModule} with the specified
130 * {@link com.mockrunner.mock.web.WebMockObjectFactory}.
131 * @return the created {@link com.mockrunner.servlet.ServletTestModule}
132 */
133 protected ServletTestModule createServletTestModule(WebMockObjectFactory mockFactory)
134 {
135 return new ServletTestModule(mockFactory);
136 }
137
138 /**
139 * Returns the {@link com.mockrunner.servlet.ServletTestModule} as
140 * {@link com.mockrunner.base.HTMLOutputModule}.
141 * @return the {@link com.mockrunner.base.HTMLOutputModule}
142 */
143 protected HTMLOutputModule getHTMLOutputModule()
144 {
145 return servletTestModule;
146 }
147
148 /**
149 * Gets the {@link com.mockrunner.servlet.ServletTestModule}.
150 * @return the {@link com.mockrunner.servlet.ServletTestModule}
151 */
152 protected ServletTestModule getServletTestModule()
153 {
154 return servletTestModule;
155 }
156
157 /**
158 * Sets the {@link com.mockrunner.servlet.ServletTestModule}.
159 * @param servletTestModule the {@link com.mockrunner.servlet.ServletTestModule}
160 */
161 protected void setServletTestModule(ServletTestModule servletTestModule)
162 {
163 this.servletTestModule = servletTestModule;
164 }
165
166 /**
167 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#setServlet(HttpServlet)}
168 */
169 protected void setServlet(HttpServlet servlet)
170 {
171 servletTestModule.setServlet(servlet);
172 }
173
174 /**
175 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#setServlet(HttpServlet, boolean)}
176 */
177 protected void setServlet(HttpServlet servlet, boolean doInit)
178 {
179 servletTestModule.setServlet(servlet, doInit);
180 }
181
182 /**
183 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doGet}
184 */
185 protected void doGet()
186 {
187 servletTestModule.doGet();
188 }
189
190 /**
191 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doPost}
192 */
193 protected void doPost()
194 {
195 servletTestModule.doPost();
196 }
197
198 /**
199 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doHead}
200 */
201 protected void doHead()
202 {
203 servletTestModule.doHead();
204 }
205
206 /**
207 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doPut}
208 */
209 protected void doPut()
210 {
211 servletTestModule.doPut();
212 }
213
214 /**
215 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doDelete}
216 */
217 protected void doDelete()
218 {
219 servletTestModule.doDelete();
220 }
221
222 /**
223 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doOptions}
224 */
225 protected void doOptions()
226 {
227 servletTestModule.doOptions();
228 }
229
230 /**
231 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doTrace}
232 */
233 protected void doTrace()
234 {
235 servletTestModule.doTrace();
236 }
237
238 /**
239 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#getServlet}
240 */
241 protected HttpServlet getServlet()
242 {
243 return servletTestModule.getServlet();
244 }
245
246 /**
247 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#createServlet(Class)}
248 */
249 protected HttpServlet createServlet(Class servletClass)
250 {
251 return servletTestModule.createServlet(servletClass);
252 }
253
254 /**
255 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#createFilter(Class)}
256 */
257 protected Filter createFilter(Class filterClass)
258 {
259 return servletTestModule.createFilter(filterClass);
260 }
261
262 /**
263 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#addFilter(Filter)}
264 */
265 protected void addFilter(Filter filter)
266 {
267 servletTestModule.addFilter(filter);
268 }
269
270 /**
271 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#addFilter(Filter, boolean)}
272 */
273 protected void addFilter(Filter filter, boolean doInit)
274 {
275 servletTestModule.addFilter(filter, doInit);
276 }
277
278 /**
279 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#releaseFilters}
280 */
281 protected void releaseFilters()
282 {
283 servletTestModule.releaseFilters();
284 }
285
286 /**
287 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#setDoChain(boolean)}
288 */
289 protected void setDoChain(boolean doChain)
290 {
291 servletTestModule.setDoChain(doChain);
292 }
293
294 /**
295 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#doFilter}
296 */
297 protected void doFilter()
298 {
299 servletTestModule.doFilter();
300 }
301
302 /**
303 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#getFilteredRequest}
304 */
305 protected ServletRequest getFilteredRequest()
306 {
307 return servletTestModule.getFilteredRequest();
308 }
309
310 /**
311 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#getFilteredResponse}
312 */
313 protected ServletResponse getFilteredResponse()
314 {
315 return servletTestModule.getFilteredResponse();
316 }
317
318 /**
319 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#clearOutput}
320 */
321 protected void clearOutput()
322 {
323 servletTestModule.clearOutput();
324 }
325
326 /**
327 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#init}
328 */
329 protected void init()
330 {
331 servletTestModule.init();
332 }
333
334 /**
335 * Delegates to {@link com.mockrunner.servlet.ServletTestModule#service}
336 */
337 protected void service()
338 {
339 servletTestModule.service();
340 }
341 }