1 7 package com.inversoft.verge.mvc.model.form.test; 8 9 10 import java.util.HashMap ; 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 35 public class FormModelResolverTest extends WebTestCase { 36 37 41 public FormModelResolverTest(String name) { 42 super(name); 43 setLocal(true); 44 } 45 46 47 50 public void testResolver() { 51 52 FormMVCBuilderTest test = new FormMVCBuilderTest("testBuild"); 54 test.setRequest(request); 55 test.testBuild(); 56 57 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 bean = config.getFormBean("testFormBean").getInstance(request); 66 ModelResolution resolution = resolver.resolve(mvcRequest, "testFormBean.property", new HashMap ()); 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 80 public void testMulti() { 81 82 FormMVCBuilderTest test = new FormMVCBuilderTest("testValidate"); 84 test.setContext(context); 85 test.setResponse(response); 86 test.setRequest(request); 87 test.testValidate(); 88 89 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 bean = formBean.getInstance(request); 99 ModelResolution resolution = resolver.resolve(mvcRequest, "formBean.property", new HashMap ()); 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 ()); 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 ()); 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 ()); 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 |