001 package com.mockrunner.tag; 002 003 import java.util.Map; 004 005 import javax.servlet.jsp.tagext.JspTag; 006 import javax.servlet.jsp.tagext.TagSupport; 007 008 import com.mockrunner.base.BasicHTMLOutputTestCase; 009 import com.mockrunner.base.HTMLOutputModule; 010 import com.mockrunner.mock.web.MockPageContext; 011 import com.mockrunner.mock.web.WebMockObjectFactory; 012 013 /** 014 * Delegator for {@link com.mockrunner.tag.TagTestModule}. You can 015 * subclass this adapter or use {@link com.mockrunner.tag.TagTestModule} 016 * directly (so your test case can use another base class). 017 * This basic adapter can be used if you don't need any other modules. It 018 * does not extend {@link com.mockrunner.base.BaseTestCase}. If you want 019 * to use several modules in conjunction, consider subclassing 020 * {@link com.mockrunner.tag.TagTestCaseAdapter}. 021 * <b>This class is generated from the {@link com.mockrunner.tag.TagTestModule} 022 * and should not be edited directly</b>. 023 */ 024 public abstract class BasicTagTestCaseAdapter extends BasicHTMLOutputTestCase 025 { 026 private TagTestModule tagTestModule; 027 private WebMockObjectFactory webMockObjectFactory; 028 029 public BasicTagTestCaseAdapter() 030 { 031 032 } 033 034 public BasicTagTestCaseAdapter(String name) 035 { 036 super(name); 037 } 038 039 protected void tearDown() throws Exception 040 { 041 super.tearDown(); 042 tagTestModule = null; 043 webMockObjectFactory = null; 044 } 045 046 /** 047 * Creates the {@link com.mockrunner.tag.TagTestModule}. If you 048 * overwrite this method, you must call <code>super.setUp()</code>. 049 */ 050 protected void setUp() throws Exception 051 { 052 super.setUp(); 053 tagTestModule = createTagTestModule(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 synchronized(WebMockObjectFactory.class) 100 { 101 if(webMockObjectFactory == null) 102 { 103 webMockObjectFactory = createWebMockObjectFactory(); 104 } 105 } 106 return webMockObjectFactory; 107 } 108 109 /** 110 * Sets the {@link com.mockrunner.mock.web.WebMockObjectFactory}. 111 * @param webMockObjectFactory the {@link com.mockrunner.mock.web.WebMockObjectFactory} 112 */ 113 protected void setWebMockObjectFactory(WebMockObjectFactory webMockObjectFactory) 114 { 115 this.webMockObjectFactory = webMockObjectFactory; 116 } 117 118 /** 119 * Creates a {@link com.mockrunner.tag.TagTestModule} based on the current 120 * {@link com.mockrunner.mock.web.WebMockObjectFactory}. 121 * Same as <code>createTagTestModule(getWebMockObjectFactory())</code>. 122 * @return the created {@link com.mockrunner.tag.TagTestModule} 123 */ 124 protected TagTestModule createTagTestModule() 125 { 126 return new TagTestModule(getWebMockObjectFactory()); 127 } 128 129 /** 130 * Creates a {@link com.mockrunner.tag.TagTestModule} with the specified 131 * {@link com.mockrunner.mock.web.WebMockObjectFactory}. 132 * @return the created {@link com.mockrunner.tag.TagTestModule} 133 */ 134 protected TagTestModule createTagTestModule(WebMockObjectFactory mockFactory) 135 { 136 return new TagTestModule(mockFactory); 137 } 138 139 /** 140 * Returns the {@link com.mockrunner.tag.TagTestModule} as 141 * {@link com.mockrunner.base.HTMLOutputModule}. 142 * @return the {@link com.mockrunner.base.HTMLOutputModule} 143 */ 144 protected HTMLOutputModule getHTMLOutputModule() 145 { 146 return tagTestModule; 147 } 148 149 /** 150 * Gets the {@link com.mockrunner.tag.TagTestModule}. 151 * @return the {@link com.mockrunner.tag.TagTestModule} 152 */ 153 protected TagTestModule getTagTestModule() 154 { 155 return tagTestModule; 156 } 157 158 /** 159 * Sets the {@link com.mockrunner.tag.TagTestModule}. 160 * @param tagTestModule the {@link com.mockrunner.tag.TagTestModule} 161 */ 162 protected void setTagTestModule(TagTestModule tagTestModule) 163 { 164 this.tagTestModule = tagTestModule; 165 } 166 167 /** 168 * Delegates to {@link com.mockrunner.tag.TagTestModule#getMockPageContext} 169 */ 170 protected MockPageContext getMockPageContext() 171 { 172 return tagTestModule.getMockPageContext(); 173 } 174 175 /** 176 * Delegates to {@link com.mockrunner.tag.TagTestModule#clearOutput} 177 */ 178 protected void clearOutput() 179 { 180 tagTestModule.clearOutput(); 181 } 182 183 /** 184 * Delegates to {@link com.mockrunner.tag.TagTestModule#createNestedTag(Class, Map)} 185 */ 186 protected NestedTag createNestedTag(Class tagClass, Map attributes) 187 { 188 return tagTestModule.createNestedTag(tagClass, attributes); 189 } 190 191 /** 192 * Delegates to {@link com.mockrunner.tag.TagTestModule#createNestedTag(Class)} 193 */ 194 protected NestedTag createNestedTag(Class tagClass) 195 { 196 return tagTestModule.createNestedTag(tagClass); 197 } 198 199 /** 200 * Delegates to {@link com.mockrunner.tag.TagTestModule#createWrappedTag(Class)} 201 */ 202 protected JspTag createWrappedTag(Class tagClass) 203 { 204 return tagTestModule.createWrappedTag(tagClass); 205 } 206 207 /** 208 * Delegates to {@link com.mockrunner.tag.TagTestModule#createWrappedTag(Class, Map)} 209 */ 210 protected JspTag createWrappedTag(Class tagClass, Map attributes) 211 { 212 return tagTestModule.createWrappedTag(tagClass, attributes); 213 } 214 215 /** 216 * Delegates to {@link com.mockrunner.tag.TagTestModule#getWrappedTag} 217 */ 218 protected JspTag getWrappedTag() 219 { 220 return tagTestModule.getWrappedTag(); 221 } 222 223 /** 224 * Delegates to {@link com.mockrunner.tag.TagTestModule#setTag(JspTag)} 225 */ 226 protected NestedTag setTag(JspTag tag) 227 { 228 return tagTestModule.setTag(tag); 229 } 230 231 /** 232 * Delegates to {@link com.mockrunner.tag.TagTestModule#setTag(JspTag, Map)} 233 */ 234 protected NestedTag setTag(JspTag tag, Map attributes) 235 { 236 return tagTestModule.setTag(tag, attributes); 237 } 238 239 /** 240 * Delegates to {@link com.mockrunner.tag.TagTestModule#setTag(TagSupport, Map)} 241 */ 242 protected NestedTag setTag(TagSupport tag, Map attributes) 243 { 244 return tagTestModule.setTag(tag, attributes); 245 } 246 247 /** 248 * Delegates to {@link com.mockrunner.tag.TagTestModule#setTag(TagSupport)} 249 */ 250 protected NestedTag setTag(TagSupport tag) 251 { 252 return tagTestModule.setTag(tag); 253 } 254 255 /** 256 * Delegates to {@link com.mockrunner.tag.TagTestModule#setDoRelease(boolean)} 257 */ 258 protected void setDoRelease(boolean doRelease) 259 { 260 tagTestModule.setDoRelease(doRelease); 261 } 262 263 /** 264 * Delegates to {@link com.mockrunner.tag.TagTestModule#setDoReleaseRecursive(boolean)} 265 */ 266 protected void setDoReleaseRecursive(boolean doRelease) 267 { 268 tagTestModule.setDoReleaseRecursive(doRelease); 269 } 270 271 /** 272 * Delegates to {@link com.mockrunner.tag.TagTestModule#populateAttributes} 273 */ 274 protected void populateAttributes() 275 { 276 tagTestModule.populateAttributes(); 277 } 278 279 /** 280 * Delegates to {@link com.mockrunner.tag.TagTestModule#setBody(String)} 281 */ 282 protected void setBody(String body) 283 { 284 tagTestModule.setBody(body); 285 } 286 287 /** 288 * Delegates to {@link com.mockrunner.tag.TagTestModule#getNestedTag} 289 */ 290 protected NestedTag getNestedTag() 291 { 292 return tagTestModule.getNestedTag(); 293 } 294 295 /** 296 * Delegates to {@link com.mockrunner.tag.TagTestModule#doTag} 297 */ 298 protected void doTag() 299 { 300 tagTestModule.doTag(); 301 } 302 303 /** 304 * Delegates to {@link com.mockrunner.tag.TagTestModule#doStartTag} 305 */ 306 protected int doStartTag() 307 { 308 return tagTestModule.doStartTag(); 309 } 310 311 /** 312 * Delegates to {@link com.mockrunner.tag.TagTestModule#doEndTag} 313 */ 314 protected int doEndTag() 315 { 316 return tagTestModule.doEndTag(); 317 } 318 319 /** 320 * Delegates to {@link com.mockrunner.tag.TagTestModule#doInitBody} 321 */ 322 protected void doInitBody() 323 { 324 tagTestModule.doInitBody(); 325 } 326 327 /** 328 * Delegates to {@link com.mockrunner.tag.TagTestModule#doAfterBody} 329 */ 330 protected int doAfterBody() 331 { 332 return tagTestModule.doAfterBody(); 333 } 334 335 /** 336 * Delegates to {@link com.mockrunner.tag.TagTestModule#processTagLifecycle} 337 */ 338 protected int processTagLifecycle() 339 { 340 return tagTestModule.processTagLifecycle(); 341 } 342 343 /** 344 * Delegates to {@link com.mockrunner.tag.TagTestModule#release} 345 */ 346 protected void release() 347 { 348 tagTestModule.release(); 349 } 350 351 /** 352 * Delegates to {@link com.mockrunner.tag.TagTestModule#createTag(Class)} 353 */ 354 protected TagSupport createTag(Class tagClass) 355 { 356 return tagTestModule.createTag(tagClass); 357 } 358 359 /** 360 * Delegates to {@link com.mockrunner.tag.TagTestModule#createTag(Class, Map)} 361 */ 362 protected TagSupport createTag(Class tagClass, Map attributes) 363 { 364 return tagTestModule.createTag(tagClass, attributes); 365 } 366 367 /** 368 * Delegates to {@link com.mockrunner.tag.TagTestModule#getTag} 369 */ 370 protected TagSupport getTag() 371 { 372 return tagTestModule.getTag(); 373 } 374 }