1 7 package com.inversoft.verge.mvc.model.repository.test; 8 9 10 import java.util.HashMap ; 11 import java.util.Map ; 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 37 public class RepositoryModelHandlerTest extends WebTestCase { 38 39 42 public RepositoryModelHandlerTest(String name) { 43 super(name); 44 setLocal(true); 45 } 46 47 48 51 public void testGet() { 52 53 RepositoryModelHandler rmh = new RepositoryModelHandler(); 54 MVCRequest mvcRequest = new MVCRequest(request, response); 55 Map params = new HashMap (); 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 value; 68 String 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 e) { 93 e.printStackTrace(); 94 fail(e.toString()); 95 } 96 } 97 98 101 public void testSet() { 102 103 RepositoryModelHandler rmh = new RepositoryModelHandler(); 104 MVCRequest mvcRequest = new MVCRequest(request, response); 105 Map params = new HashMap (); 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 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 e) { 131 e.printStackTrace(); 132 fail(e.toString()); 133 } 134 } 135 136 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 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 e) { 164 e.printStackTrace(); 165 fail(e.toString()); 166 } 167 } 168 169 173 public void testNoValidator() { 174 175 RepositoryModelHandler rmh = new RepositoryModelHandler(); 176 MVCRequest mvcRequest = new MVCRequest(request, response); 177 Map params = new HashMap (); 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 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 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 |