KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > tests > jfun > yan > web > YanLoaderTestCase


1 package tests.jfun.yan.web;
2
3
4 import javax.servlet.ServletContext JavaDoc;
5 import javax.servlet.ServletContextEvent JavaDoc;
6 import javax.servlet.ServletContextListener JavaDoc;
7 import javax.servlet.http.HttpServlet JavaDoc;
8
9 import tests.jfun.models.BankAccount;
10
11
12 import jfun.yan.Container;
13 import jfun.yan.web.YanLoader;
14 import jfun.yan.web.YanLoaderListener;
15 import jfun.yan.web.YanLoaderServlet;
16
17 import com.mockobjects.servlet.MockServletConfig;
18 import com.mockobjects.servlet.MockServletContext;
19
20
21 import junit.framework.TestCase;
22
23 public class YanLoaderTestCase extends TestCase {
24   public void testContextLoaderServletWithDefaultContext() throws Exception JavaDoc {
25     MockServletContext sc = new MyServletContext(".");
26     sc.setInitParameter(YanLoader.CONFIG_FILE_PARAM,
27         "tests/jfun/yan/web/yan.xml");
28     HttpServlet JavaDoc servlet = new YanLoaderServlet();
29     MockServletConfig config = new MockServletConfig();
30     config.setServletContext(sc);
31     servlet.init(config);
32     final BankAccount acct = verifyBean(sc, "account");
33     servlet.destroy();
34     assertTrue("Destroyed", acct.isDestroyed());
35   }
36   public void testYanLoaderListenerWithDefaultContext() throws Exception JavaDoc {
37
38     MockServletContext sc = new MyServletContext("test/yan/web");
39     verifyListener(sc, "BankAccount");
40   }
41   public void testYanLoaderListenerWithCustomContext()throws Exception JavaDoc{
42     MockServletContext sc = new MyServletContext("test/yan/web");
43     sc.setInitParameter(YanLoader.CONFIG_FILE_PARAM, "/WEB-INF/yancontainer.xml");
44     sc.setInitParameter(YanLoader.USE_SPRING, "true");
45     verifyListener(sc, "ba");
46   }
47   private void verifyListener(ServletContext JavaDoc sc, String JavaDoc beanname){
48     ServletContextListener JavaDoc listener = new YanLoaderListener();
49     ServletContextEvent JavaDoc event = new ServletContextEvent JavaDoc(sc);
50     listener.contextInitialized(event);
51     final BankAccount acct = verifyBean(sc, beanname);
52     listener.contextDestroyed(event);
53     assertTrue(acct.isDestroyed());
54   }
55   private BankAccount verifyBean(ServletContext JavaDoc sc, String JavaDoc beanname){
56     Container yan = (Container)
57     sc.getAttribute(YanLoader.CONTAINER_ROOT);
58     assertNotNull(yan);
59     assertNotNull(sc.getAttribute(YanLoader.LIFECYCLE_MANAGER_ROOT));
60     final WebBankAccount acct = toWebBankAccount(yan.getInstance(beanname));
61     assertEquals(1000, acct.getBalance());
62     assertEquals("shark", acct.getId());
63     //assertEquals(beanname, acct.getBeanName());
64
assertFalse(acct.isDestroyed());
65     assertSame(sc, acct.getServletContext());
66     return acct;
67   }
68   private WebBankAccount toWebBankAccount(Object JavaDoc obj){
69     try{
70       return (WebBankAccount)obj;
71     }
72     catch(ClassCastException JavaDoc e){
73       throw new IllegalStateException JavaDoc("ClassCastException - classloader0="
74           +WebBankAccount.class.getClassLoader()
75           +", classloader1="+obj.getClass().getClassLoader());
76     }
77   }
78 }
79
Popular Tags