KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > inversoft > verge > mvc > model > repository > test > RepositoryModelHandlerTest


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.model.repository.test;
8
9
10 import java.util.HashMap JavaDoc;
11 import java.util.Map JavaDoc;
12
13 import com.inversoft.junit.WebTestCase;
14 import com.inversoft.util.typeconverter.TypeConversionException;
15 import com.inversoft.verge.mvc.MVCException;
16 import com.inversoft.verge.mvc.MVCRequest;
17 import com.inversoft.verge.mvc.controller.Action;
18 import com.inversoft.verge.mvc.model.ModelResolution;
19 import com.inversoft.verge.mvc.model.repository.RepositoryMetaData;
20 import com.inversoft.verge.mvc.model.repository.RepositoryModelHandler;
21 import com.inversoft.verge.mvc.validator.DefaultValidatorParser;
22 import com.inversoft.verge.repository.Repository;
23 import com.inversoft.verge.repository.test.RepositoryTest;
24 import com.inversoft.verge.repository.test.SimpleItem;
25
26
27 /**
28  * <p>
29  * This class contains the TestCases for the Repository model
30  * handler.
31  * </p>
32  *
33  * @author Brian Pontarelli
34  * @since 2.0
35  * @version 2.0
36  */

37 public class RepositoryModelHandlerTest extends WebTestCase {
38
39     /**
40      * Constructs a new <code>RepositoryModelHandlerTest</code> TestCase instance
41      */

42     public RepositoryModelHandlerTest(String JavaDoc name) {
43         super(name);
44         setLocal(true);
45     }
46
47
48     /**
49      * Tests the that model handler correctly gets the value.
50      */

51     public void testGet() {
52
53         RepositoryModelHandler rmh = new RepositoryModelHandler();
54         MVCRequest mvcRequest = new MVCRequest(request, response);
55         Map JavaDoc params = new HashMap JavaDoc();
56
57         try {
58             RepositoryTest rt = new RepositoryTest("testInitialization");
59             rt.setResponse(response);
60             rt.setRequest(request);
61             rt.setContext(context);
62             rt.testInitialization();
63
64             SimpleItem item1 =
65                 (SimpleItem) Repository.getInstance().lookupItem(request, "item1");
66
67             Object JavaDoc value;
68             String JavaDoc definition = "item1.name";
69
70             RepositoryMetaData md = new RepositoryMetaData(definition);
71             item1.setName("foo");
72             value = rmh.getValue(mvcRequest, definition, new ModelResolution(item1, md), params);
73             assertTrue("Should have a value of foo", value.equals("foo"));
74             item1.setName("foo");
75             value = rmh.getValue(mvcRequest, definition, new ModelResolution(item1, null), params);
76             assertTrue("Should have a value of foo", value.equals("foo"));
77
78             item1.setName("bar");
79             value = rmh.getValue(mvcRequest, definition, new ModelResolution(item1, md), params);
80             assertTrue("Should have a value of bar", value.equals("bar"));
81             item1.setName("bar");
82             value = rmh.getValue(mvcRequest, definition, new ModelResolution(item1, null), params);
83             assertTrue("Should have a value of bar", value.equals("bar"));
84
85             item1.setName("bar");
86             value = rmh.getValue(mvcRequest, definition, new ModelResolution(item1, md), null);
87             assertTrue("Should have a value of bar", value.equals("bar"));
88             item1.setName("bar");
89             value = rmh.getValue(mvcRequest, definition, new ModelResolution(item1, null), null);
90             assertTrue("Should have a value of bar", value.equals("bar"));
91
92         } catch (Exception JavaDoc e) {
93             e.printStackTrace();
94             fail(e.toString());
95         }
96     }
97
98     /**
99      * Tests the that model handler correctly sets the value
100      */

101     public void testSet() {
102
103         RepositoryModelHandler rmh = new RepositoryModelHandler();
104         MVCRequest mvcRequest = new MVCRequest(request, response);
105         Map JavaDoc params = new HashMap JavaDoc();
106
107         try {
108             RepositoryTest rt = new RepositoryTest("testInitialization");
109             rt.setResponse(response);
110             rt.setRequest(request);
111             rt.setContext(context);
112             rt.testInitialization();
113
114             SimpleItem item1 =
115                 (SimpleItem) Repository.getInstance().lookupItem(request, "item1");
116             String JavaDoc definition = "item1.name";
117             RepositoryMetaData md = new RepositoryMetaData(definition);
118
119             rmh.setValue(mvcRequest, definition, new ModelResolution(item1, md), "foo", params);
120             SimpleItem sameItem = (SimpleItem) request.getAttribute("item1");
121             assertTrue("Should have value of foo", sameItem.getName().equals("foo"));
122
123             rmh.setValue(mvcRequest, definition, new ModelResolution(item1, md), "bar", params);
124             assertTrue("Should have value of bar", sameItem.getName().equals("bar"));
125
126             rmh.setValue(mvcRequest, definition, new ModelResolution(item1, null), "bar", params);
127             assertTrue("Should have value of bar", sameItem.getName().equals("bar"));
128             rmh.setValue(mvcRequest, definition, new ModelResolution(item1, null), "foo", params);
129             assertTrue("Should have value of bar", sameItem.getName().equals("foo"));
130         } catch (Exception JavaDoc e) {
131             e.printStackTrace();
132             fail(e.toString());
133         }
134     }
135
136     /**
137      * Tests the that model handler correctly sets the value and calls the validator
138      */

139     public void testValidator() {
140
141         RepositoryModelHandler rmh = new RepositoryModelHandler();
142         MVCRequest mvcRequest = new MVCRequest(request, response);
143         mvcRequest.setAction(new Action("foo", request, response));
144
145         try {
146             RepositoryTest rt = new RepositoryTest("testInitialization");
147             rt.setResponse(response);
148             rt.setRequest(request);
149             rt.setContext(context);
150             rt.testInitialization();
151
152             SimpleItem item1 =
153                 (SimpleItem) Repository.getInstance().lookupItem(request, "item1");
154             String JavaDoc definition = "item1.age";
155
156             ModelResolution res = new ModelResolution(item1, null);
157             mvcRequest.addValidator(new TestValidator());
158             mvcRequest.setValidatorParser(new DefaultValidatorParser());
159
160             TestValidator.conversion = false;
161             rmh.setValue(mvcRequest, definition, res, "notAnInteger", null);
162             assertTrue("Should have called validator", TestValidator.conversion);
163         } catch (Exception JavaDoc e) {
164             e.printStackTrace();
165             fail(e.toString());
166         }
167     }
168
169     /**
170      * Tests the that model handler correctly sets the value and tries to call
171      * the validator, but the validator doesn't exist so it throws an exception
172      */

173     public void testNoValidator() {
174
175         RepositoryModelHandler rmh = new RepositoryModelHandler();
176         MVCRequest mvcRequest = new MVCRequest(request, response);
177         Map JavaDoc params = new HashMap JavaDoc();
178
179         try {
180             RepositoryTest rt = new RepositoryTest("testInitialization");
181             rt.setResponse(response);
182             rt.setRequest(request);
183             rt.setContext(context);
184             rt.testInitialization();
185
186             SimpleItem item1 =
187                 (SimpleItem) Repository.getInstance().lookupItem(request, "item1");
188             String JavaDoc definition = "item1.age";
189             mvcRequest.setValidatorParser(new DefaultValidatorParser());
190
191             rmh.setValue(mvcRequest, definition, new ModelResolution(item1, null), "notAnInteger", params);
192             fail("Should have thrown a MVCException");
193         } catch (Exception JavaDoc e) {
194             assertTrue("Should be an MVCException", e instanceof MVCException);
195             assertTrue("Should have cause of TCE", e.getCause() instanceof TypeConversionException);
196         }
197     }
198 }
199
Popular Tags