KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > appfuse > webapp > action > BaseActionTestCase


1 package org.appfuse.webapp.action;
2
3 import java.util.HashMap JavaDoc;
4
5 import junit.framework.TestCase;
6
7 import org.apache.commons.logging.Log;
8 import org.apache.commons.logging.LogFactory;
9 import org.appfuse.Constants;
10 import org.springframework.mail.javamail.JavaMailSenderImpl;
11 import org.springframework.mock.web.MockHttpServletRequest;
12 import org.springframework.mock.web.MockServletContext;
13 import org.springframework.util.ClassUtils;
14 import org.springframework.web.context.support.XmlWebApplicationContext;
15
16 import com.opensymphony.webwork.ServletActionContext;
17 import com.opensymphony.xwork.ActionContext;
18 import com.opensymphony.xwork.util.LocalizedTextUtil;
19
20 public abstract class BaseActionTestCase extends TestCase {
21     protected transient final Log log = LogFactory.getLog(getClass());
22     protected static XmlWebApplicationContext ctx;
23     protected MockHttpServletRequest request = new MockHttpServletRequest();
24
25     // This static block ensures that Spring's BeanFactory is only loaded
26
// once for all tests
27
static {
28         String JavaDoc pkg = ClassUtils.classPackageAsResourcePath(Constants.class);
29         String JavaDoc[] paths = {
30                 "classpath*:/" + pkg + "/dao/applicationContext-*.xml",
31                 "classpath*:META-INF/applicationContext-*.xml",
32                 "/WEB-INF/action-servlet.xml"
33             };
34         
35         ctx = new XmlWebApplicationContext();
36         ctx.setConfigLocations(paths);
37         ctx.setServletContext(new MockServletContext(""));
38         ctx.refresh();
39     }
40
41     protected void setUp() throws Exception JavaDoc {
42         LocalizedTextUtil.addDefaultResourceBundle(Constants.BUNDLE_KEY);
43         ActionContext.getContext().setSession(new HashMap JavaDoc());
44         
45         // change the port on the mailSender so it doesn't conflict with an
46
// existing SMTP server on localhost
47
JavaMailSenderImpl mailSender = (JavaMailSenderImpl) ctx.getBean("mailSender");
48         mailSender.setPort(2525);
49         mailSender.setHost("localhost");
50
51         // populate the request so getRequest().getSession() doesn't fail in BaseAction.java
52
ServletActionContext.setRequest(request);
53     }
54     
55     protected void tearDown() throws Exception JavaDoc {
56         ActionContext.getContext().setSession(null);
57     }
58 }
59
Popular Tags