KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > inversoft > verge > mvc > model > form > test > FormModelResolverTest


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.form.test;
8
9
10 import java.util.HashMap JavaDoc;
11
12 import com.inversoft.beans.BeanException;
13 import com.inversoft.junit.WebTestCase;
14 import com.inversoft.verge.mvc.MVCException;
15 import com.inversoft.verge.mvc.MVCRequest;
16 import com.inversoft.verge.mvc.controller.form.config.FormConfig;
17 import com.inversoft.verge.mvc.controller.form.config.FormConfigStruct;
18 import com.inversoft.verge.mvc.controller.form.config.FormMVCConfigRegistry;
19 import com.inversoft.verge.mvc.controller.form.config.test.FormMVCBuilderTest;
20 import com.inversoft.verge.mvc.model.ModelResolution;
21 import com.inversoft.verge.mvc.model.form.FormModelResolver;
22 import com.inversoft.verge.repository.RepositoryBean;
23 import com.inversoft.verge.util.WebBean;
24
25
26 /**
27  * <p>
28  * This class contains the tests for the form model resolver
29  * </p>
30  *
31  * @author Brian Pontarelli
32  * @since 2.0
33  * @version 2.0
34  */

35 public class FormModelResolverTest extends WebTestCase {
36
37     /**
38      * Constructor for FormModelResolverTest.
39      * @param name
40      */

41     public FormModelResolverTest(String JavaDoc name) {
42         super(name);
43         setLocal(true);
44     }
45
46
47     /**
48      * Tests that the form model resolver returns the correct form
49      */

50     public void testResolver() {
51
52         // Load the form config registry with at least one form
53
FormMVCBuilderTest test = new FormMVCBuilderTest("testBuild");
54         test.setRequest(request);
55         test.testBuild();
56
57         // Test the resolver
58
MVCRequest mvcRequest = new MVCRequest(request, response);
59         FormConfig config = (FormConfig)
60             FormMVCConfigRegistry.getInstance(request).lookupForm("form1");
61         FormModelResolver resolver = new FormModelResolver();
62         mvcRequest.setConfiguration(new FormConfigStruct(config, null, null));
63
64         try {
65             Object JavaDoc bean = config.getFormBean("testFormBean").getInstance(request);
66             ModelResolution resolution = resolver.resolve(mvcRequest, "testFormBean.property", new HashMap JavaDoc());
67             assertEquals("Model objects should be the same", resolution.getModel(),
68                 bean);
69         } catch (MVCException e) {
70             fail(e.toString());
71         } catch (BeanException be) {
72             fail(be.toString());
73         }
74     }
75
76     /**
77      * Tests that the form model resolver returns the correct form bean when
78      * multiple are available
79      */

80     public void testMulti() {
81
82         // Load the form config registry with at least one form
83
FormMVCBuilderTest test = new FormMVCBuilderTest("testValidate");
84         test.setContext(context);
85         test.setResponse(response);
86         test.setRequest(request);
87         test.testValidate();
88
89         // Test the resolver
90
MVCRequest mvcRequest = new MVCRequest(request, response);
91         FormConfig config = (FormConfig)
92             FormMVCConfigRegistry.getInstance(request).lookupForm("multiFormBeanForm");
93         FormModelResolver resolver = new FormModelResolver();
94         mvcRequest.setConfiguration(new FormConfigStruct(config, null, null));
95
96         try {
97             WebBean formBean = config.getFormBean("formBean");
98             Object JavaDoc bean = formBean.getInstance(request);
99             ModelResolution resolution = resolver.resolve(mvcRequest, "formBean.property", new HashMap JavaDoc());
100             assertSame("Model objects should be the same", resolution.getModel(),
101                 bean);
102             assertEquals("formBean", formBean.getID());
103
104             formBean = config.getFormBean("formBean2");
105             bean = formBean.getInstance(request);
106             resolution = resolver.resolve(mvcRequest, "formBean2.property", new HashMap JavaDoc());
107             assertSame("Model objects should be the same", resolution.getModel(),
108                 bean);
109             assertEquals("formBean2", formBean.getID());
110
111             formBean = config.getFormBean("item1");
112             bean = formBean.getInstance(request);
113             resolution = resolver.resolve(mvcRequest, "item1.property", new HashMap JavaDoc());
114             assertSame("Model objects should be the same", resolution.getModel(),
115                 bean);
116             assertEquals("item1", formBean.getID());
117             assertTrue(formBean instanceof RepositoryBean);
118
119             formBean = config.getFormBean("item2");
120             bean = formBean.getInstance(request);
121             resolution = resolver.resolve(mvcRequest, "item2.property", new HashMap JavaDoc());
122             assertSame("Model objects should be the same", resolution.getModel(),
123                 bean);
124             assertEquals("item2", formBean.getID());
125             assertTrue(formBean instanceof RepositoryBean);
126         } catch (MVCException e) {
127             fail(e.toString());
128         } catch (BeanException be) {
129             fail(be.toString());
130         }
131     }
132 }
Popular Tags