KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > inversoft > verge > mvc > controller > test > DefaultControllerParserTest


1 /*
2  * Copyright (c) 2003, Inversoft
3  *
4  * This software is distribuable under the GNU Lesser General Public License.
5  * For more information visit gnu.org.
6  */

7 package com.inversoft.verge.mvc.controller.test;
8
9
10 import com.inversoft.junit.Request;
11 import com.inversoft.junit.URL;
12 import com.inversoft.junit.internal.http.MockHttpServletResponse;
13 import com.inversoft.verge.mvc.MVCException;
14 import com.inversoft.verge.mvc.MVCRegistry;
15 import com.inversoft.verge.mvc.MVCRequest;
16 import com.inversoft.verge.mvc.controller.DefaultControllerParser;
17 import com.inversoft.verge.mvc.junit.VergeMVCTestCase;
18
19
20 /**
21  * <p>
22  * This class contains the test for the default controller parser
23  * </p>
24  *
25  * @author Brian Pontarelli
26  * @since 2.0
27  * @version 2.0
28  */

29 public class DefaultControllerParserTest extends VergeMVCTestCase {
30
31     /**
32      * Constructor for DefaultControllerHandlerTest.
33      * @param name
34      */

35     public DefaultControllerParserTest(String JavaDoc name) {
36         super(name);
37         setLocal(true);
38     }
39
40     /** Sets up a simple call to the new handler */
41     public void beginSimpleCall(Request request) {
42         URL url = createMVCURL(null, "default", "/a.action");
43         request.setURL(url);
44     }
45
46     /**
47      * Test a simple call to a new controller handler
48      */

49     public void testSimpleCall() {
50         TestControllerHandler handler = new TestControllerHandler();
51         MVCRegistry.register("default", handler);
52
53         // Test with a single parameter
54
handler.called = false;
55         try {
56             MVCRequest mvcRequest = new MVCRequest(request, response);
57             DefaultControllerParser parser = new DefaultControllerParser();
58             parser.preExecute(mvcRequest);
59             parser.execute(mvcRequest);
60             assertTrue("Should have called handler", handler.called);
61         } catch (MVCException e) {
62             fail(e.toString());
63         }
64     }
65
66     /**
67      * Tests that the mvc system fails if there is no path info
68      */

69     public void beginNoPathInfo(Request request) {
70         URL url = new URL(null, null, null, null, null, "/");
71         request.setURL(url);
72     }
73
74     /**
75      * Tests that the mvc system fails if there is no path info
76      */

77     public void testNoPathInfo() {
78
79         // Test without parameters
80
DefaultControllerParser parser = new DefaultControllerParser();
81         MVCRequest mvcRequest = new MVCRequest(request, response);
82         try {
83             parser.preExecute(mvcRequest);
84             parser.execute(mvcRequest);
85             fail("Should have failed");
86         } catch (MVCException e) {
87             // Expected
88
}
89     }
90
91     /**
92      * Sets up a simple call to the new handler
93      */

94     public void beginOutOfOrder(Request request) {
95         URL url = createMVCURL(null, "default", "/a.action");
96         request.setURL(url);
97     }
98
99     /**
100      * Tests that the parser handles out of order calls to methods
101      */

102     public void testOutOfOrder() {
103
104         TestControllerHandler handler = new TestControllerHandler();
105         MVCRegistry.register("default", handler);
106
107         // Test without parameters
108
DefaultControllerParser parser = new DefaultControllerParser();
109         MVCRequest mvcRequest = new MVCRequest(request, response);
110         try {
111             parser.execute(mvcRequest);
112         } catch (MVCException e) {
113             fail(e.toString());
114         }
115     }
116
117     /**
118      * Sets up a simple call to the new handler
119      */

120     public void beginResultForward(Request request) {
121         URL url = createMVCURL(null, "default", "/a.action");
122         request.setURL(url);
123     }
124
125     /**
126      * Tests that the parser handles result objects that are forwards
127      */

128     public void testResultForward() {
129
130         TestControllerHandler handler = new TestControllerHandler();
131         MVCRegistry.register("default", handler);
132
133         // Test without parameters
134
DefaultControllerParser parser = new DefaultControllerParser();
135         MVCRequest mvcRequest = new MVCRequest(request, response);
136         try {
137             getRequest().setParameter("resultForward", "true");
138             parser.preExecute(mvcRequest);
139             parser.execute(mvcRequest);
140             assertEquals("/url", getRequest().getRequestDispatcher().getURL());
141             assertTrue(getRequest().getRequestDispatcher().isForwarded());
142         } catch (MVCException e) {
143             fail(e.toString());
144         }
145     }
146
147     /**
148      * Sets up a simple call to the new handler
149      */

150     public void beginResultRedirect(Request request) {
151         URL url = createMVCURL(null, "default", "/a.action");
152         request.setURL(url);
153     }
154
155     /**
156      * Tests that the parser handles result objects that are redirects
157      */

158     public void testResultRedirect() {
159
160         TestControllerHandler handler = new TestControllerHandler();
161         MVCRegistry.register("default", handler);
162
163         // Test without parameters
164
DefaultControllerParser parser = new DefaultControllerParser();
165         MVCRequest mvcRequest = new MVCRequest(request, response);
166         try {
167             getRequest().setParameter("resultRedirect", "true");
168             parser.preExecute(mvcRequest);
169             parser.execute(mvcRequest);
170             assertEquals("/url", getResponse().getRedirectURL());
171         } catch (MVCException e) {
172             fail(e.toString());
173         }
174     }
175
176     /**
177      * Sets up a simple call to the new handler
178      */

179     public void beginResultRedirectEncode(Request request) {
180         URL url = createMVCURL(null, "default", "/a.action");
181         request.setURL(url);
182     }
183
184     /**
185      * Tests that the parser handles result objects that are redirects and are
186      * encodeded.
187      */

188     public void testResultRedirectEncode() {
189
190         TestControllerHandler handler = new TestControllerHandler();
191         MVCRegistry.register("default", handler);
192
193         // Test without parameters
194
DefaultControllerParser parser = new DefaultControllerParser();
195         MVCRequest mvcRequest = new MVCRequest(request, response);
196         try {
197             getResponse().setEncode(true);
198             getRequest().setParameter("resultRedirect", "true");
199             parser.preExecute(mvcRequest);
200             parser.execute(mvcRequest);
201             assertEquals("/url" + MockHttpServletResponse.ENCODE_REDIRECT_STR,
202                 getResponse().getRedirectURL());
203         } catch (MVCException e) {
204             fail(e.toString());
205         }
206     }
207 }
Popular Tags